我有策略A和策略B,策略A有多单持仓的时候,那么策略B满足开多单就立即开仓,平仓的时候,AB策略谁先触发都要把策略B执行平仓。相当于就是引用策略A作为方向引导。这个要怎么嵌入函数。
除了一楼说的
直接校验各自策略开仓数和总仓位对比
是不是更简洁
那策略A没有多单持仓的时候,策略B满足开多单,是开还是不开?怎么开,是立即开还是延后开?
方法:
(1)策略A里面用 SetGlobalVar、SetGlobalVar2 二选一;策略B里面用GetGlobalVar、GetGlobalVar2二选一;但是策略A和策略B我印象中必须是同一个策略单元才行,跨策略单元可能不行,你可以试一下。
(2)与方法(1)类似:策略A里面用PlotNumeric;策略B里面用GetPlotNumericValue;但是可能也必须是同一个策略单元才行,跨策略单元可能不行,你可以试一下。
(3)策略A里面用PublishEvent;策略B里面先SubscribeEvent,然后OnEvent里面判断、过滤、接收数据。处理步骤和过程会复杂一些但是可以跨越不同的策略单元
(4)策略A里面用SetDicValue;策略B里面用GetDicValue,虽然简单也能跨策略单元,但是不建议,读写速度慢,高频读写的数据可靠性和安全性无法保障,除非你外加代码逻辑控制读写频次。