返回介绍

开始入门

操作指引

SDK

数据文档

常见问题

量化工具

其他

其他

交易查询函数

发布于 2024-06-22 12:53:28 字数 12760 浏览 0 评论 0 收藏 0

get_cash - 查询指定交易账户的资金信息

查询指定交易账户的资金信息, gm SDK 3.0.163 版本新增

原型:

get_cash(account_id=None)

参数:

参数名类型说明
account_idstr账户信息,默认返回默认账户, 如多个账户需指定 account_id

返回值:

类型说明
dictCash 资金对象

示例:

cash = get_cash()
print(cash)

输出:

{'account_id': '8bf2b0cb-9f0d-11ee-bd0b-00163e163353', 'account_name': '8bf2b0cb-9f0d-11ee-bd0b-00163e163353', 'nav': 100049705.54665434, 'pnl': 49705.546654343605, 'fpnl': 5296.038990020825, 'frozen': 138363.60003433225, 'available': 99911315.9466925, 'cum_inout': 100000000.0, 'cum_trade': 6749993.987827301, 'cum_pnl': 44620.012207031454, 'cum_commission': 210.5045427023142, 'last_trade': 30450.0, 'last_commission': 1.5, 'last_inout': 100000000.0, 'created_at': datetime.datetime(2023, 12, 20, 15, 58, 22, 641250, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2024, 1, 23, 14, 53, 16, 670507, tzinfo=tzfile('PRC')), 'balance': 100048365.54669249, 'market_value': 1164370.039024353, 'enable_bail': 99911315.9466925, 'fpnl_diluted': 5296.038990020825, 'channel_id': '', 'currency': 0, 'order_frozen': 0.0, 'last_pnl': 0.0, 'change_reason': 0, 'change_event_id': '', 'market_value_long': 0.0, 'market_value_short': 0.0, 'used_bail': 0.0}

注意:

1. account_id不存在时,返回空字典。

2. 当策略关联一个交易账户时,account_id可不用填,当策略关联多个交易账户时,必须指定account_id,否则会报错。

3. get_cash和context.account().cash的区别,get_cash直接查询终端的最新数据,不需要像context.account().cash通过context对象更新。

get_position - 查询指定交易账户的全部持仓信息

查询指定交易账户的全部持仓信息, gm SDK 3.0.163 版本新增

原型:

get_position(account_id=None)

参数:

参数名类型说明
account_idstr账户信息,默认返回默认账户, 如多个账户需指定 account_id

返回值:

类型说明
list[position]Position 持仓对象列表

示例:

position = get_position()
print(position)

输出:

[{'account_id': '8bf2b0cb-9f0d-11ee-bd0b-00163e163353', 'symbol': 'DCE.m2405', 'side': 1, 'volume': 2, 'vwap': 3200.5, 'amount': 64010.0, 'price': 3072.0, 'fpnl': -2570.0, 'cost': 4480.700000000001, 'available': 2, 'last_price': 3045.0, 'last_volume': 1, 'created_at': datetime.datetime(2023, 12, 27, 10, 37, 54, 801075, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2024, 1, 23, 20, 0, 9, 133899, tzinfo=tzfile('PRC')), 'vwap_diluted': 3200.5, 'market_value': 61440.0, 'available_now': 2, 'vwap_open': 3200.5, 'fpnl_open': -2570.0, 'fpnl_diluted': -2570.0, 'account_name': '', 'channel_id': '', 'volume_today': 0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0, 'covered_flag': 0, 'properties': {}, 'credit_position_sellable_volume': 0}, {'account_id': '8bf2b0cb-9f0d-11ee-bd0b-00163e163353', 'symbol': 'SHSE.600000', 'side': 1, 'volume': 200, 'vwap': 6.57, 'amount': 1314.0000343322754, 'price': 6.71, 'fpnl': 27.99997329711914, 'cost': 1314.0000343322754, 'available': 200, 'last_price': 6.570000171661377, 'last_volume': 200, 'created_at': datetime.datetime(2023, 12, 27, 13, 38, 30, 195484, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2023, 12, 28, 8, 30, 0, 678, tzinfo=tzfile('PRC')), 'vwap_diluted': 6.57, 'market_value': 1342.0000076293945, 'available_now': 200, 'vwap_open': 6.57, 'fpnl_open': 27.99997329711914, 'fpnl_diluted': 27.99997329711914, 'account_name': '', 'channel_id': '', 'volume_today': 0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0, 'covered_flag': 0, 'properties': {}, 'credit_position_sellable_volume': 0}, {'account_id': '8bf2b0cb-9f0d-11ee-bd0b-00163e163353', 'symbol': 'CZCE.RM405', 'side': 1, 'volume': 1, 'vwap': 2717.0, 'amount': 27170.0, 'price': 2555.0, 'fpnl': -1620.0, 'cost': 2445.2999999999997, 'available': 1, 'last_price': 2717.0, 'last_volume': 1, 'created_at': datetime.datetime(2024, 1, 2, 14, 43, 56, 787534, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2024, 1, 2, 20, 0, 7, 245847, tzinfo=tzfile('PRC')), 'vwap_diluted': 2717.0, 'market_value': 25550.0, 'available_now': 1, 'vwap_open': 2717.0, 'fpnl_open': -1620.0, 'fpnl_diluted': -1620.0, 'account_name': '', 'channel_id': '', 'volume_today': 0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0, 'covered_flag': 0, 'properties': {}, 'credit_position_sellable_volume': 0}, {'account_id': '8bf2b0cb-9f0d-11ee-bd0b-00163e163353', 'symbol': 'GFEX.lc2405', 'side': 1, 'volume': 1, 'vwap': 106700.0, 'amount': 106700.0, 'price': 101600.0, 'fpnl': -5100.0, 'cost': 14938.000000000002, 'available': 1, 'last_price': 106700.0, 'last_volume': 1, 'created_at': datetime.datetime(2024, 1, 3, 9, 26, 18, 868588, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2024, 1, 4, 8, 30, 0, 1110, tzinfo=tzfile('PRC')), 'vwap_diluted': 106700.0, 'market_value': 101600.0, 'available_now': 1, 'vwap_open': 106700.0, 'fpnl_open': -5100.0, 'fpnl_diluted': -5100.0, 'account_name': '', 'channel_id': '', 'volume_today': 0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0, 'covered_flag': 0, 'properties': {}, 'credit_position_sellable_volume': 0}, {'account_id': '8bf2b0cb-9f0d-11ee-bd0b-00163e163353', 'symbol': 'CFFEX.IC2402', 'side': 1, 'volume': 1, 'vwap': 4799.4, 'amount': 959879.9999999999, 'price': 4890.2002, 'fpnl': 18160.039062500073, 'cost': 115185.59999999998, 'available': 1, 'last_price': 4799.4, 'last_volume': 1, 'created_at': datetime.datetime(2024, 1, 23, 14, 52, 55, 800533, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2024, 1, 24, 8, 30, 0, 1825, tzinfo=tzfile('PRC')), 'vwap_diluted': 4799.4, 'market_value': 978040.0390625, 'available_now': 1, 'vwap_open': 4799.4, 'fpnl_open': 18160.039062500073, 'fpnl_diluted': 18160.039062500073, 'account_name': '', 'channel_id': '', 'volume_today': 0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0, 'covered_flag': 0, 'properties': {}, 'credit_position_sellable_volume': 0}]

注意:

1. account_id不存在时,返回空列表。

2. 当策略关联一个交易账户时,account_id可不用填,当策略关联多个交易账户时,必须指定account_id,否则会报错。

3. get_position和context.account().positions()的区别,get_position直接查询终端的最新数据,不需要像context.account().positions()通过context对象更新。

context.account().cash - 查询当前账户资金

原型:

context.account(account_id=None).cash

参数:

参数名类型说明
account_idstr账户信息,默认返回默认账户, 如多个账户需指定 account_id

返回值:

类型说明
dict[cash]Cash 资金对象列表

示例-获取当前账户资金:

context.account().cash

输出:

{'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'nav': 1905248.2789094353, 'pnl': -94751.72109056474, 'fpnl': -94555.35135529494, 'frozen': 1963697.3526980684, 'available': 36106.277566661825, 'cum_inout': 2000000.0, 'cum_trade': 1963697.3526980684, 'cum_commission': 196.3697352698069, 'last_trade': 1536.1536610412597, 'last_commission': 0.153615366104126, 'created_at': datetime.datetime(2020, 9, 1, 8, 0, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 30, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'currency': 0, 'order_frozen': 0.0, 'balance': 0.0, 'market_value': 0.0, 'cum_pnl': 0.0, 'last_pnl': 0.0, 'last_inout': 0.0, 'change_reason': 0, 'change_event_id': ''}

context.account().positions() - 查询当前账户全部持仓

原型:

context.account(account_id=None).positions()

参数:

参数名类型说明
account_idstr账户信息,默认返回默认账户, 如多个账户需指定 account_id

返回值:

类型说明
list[position]Position 持仓对象列表

注意: 没有持仓时,返回空列表

示例-获取当前持仓:

# 所有持仓
Account_positions = context.account().positions()

输出:

# 所有持仓输出
[{'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'symbol': 'SHSE.600419', 'side': 1, 'volume': 2200, 'volume_today': 100, 'vwap': 16.43391600830338, 'amount': 36154.61521826744, 'fpnl': -2362.6138754940007, 'cost': 36154.61521826744, 'available': 2200, 'available_today': 100, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 30, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'vwap_diluted': 0.0, 'price': 0.0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_now': 0, 'market_value': 0.0, 'last_price': 0.0, 'last_volume': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0}, {'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'symbol': 'SHSE.600519', 'side': 1, 'volume': 1100, 'vwap': 1752.575242219682, 'amount': 1927832.7664416502, 'fpnl': -110302.84700805641, 'cost': 1927832.7664416502, 'available': 1100, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 15, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'volume_today': 0, 'vwap_diluted': 0.0, 'price': 0.0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'available_now': 0, 'market_value': 0.0, 'last_price': 0.0, 'last_volume': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0}]

context.account().position(symbol, side) - 查询当前账户指定持仓

参数:

参数名类型说明
symbolstr标的代码
sideint持仓方向,取值参考PositionSide 持仓方向

返回值:

类型说明
dict[position]Position 持仓对象列表

注意: 当指定标的没有持仓时,返回 None 示例-获取当前持仓:

# 指定持仓
Account_position = context.account().position(symbol='SHSE.600519',side = PositionSide_Long)

输出:

# 指定持仓输出
{'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'symbol': 'SHSE.600519', 'side': 1, 'volume': 1100, 'vwap': 1752.575242219682, 'amount': 1927832.7664416502, 'fpnl': -110302.84700805641, 'cost': 1927832.7664416502, 'available': 1100, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 15, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'volume_today': 0, 'vwap_diluted': 0.0, 'price': 0.0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'available_now': 0, 'market_value': 0.0, 'last_price': 0.0, 'last_volume': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文