埋头学习vnpy数年,有了新的认识,越学越感受到vnpy的精巧精深,python水平被迫被拉高不少,深感“用python的交易员”的伟大。
在学习策略时,发现 每个策略实例 都 经过 tick生成 bar的过程,对于同一个 vt_symbol、相同的ktype 来说,如果策略较多的话,资源耗费较大、浪费资源。
建议:(1) 制作一个 vnpy_ticktobar 模块。
(2)每个 vt_symbol 对应一个 ticktobar_workshop 实例。制作、存放 各种bar,其中制作 bar、bar_m5、bar_m15、bar_m30、bar_m60、bar_m120、bar_d1,并存放 am、am_m5、am_m15、am_m30、am_m60、am_m120、am_d1。
(3)on_tick 驱动生成bar。
当on_bar时,存入am_m1,并积累生成大bar,并运行 所有 该 vt_symbol的 m1的策略实例。
当on_bar_m5时,存入am_m5,并运行 所有 该 vt_symbol的 m5的策略实例。
当on_bar_m15时,存入am_m15,并运行 所有 该 vt_symbol的 m15的策略实例。
当on_bar_m30时,存入am_m30,并运行 所有 该 vt_symbol的 m30的策略实例。
当on_bar_m60时,存入am_m60,并运行 所有 该 vt_symbol的 m60的策略实例。
当on_bar_m120时,存入am_m120,并运行 所有 该 vt_symbol的 m120的策略实例。
当on_bar_d1时,存入am_d1,并运行 所有 该 vt_symbol的 d1的策略实例。
是否妥当,期待vnpy专家。。。