@薛定谔の喵-JoinQuant 您好,能帮忙看看吗?我思考了好久都不知道改哪个代码。
def set_parameter(context):
#######变量设置########
g.LastRealPrice = {} # 最新真实合约价格字典(用于吊灯止损)
g.HighPrice = {} # 各品种最高价字典(用于吊灯止损)
g.LowPrice = {} # 各品种最低价字典(用于吊灯止损)
g.future_list = [] # 设置期货品种列表
g.TradeLots = {} # 各品种的交易手数信息
g.PriceArray = {} # 信号计算价格字典
g.Price_dict = {} # 各品种价格列表字典
g.Times = {} # 计数器(用于防止止损重入)
g.Reentry_long = False # 止损后重入标记
g.Reentry_short = False # 止损后重入标记
g.MappingReal = {} # 真实合约映射(key为symbol,value为主力合约)
g.MappingIndex = {} # 指数合约映射 (key为 symbol,value为指数合约
g.StatusTimer = {} # 当前状态计数器
g.ATR = {}
g.CurrentPrice = {}
g.Price_DaysAgo = {}
g.Momentum = {}
g.Signal = {}
g.ClosePrice = {}
#######参数设置########
g.HoldingWeek = 1 # 持有窗口长度
g.Timer = 0
g.BackWindow = 10 # 回溯窗口长度
g.Cross = 0 # 均线交叉判定信号
g.MarginRate = 0.15
# 交易的期货品种信息
g.instruments = ['AL','NI','CU','AG','RU','MA','PP','TA','L','V','M','A','P','Y','OI','C','CS','JD','SR','HC','J','I','SF','RB','ZC','FG']
# 价格列表初始化
set_future_list(context)
然后是这个多回测框架
#3 运行回测
pa.get_backtest_data(file_name = 'results.pkl', # 保存回测结果的Pickle文件名
running_max = 2, # 同时回测的最大个数,可以通过积分商城兑换
benchmark_id = None, # 基准的回测ID,注意是回测ID而不是策略ID,为None时为策略中使用的基准
start_date = '2019-04-01', #回测开始时间
end_date = '2019-10-01', #回测结束时间
frequency = 'day', #回测频率,支持 day, minute, tick
initial_cash = '100000', #初始资金
param_names = ['factor', 'quantile'], #变量名称
param_values = [['Momentum'], tuple(zip(range(0,60,10), range(10,61,10)))], #变量对应的参数
python_version = 3, # 回测python版本
use_credit = False # 是否允许消耗积分继续回测
)
实在不知道改哪里,或者添加什么代码,将动量分成10,20,30,40,50,60日。多谢!
2019-11-21