每个策略都有至少 1 个 运行标的,单击选中开始控件,即可在右侧的属性栏中看到。
注意:此处的【运行标的1】只是一个代指,只有在后面实盘运行或回测策略时,才会为其选择真实的标的。
点击 历史回测 或者 实盘运行,即可在弹出的参数设置窗口中,选择 1 个真实的标的作为刚才设置的【运行标的1】。
运行标的的一个重要的作用,就是驱动策略循环运行。因此,这里还需要设置多久运行一次。
例如:将策略的运行条件设为「苹果(AAPL.US)每 tick 运行一次」,表示:每当苹果(AAPL.US)有一条逐笔成交时,都会触发画布内控件的一轮运行。运行的内容是:如果MACD 是金叉,则下单买5000手。
每轮运行结束后,整个策略会等待,直至苹果(AAPL.US)出现下一条逐笔成交,触发下一轮运行。
创建策略时,我们可以在画布中,设置多个运行标的;
在历史回测或者实盘运行时,也可以添加多个标的组。
那么,【多个运行标的】和【多个标的组】究竟有什么区别呢?
以新手任务策略为例,在画布的开始框中,设置了 2 个运行标的。
在回测参数设置窗口中,分别将 2 个运行标的赋值为 阿里巴巴(09988.HK)和腾讯控股(00700.HK)。
此参数表示,阿里巴巴(09988.HK)和腾讯控股(00700.HK)这2个标的的逐笔成交,都会触发 新手任务策略的运行。
而且,这2个标的对策略的触发,是无差别的。无论是哪个标的的逐笔触发,新手任务策略内部的判断逻辑,都是用阿里巴巴(09988.HK)的MACD作为条件,下单腾讯控股(00700.HK)。
通过上面的例子,相信大家已经理解,在 1 个运行标的组内的,不同运行标的的作用。
如果进一步对 新手任务策略,再添加 1 个运行标的组,并分别将 2 个运行标的赋值为 苹果(AAPL.US)和谷歌(GOOG.US),策略又将如何运行呢?
设置了多个标的组之后,运行时就相当于将原来的 新手任务策略复制了一份【新手任务策略-副本】。
阿里巴巴(09988.HK)和腾讯控股(00700.HK)的逐笔成交,只会触发【新手任务策略】的运行;苹果(AAPL.US)和谷歌(GOOG.US)的逐笔成交,只会触发【新手任务策略-副本】的运行。
【新手任务策略】和【新手任务策略-副本】的运行是相对独立的,但会共用同一个账户(真实账户或回测账户)中的钱(cash)和货(股票)。
因此,如果一个策略先把账户购买力占用了,另一个策略可能面临购买力不足无法下单的局面。
我们已经知道,运行标的会驱动策略(画布中的内容)循环运行。
以马丁格尔策略为例,策略会在恒指主连(HSImain.HK)开盘期间的每根 1 分 K 开始时运行一次。
那么,画布内的控件,又是按照什么样的顺序运行的呢?
这个策略从开始控件出来,共有 3 个出口,对应 3 条路径。3 条路径的运行顺序,取决于本路径第一个控件的位置,越靠上靠左就越优先运行(示例图中,画布内的运行顺序为:路径1——>路径2——>路径3)。
每条路径运行完才会走下一条路径,也就是说:路径间是串行的,不会同时运行。