GetMainContract无法查次主力合约?
def GetContractSecond(exchange_id='CZCE', product_id='SA'): '''获取次主力合约码(日期在主力合约之后) exchange_id 市场id product_id 品种id code_second = GetContractSecond(g.exchangeId, g.productId) ''' code_main = GetMainContract(exchange_id, product_id, 20) contracts_list = GetFuturesContracts2(product_id) # 获取期货合约列表 print(contracts_list) for i in range(len(contracts_list)): if code_main == contracts_list[i]: break contracts_list_slice = contracts_list[i + 1:-1] # 最后一个月份的合约如果正好刚上架则无数据会导致报错 volume = [] for i in contracts_list_slice: print(i) kline = GetHisDataByField2(i, ['volume', 'amount'], bar_type=BarType.Day, count=1) volume.append(kline[0, 0] + kline[1, 0]) return contracts_list_slice[volume.index(max(volume))]
GetMainContract暂时无法查询次主力合约,需要自己写代码查询,例如获取合约列表,使用固定月份方法或查询成交量/持仓量,使用成交量/持仓量排名方法获取。
def GetContractSecond(exchange_id='CZCE', product_id='SA'):
'''获取次主力合约码(日期在主力合约之后)
exchange_id 市场id
product_id 品种id
code_second = GetContractSecond(g.exchangeId, g.productId)
'''
code_main = GetMainContract(exchange_id, product_id, 20)
contracts_list = GetFuturesContracts2(product_id) # 获取期货合约列表
print(contracts_list)
for i in range(len(contracts_list)):
if code_main == contracts_list[i]: break
contracts_list_slice = contracts_list[i + 1:-1] # 最后一个月份的合约如果正好刚上架则无数据会导致报错
volume = []
for i in contracts_list_slice:
print(i)
kline = GetHisDataByField2(i, ['volume', 'amount'], bar_type=BarType.Day, count=1)
volume.append(kline[0, 0] + kline[1, 0])
return contracts_list_slice[volume.index(max(volume))]
GetMainContract暂时无法查询次主力合约,需要自己写代码查询,例如获取合约列表,使用固定月份方法或查询成交量/持仓量,使用成交量/持仓量排名方法获取。