下载App
扫码立即下载
  • 下载App

    扫码立即下载

  • 在线客服

    登录后咨询在线客服
+
恭喜您!
成功领取价值超 5000港元/年的高级行情
前往体验 >>

量化策略的运行框架介绍

1. 运行标的 & 策略循环逻辑

每个策略都有至少 1 个 运行标的,单击选中开始控件,即可在右侧的属性栏中看到。

注意:此处的【运行标的1】只是一个代指,只有在后面实盘运行或回测策略时,才会为其选择真实的标的。

点击 历史回测 或者 实盘运行,即可在弹出的参数设置窗口中,选择 1 个真实的标的作为刚才设置的【运行标的1】。

运行标的的一个重要的作用,就是驱动策略循环运行。因此,这里还需要设置多久运行一次。

例如:将策略的运行条件设为「苹果(AAPL.US)每 tick 运行一次」,表示:每当苹果(AAPL.US)有一条逐笔成交时,都会触发画布内控件的一轮运行。运行的内容是:如果MACD 是金叉,则下单买5000手。

每轮运行结束后,整个策略会等待,直至苹果(AAPL.US)出现下一条逐笔成交,触发下一轮运行。


2. 多运行标的 & 多运行标的组

创建策略时,我们可以在画布中,设置多个运行标的;

在历史回测或者实盘运行时,也可以添加多个标的组。

那么,【多个运行标的】和【多个标的组】究竟有什么区别呢?

2.1 多运行标的

以新手任务策略为例,在画布的开始框中,设置了 2 个运行标的。

在回测参数设置窗口中,分别将 2 个运行标的赋值为 阿里巴巴(09988.HK)和腾讯控股(00700.HK)。

此参数表示,阿里巴巴(09988.HK)和腾讯控股(00700.HK)这2个标的的逐笔成交,都会触发 新手任务策略的运行。

而且,这2个标的对策略的触发,是无差别的。无论是哪个标的的逐笔触发,新手任务策略内部的判断逻辑,都是用阿里巴巴(09988.HK)的MACD作为条件,下单腾讯控股(00700.HK)。

2.2 多运行标的组

通过上面的例子,相信大家已经理解,在 1 个运行标的组内的,不同运行标的的作用。

如果进一步对 新手任务策略,再添加 1 个运行标的组,并分别将 2 个运行标的赋值为 苹果(AAPL.US)和谷歌(GOOG.US),策略又将如何运行呢?

设置了多个标的组之后,运行时就相当于将原来的 新手任务策略复制了一份【新手任务策略-副本】。

阿里巴巴(09988.HK)和腾讯控股(00700.HK)的逐笔成交,只会触发【新手任务策略】的运行;苹果(AAPL.US)和谷歌(GOOG.US)的逐笔成交,只会触发【新手任务策略-副本】的运行。

【新手任务策略】和【新手任务策略-副本】的运行是相对独立的,但会共用同一个账户(真实账户或回测账户)中的钱(cash)和货(股票)。

因此,如果一个策略先把账户购买力占用了,另一个策略可能面临购买力不足无法下单的局面。


3. 画布内的控件运行顺序

我们已经知道,运行标的会驱动策略(画布中的内容)循环运行。

以马丁格尔策略为例,策略会在恒指主连(HSImain.HK)开盘期间的每根 1 分 K 开始时运行一次。

那么,画布内的控件,又是按照什么样的顺序运行的呢?

这个策略从开始控件出来,共有 3 个出口,对应 3 条路径。3 条路径的运行顺序,取决于本路径第一个控件的位置,越靠上靠左就越优先运行(示例图中,画布内的运行顺序为:路径1——>路径2——>路径3)。

每条路径运行完才会走下一条路径,也就是说:路径间是串行的,不会同时运行。