以下是期货专用的API:
1、get_symbol(获得主力连续合约的映射合约)
我们在进行生成信号时,可以使用助理合约时间序列,但在下单时要使用具体的合约。若想得到当天的主力合约映射的具体合约符号时,则可以使用context.get_symbol获取:
context.get_symbol(symbol)
context.gte_symbol方法用于获取某个主力连续合约的映射合约,返回主力合约的映射合约,仅适用于期货品种。其参数为symbol,指主力合约的符号,为str类型。
eg:
start='2017-01-01'
end='2018-01-03'
universe=['IFM0']
benchmark='HS300'
freq='d'
refresh_rate=1
accounts={
'fantasy_account':AccountConfig(account_type="security",capital_base=10000000)
}
def initialize(context):
pass
def handle_data(context):
account=context.get_account('fantasy_account')
print(context.get_symbol('IFM0'))
2、mapping_changed(判断是否切换主力连续合约的映射合约)
用于判断是否切换主力合约的映射合约,返回布尔值,仅适用于期货品种,其参数为symbol,指主力合约符号,为str类型。
bool context.mapping_changed(symbol)
3、gte_rolling_tuple(获取主力连续合约映射关系变化前后的具体合约)
用于获取主力连续合约映射关系变化前后的具体合约,仅适用于期货品种。其参数为symbol,指主力合约符号,为str类型。
context.get_rolling_tuple(symbol)
其返回如下,指主力切换前后的对应的具体合约,为字符串对类型:
(symbol_before,symbol_after)
以下代码用于获取主力连续合约映射关系变化前后的具体合约:
start='2016-01-15'
end='2016-06-01'
universe=['IFM0','SRM0','RBM0','TFM0'] #证券池,支持股票、基金、期货
benchmark='HS300'
freq='d'
refresh_rate=1
accounts={
'futures_account':AccountConfig(account_type="futu