变量约定——东方财富掘金量化速成学习(python)
·
目录
1.代码标识——symbol
用于唯一标识交易标的代码,格式为:交易所代码.交易标代码
上交所:SHSE 例:SHSE.600000 浦发银行
深交所:SZSE 例:SZSE.0m00001 平安银行
2.模式选择——mode
实时模式:mode = MODE_LIVE
回测模式:mode = MODE_BACKTEST
在run()函数中指定
3.上下文对象——context
3.1.订阅代码合集——context.symbols
示例代码:
subscribe(symbols=['SHSE.600519', 'SHSE.600419'], frequency='60s')
context.symbols
返回值:
{'SHSE.600519', 'SHSE.600419'}
函数原型:context.symbols
3.2.当前时间——context.now
示例代码:
context.now
返回值:
2020-09-01 09:40:00+08:00
函数原型:context.now
当前时间(回测模式下是策略回测的当前历史时间, 实时模式下是用户的系统本地时间)
3.3.数据滑窗——context.data
示例代码:
def init(context):
subscribe(symbols='SHSE.600519', frequency='60s', count=50, fields='symbol, close, eob', format='df')
def on_bar(context,bars):
data = context.data(symbol=bars[0]['symbol'], frequency='60s', count=10)
print(data.tail())
返回值:
symbol close eob
5 SHSE.600519 1629.96 2024-01-22 14:56:00+08:00
6 SHSE.600519 1627.25 2024-01-22 14:57:00+08:00
7 SHSE.600519 1627.98 2024-01-22 14:58:00+08:00
8 SHSE.600519 1642.00 2024-01-22 15:00:00+08:00
9 SHSE.600519 1632.96 2024-01-23 09:31:00+08:00
函数原型:context.data(symbol,frequency,count,fields)
数据包含当前时刻推送bar或tick的前count条bar或者
tick数据注意事项:
1.订阅后,接口才能接受到数据
2.symbol参数只能输入1个标的
3.count参数需小于或等于订阅函数里的count值
4.fields 参数必须在订阅函数subscribe里面指定的 fields 范围内。指定字段越少,查询速度越快,查询效率:row > col > df。
3.4.账户信息——context.account
示例代码:
# 所有持仓
Account_positions = context.account().positions()
# 指定持仓
Account_position = context.account().position(symbol='SHSE.600519',side = PositionSide_Long)
返回值:
# 所有持仓输出
[{'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}]
# 指定持仓输出
{'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(account_id=None)
获取账户资金信息及持仓信息
3.5.动态参数——context.parameters
示例代码:
add_parameter(key='k_value', value=context.k_value, min=0, max=100, name='k值阀值', intro='k值阀值',group='1', readonly=False)
context.parameters
返回值:
{'k_value': {'key': 'k_value', 'value': 80.0, 'max': 100.0, 'name': 'k值阀值', 'intro': 'k值阀值', 'group': '1', 'min': 0.0, 'readonly': False}}
函数原型:context.parameters
获取所有动态参数
3.6.自定义属性——context.xxxxx
函数原型:context.xxxxx = <自定义变量>
自定义属性设置参数, 可以随context全局变量传入策略的各个事件里
更多推荐

所有评论(0)