def on_init(self):
"""
Callback when strategy is inited.
"""
self.write_log("策略初始化")
self.load_bar(365)
self.put_event()
初始化过程中,主要按顺序完成了以下三步任务:
1、 获取历史数据: 为了确保策略内指标数值的准确性,每个策略实例都需要一定的历史数据来进行策略初始化。 因此,在策略初始化时,策略实例内部的load_bar函数会先去接口获取最新历史数据。具体载入数据的长度,取决于load_bar函数的参数控制(策略模板默认是10天)。数据载入后会以逐根K线(或者Tick)的方式推送给策略,实现内部变量的初始化计算,比如缓存K线序列、计算技术指标等。
2、载入缓存变量:在每天实盘运行的过程中,量化策略中的有些变量只和历史行情数据相关,这类变量通过加载历史数据回放就能得到正确的数值。
3、订阅行情推送:
self.load_bar(365) 大周期的策略需要读入一年的1分钟K线,读不了那么多,发现vnpy格局好小。只能处理小周期,根本不适合大周期,求助???