AIQT 策略定义及规范

AIQT 策略逻辑

AIQT 爱量化工作台专注基于日 K 线的中低频离线策略设计。所谓离线策略是指下单方式由人工执行,无需接入实时交易系统。即由工作台完成每天的策略计算,并生成交易清单,第二天人工操作下单。

AIQT 的策略由指标和配置两部分构成,其中指标的定义和计算是策略的核心内容。用日线行情和财报作为基础指标,再由基础指标使用自定义的计算式或系统内置的指标函数计算出更多指标,直到计算出买卖信号的指标,最后在配置定义项里设置相关配置即可。

例如双均价策略中,需要根据两条均线的交叉情况来判断买入或卖出。在 AIQT 的实现思路为:

1. 用每日的收盘价数据计算两条均线指标,如 MA5 和 MA10

2. 根据两条均线的交叉情况来计算买卖信号,MA5 上穿 MA10 时买入,MA5 下穿 MA10 时卖出

3. 将买卖信号填入到对应的配置项,并做相关配置

因此可编写双均线策略内容如下:

指标定义:

自定义计算,MA5;表达式:5 日收盘价平均

自定义计算,MA10;表达式:10 日收盘价平均

自定义信号,买卖信号;买入条件:MA5 大于 MA10 且 昨日 MA5 小于等于昨日 MA10,卖出条件:MA5 小于 MA10 且昨日 MA5 大于等于昨日 MA10

配置定义:

买入信号列:买卖信号

买入价格:昨日收盘价

买入股数:100

卖出信号列:买卖信号

卖出价格:昨日收盘价

为了策略设计方便,AIQT 里内置了很多技术指标,可以直接调用,如双均线策略也可直接导用内置指标 MA 和 GDX(金叉死叉信号指标)实现:

指标定义:

MA,MA5;源指标:收盘价,周期:5

MA,MA10;源指标:收盘价,周期:10

GDX,GDX5_10;短线:MA5,长线:MA10

配置定义:

买入信号列:GDX5_10

买入价格:昨日收盘价

买入股数:100

卖出信号列:GDX5_10

卖出价格:昨日收盘价

策略规范格式

策略规范格式包含两部分指标定义和配置定义

1. 指标定义

(1) 内置指标格式

指标定义:

指标名称,返回参数 1:返回列名 1,返回参数 2:返回列名 2…;输入参数 1:值 1,输入参数 2:值 2,…

当只有单个输出参数时,可以省略返回参数名:

指标名称,返回列名;输入参数 1:值 1,输入参数 2:值 2,…

(2) 自定义指标格式

自定义指标名称有两种,自定义计算和自定义信号,格式分别为:

指标定义:

自定义计算,返回列名;表达式:×××

自定义信号,返回列名;买入条件:×××

自定义信号,返回列名;买入条件:×××,卖出条件:×××

(3) 财务指标格式

指标定义:

指标名称

举例:

(1) 内置指标

单个输出:

指标定义:

MA,MA5;源指标:收盘价,周期:5【单个输出参数,省略输出参数名】

GDX,GDX5_10;短线:MA5,长线:MA10

多个输出:

指标定义:

MACD,DIF:DIF,DEA:DEA,MACD:MACD;源指标:收盘价,短周期:12,长周期:26,中周期:9

(2) 自定义指标

自定义指标名称有两种,自定义计算和自定义信号,分别举例如下:

指标定义:

自定义计算,买价;表达式:23

自定义信号,买入信号;买入条件:(最高价 - 最低价)/ 昨日收盘价大于 0.05 且 (收盘价 - 开盘价)/ 开盘价小于 0.02

自定义信号,买卖信号;买入条件:MA5 大于 MA10 且 昨日 MA5 小于等于昨日 MA10,卖出条件:MA5 小于 MA10 且 昨日 MA5 大于等于昨日 MA10

(3) 财务指标

指标定义:

营业利润(只写指标名称)

2. 配置定义

配置定义:

买入信号列:××× (填写指标)

买入价格:××× (填写枚举或指标,枚举为昨日收盘价、今日收盘价、今日开盘价)

买入股数:××× (填写整数)

买入金额:××× (填写数值)

最大持仓数:××× (填写整数)

卖出信号列:××× (填写指标)

卖出价格:××× (填写枚举或指标,枚举为昨日收盘价、今日收盘价、今日开盘价)

止盈幅度:××× (填写数值)

止损幅度:××× (填写数值)

最长持仓日:××× (填写整数)

多次买入分别平仓:××× (填写布尔值,true 或 false)

平仓缺省价格:××× (填写枚举或指标,枚举为昨日收盘价、今日收盘价、今日开盘价)

总资金数:××× (填写数值)

每次买入比例:××× (填写数值)

每次买入金额:××× (填写数值)

现金范围:××× (填写数值范围,写成一个串,最小值 - 最大值)

调仓周期:××× (填写字符串,每天 / 每周 / 每月 / 每年 1 月 /…/ 每年 12 月)

调仓指标:××× (填写指标)

选出名次:××× (填写名次,直接写最大前 3,最小后 5 之类)

调仓信号:××× (填写信号指标,用信号指标判断,是 1 的时候调进来,这个和调仓指标互斥)

注意:配置项的名称不能更改,严格按照配置定义里的名称。无需配置的项目可以省略不写。

举例:

配置定义:

买入信号列:DVG(DVG 为一个指标,DVG==1 时买入)

买入价格:昨日收盘价

买入股数:100

卖出信号列:DVG(DVG==-1 时卖出)

卖出价格:昨日收盘价

止盈幅度:5(表示当股价上涨超过 5% 时卖出)

止损幅度:3(表示当股价下跌超过 3% 时卖出)

最长持仓日:5(表示当持仓天数超过 5 天时卖出)

平仓缺省价格:昨日收盘价

调仓周期:每周

调仓指标:成交量

选出名次:最大前 5

总资金数:100000

每次买入比例:30(表示每次买入总资金数的 30%)

策略举例

双均价策略 - 内置指标

指标定义:

MA,MA5;源指标:收盘价,周期:5

MA,MA10;源指标:收盘价,周期:10

GDX,GDX5_10;短线:MA5,长线:MA10

配置定义:

买入信号列:GDX5_10

买入价格:昨日收盘价

买入股数:100

卖出信号列:GDX5_10

卖出价格:昨日收盘价

MACD 背离策略

指标定义:

MACDSIG,MACDSIG;源指标:收盘价,短周期:12,长周期:26,中周期:9

配置定义:

买入信号列:MACDSIG

买入价格:昨日收盘价

买入股数:100

卖出信号列:MACDSIG

卖出价格:昨日收盘价

MACD 背离策略 - 多票模式

指标定义:

MACDSIG,MACDSIG;源指标:收盘价,短周期:12,长周期:26,中周期:9

配置定义:

买入信号列:MACDSIG

买入价格:昨日收盘价

买入股数:100

卖出信号列:MACDSIG

卖出价格:昨日收盘价

调仓周期:每周

调仓指标:成交量

选出名次:最大前 5

趋势交易策略

指标定义:

VPTR,VPTR;周期 1:252,周期 2:3,分位数:5

配置定义:

买入信号列:VPTR

买入价格:昨日收盘价

买入股数:100

卖出信号列:VPTR

卖出价格:昨日收盘价

止盈幅度: 10

KNN 简单策略

指标定义:

KNN,KNN;周期:100,前 m 个距离最近的数据:20

配置定义:

买入信号列:KNN

买入价格:昨日收盘价

买入股数:100

最大持仓数:1

卖出信号列:KNN

卖出价格:昨日收盘价

固定价策略

指标定义:

自定义计算,买价;表达式:23

自定义计算,卖价;表达式:25.5

配置定义:

买入价格:买价

买入股数:100

卖出价格:卖价

双均价策略 - 自定义指标

指标定义:

自定义计算,MA5;表达式:5 日收盘价平均

自定义计算,MA10;表达式:10 日收盘价平均

自定义信号,买卖信号;买入条件:MA5 大于 MA10 且 昨日 MA5 小于等于昨日 MA10,卖出条件:MA5 小于 MA10 且昨日 MA5 大于等于昨日 MA10

配置定义:

买入信号列:买卖信号

买入价格:昨日收盘价

买入股数:100

卖出信号列:买卖信号

卖出价格:昨日收盘价

波动性突破策略

指标定义:

自定义计算,VF;表达式:ln(最高价 / 最低价)*10

自定义计算,VFM;表达式:20 日 VF 平均

自定义信号,VF_signal;买入条件:VF 大于昨日 VFM*1.5 且 收盘价大于开盘价

配置定义:

买入信号列:VF_signal

买入价格:昨日收盘价

买入股数:100

止盈幅度:5

止损幅度:3

最长持仓日:5

平仓缺省价格:昨日收盘价

中位数通道突破策略

指标定义:

自定义计算,ME;表达式:20 日收盘价中位数

自定义计算,最高价 20;表达式:20 日最高价最大

自定义计算,最低价 20;表达式:20 日最低价最小

自定义计算,上轨;表达式:昨日 ME+(昨日最高价 20- 昨日最低价 20)*0.5

自定义计算,下轨;表达式:昨日 ME-(昨日最高价 20- 昨日最低价 20)*0.5

自定义信号,买卖信号;买入条件:收盘价大于上轨,卖出条件:收盘价小于下轨

配置定义:

买入信号列:买卖信号

买入价格:昨日收盘价

买入股数:100

卖出信号列:买卖信号

卖出价格:昨日收盘价

放量高点阻力突破策略

指标定义:

自定义计算,Vol;表达式:成交量 / 昨日成交量

自定义计算,Resistance;表达式:100 日内 Vol 大于等于 2 的最高价最大前 5 名平均

自定义信号,买入信号;买入条件:收盘价大于昨日 Resistance 且 昨日收盘价小于等于 昨日 Resistance

自定义信号,卖出信号;卖出条件:收盘价小于昨日 Resistance

配置定义:

买入信号列:买入信号

买入价格:昨日收盘价

买入股数:100

卖出信号列:卖出信号

卖出价格:昨日收盘价

止盈幅度:10

止损幅度:3

最长持仓日:30

布林带均值回归策略

指标定义:

自定义计算,中轨;表达式:20 日收盘价平均

自定义计算,SD;表达式:20 日收盘价标准差

自定义计算,上轨;表达式:昨日中轨 +2* 昨日 SD

自定义计算,下轨;表达式:昨日中轨 -2* 昨日 SD

自定义信号,买卖信号;买入条件:收盘价小于等于下轨,卖出条件:收盘价大于等于上轨

配置定义:

买入信号列:买卖信号

买入价格:昨日收盘价

买入股数:100

卖出信号列:买卖信号

卖出价格:昨日收盘价

止损幅度:3

海龟策略

指标定义:

自定义计算,don_up;表达式:20 日最高价最大

自定义计算,don_down;表达式:20 日最低价最小

自定义信号,买卖信号;买入条件:收盘价大于昨日 don_up,卖出条件:收盘价小于昨日 don_down

配置定义:

买入信号列:买卖信号

买入价格:昨日收盘价

买入股数:100

最大持仓数:1

卖出信号列:买卖信号

卖出价格:昨日收盘价

线性回归预测策略

指标定义:

PCALF,PCALF;训练数据天数:100,预测数据天数:5,主成分个数:4

自定义信号,买卖信号;买入条件:PCALF 大于收盘价 *1.005,卖出条件:PCALF 小于收盘价 *0.995

配置定义:

买入信号列:买卖信号

买入价格:昨日收盘价

买入股数:100

卖出信号列:买卖信号

卖出价格:昨日收盘价