螺纹钢换月日期统计
#!/usr/bin/env python
coding:utf-8
from PoboAPI import *
import datetime
#开始事件
def OnStart(context) :
#登录交易账号
context.myacc = None
if "回测期货" in context.accounts :
if context.accounts["回测期货"].Login() :
context.myacc = context.accounts["回测期货"]
# 存每天的主力合约
g.code_list = []
# 存换月的主力合约(只存一次)
g.main_code_list = []
# 存发生主力合约换月的对应日期
g.main_date_list = []
初始化事件
def OnMarketQuotationInitialEx(context, exchange, daynight) :
# 不是上海期货交易所则过滤率掉
if exchange != 'SHFE':
return
# 获取螺纹钢的主力合约
g.code = GetMainContract('SHFE', 'rb', 20)
# 订阅K线数据,用于驱动OnBar事件
SubscribeBar(g.code, BarType.Day)
K线事件
def OnBar(context, code, bartype) :
#过滤掉不需要的行情通知
if code != g.code:
return
# 将获取的主力合约码写入列表
g.code_list.append(g.code)
# 合约列表里的合约码数量大于1时
if len(g.code_list) > 1 :
# 最近的相邻的合约码不一样则可判断更换主力合约了
if g.code_list[-1] != g.code_list[-2] :
# 最新的主力合约写入列表
g.main_code_list.append(g.code_list[-1])
# 主力合约对应的更换日期写入列表
g.main_date_list.append(YMD())
# 在测试结束的那一天打印获取的数据
if YMD() == '20210319' :
print(g.main_code_list)
print(g.main_date_list)
自定义函数用于获取年月日(输出值为字符串类型)
def YMD() :
ymd = GetCurrentTradingDate('SHFE').strftime('%Y%m%d')
return ymd
本段代码已在真格量化平台(https://quant.pobo.net.cn)编译通过
回复 0:
按时间排序
您尚未登录,请 登录 真格量化发表回复