聊聊交易系统之自适应唐奇安通道

话说昨天我被《关于规范金融机构资产管理业务的指导意见》刷屏,坚定了我做一个草根投资者的信念。意见稿中有一条是这样写的:“金融机构运用人工智能技术开展资产管理业务应当严格遵守本意见有关投资者适当性、投资范围、信息披露、风险隔离等一般性规定,不得借助人工智能业务夸大宣传资产管理产品或者误导投资者。金融机构应当向金融监督管理部门报备人工智能模型的主要参数以及资产配置的主要逻辑,为投资者单独设立智能管理账户,充分提示人工智能算法的固有缺陷和使用风险,明晰交易流程,强化留痕管理,严格监控智能管理账户的交易头寸、风险限额、交易种类、价格权限等。金融机构因违法违规或者管理不当造成投资者损失的,应当依法承担损害赔偿责任。”

想象一下在进行交易策略编写的时候,总有一个声音在回荡:“来快点把你的程序化模型的止损条件报备一下。”

我拍脑袋一想,觉得以后基于自适应系统的程序化模型说不定会比较受青睐,所谓自适应系统,是根据行情特征,例如波动率,实时调整参数,而不是根据事后的累计交易结果。

给大家举一个例子,用的是比较简单的唐奇安通道的模型,测试对象为上海黄金交易所的迷你金(这是一个充满起伏溢价与迷之递延方向的奇特物种),测试工具为文华系统(主要因为我现在还不具备其他量化系统的编程能力)。

唐奇安通道它是一个机械交易系统:突破20个周期内最高价,做多;跌破20个周期内最低价,做空。唐奇安最早大名远扬是在1970年,美国有个公司对当时最流行的机械交易系统进行了模拟测试和比较研究,其研究结果表明,在所有测试对象中唐奇安通道规则最为成功。1983年,他被推举为首届“最佳获利奖”得主,并将此奖项改为唐奇安奖。

(下图为唐奇安通道,上轨为20个周期最高价,下轨为20个周期最低价)

唐奇安通道的模型源码如下:

AA:HHV(H,20);

BB:LLV(L,20);

DD:(AA+BB)/2;

CROSS(H,REF(AA,1)),BPK;

CROSS(REF(BB,1),L),SPK;

AUTOFILTER;

测试效果还不错:

但昨天晚上的时候我躺床上想了以下,能否设计一个根据行情特征,例如波动率,实时调整参数的交易系统。总体设计思路是这样的,交易系统通过标准差函数定义一定周期内的市场波动情况,从而计算市场波动的变化率,再通过在界定自适应函数波动范围的基础上的动态调整,把唐奇安通道的上轨和下轨计算公式与市场的波动情况相互波动,自动调节不同波动范围内的上轨和下轨,从而提高系统应对大波动行情下的假突破问题,提高不同波动行情的适应能力,核心代码如下:

VARIABLE:LOOKBACKDAYS:=0;

TODAYVOLATILITY:=STD(CLOSE,30);//当日市场波动

YESTERDAYVOLATILITY:=REF(TODAYVOLATILITY,1);//昨日市场波动

DELTAVOLATILITY:=(TODAYVOLATILITY-YESTERDAYVOLATILITY)/TODAYVOLATILITY;//市场波动的变动率

LOOKBACKDAYS:=IF(BARPOS

LOOKBACKDAYS:=ROUND(LOOKBACKDAYS,0);

LOOKBACKDAYS:=MIN(LOOKBACKDAYS,CEILINGAMT);

LOOKBACKDAYS:=MAX(LOOKBACKDAYS,FLOORAMT);

BUYPOINT:HV(HIGH,LOOKBACKDAYS);

SELLPOINT:LV(LOW,LOOKBACKDAYS);

CROSS(H,REF(BUYPOINT,1)),BPK;

CROSS(REF(SELLPOINT,1),L),SPK;

AUTOFILTER;

(CEILINGAMT及FLOORAMT参数默认为40和20)

命名为自适应版本唐奇安通道(小汤版)

(效果图)

该版本相对于传统的唐奇安通道系统把握波段行情的能力加强了一点点,哈哈。

嗯,就是这样,下一期讲讲另一个基于自适应系统的动态突破系统,祝大家五一节快乐!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180428G15UTI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券