在我的另外一个帖子(链接;https://www.vnpy.com/forum/topic/4699-yong-portfolio-strategymo-kuai-xie-de-duo-biao-de-shuang-jun-xian-ce-lue-huan-you-gu-piao-chi-de-wen-ti?page=1#pid16330)
打算按照一定的规则,建立一个 股票池,股票池的 股票标的,和数量,过一段时间,就会改变
设想在 策略之外,对所有股票进行 筛选,赋值给 engine.set_parameters的 vt_symbols
但在 策略中,比如 双均线策略(有2个标的 )
class DemoStrategy2(StrategyTemplate):
# 第一个标的的 快速均线,和慢速均线
fast_window_1 = 10
slow_window_1 = 20
fast_ma0_1 = 0.0
fast_ma1_1 = 0.0
slow_ma0_1 = 0.0
slow_ma1_1 = 0.0
# 第二个标的的 快速均线,和慢速均线
fast_window_2 = 10
slow_window_2 = 20
fast_ma0_2 = 0.0
fast_ma1_2 = 0.0
slow_ma0_2 = 0.0
slow_ma1_2 = 0.0
def init(....)
super().init(.....)
self.bg = BarGenerator(self.on_bar)
self.am_1 = ArrayManager()
self.am_2 = ArrayManager()
def on_bar(self, bar: BarData):
bars = {bar.vt_symbol: bar}
self.on_bars(bars)
def on_bars(self, bars: Dict[str, BarData]):
""""""
self.cancel_all()
bar_1 = bars[self.vt_symbol_1]
am_1 = self.am_1
am_1.update_bar(bar_1)
if not am_1.inited:
return
bar_2 = bars[self.vt_symbol_2]
am_2 = self.am_2
am_2.update_bar(bar_2)
if not am_2.inited:
return
象以上的 不同标的的 快慢速均线, 在标的数量不确定的情况下 ;
bar 生成器 BarGenerator
序列生成器 ArrayManager()
在 init , on_bar , on_bars
如何写,才更简便,灵活 ?
才能更好的 ,配合 多标的
谢谢大家