Type/to search
0
Follow
80
Followers
恒温器策略在发明者量化平台的实践与应用
Discussions
Created 2019-07-20 14:34:05  Updated 2023-10-23 17:30:02
 0
 2237

img

为什么叫它恒温器。我们根据其在市场,震荡和趋势两种模式下转换和交易的适应能力来命名这个系统。该系统源自我们对特定系统在特定市场领域的成功的观察。此系统可以创建具有双重性质的策略来充分利用市场的两种模式。

首先,我们创建一个函数来帮助确定市场模式。根据此函数的输出,恒温器从跟随模式切换到短期摆动模式。

趋势跟踪模式使用类似于布林带中的趋势跟踪机制。短期摆动系统是一个包含模式识别的开放式突破。此函数比较市场徘徊的距离和市场行进的实际距离:

Abs(收盘价 - 收盘价[29])/(最高价(30)- 最低价(低价,30日)* 100

该函数生成0到100之间的值。值越大,当前市场的拥挤程度越小。如果函数返回的值小于20,则系统进入短期摆动模式。

基本上,市场大部分都在展示一个摆动动作,系统试图抓住波动并从中获取微薄的利润。恒温器试图通过买入/卖出小市场冲动来实现这一壮举。如果波动足够大,那么系统会切换模式。

通过对短期波动的深入分析,我们发现有时候买入比卖出更好,反之亦然。这些时候可以通过简单的视觉模式来确定。如果今天的收盘价高于昨天的高点,低点和收盘价(也称为当天的关键点),那么我们认为明天的市场行动可能会看跌。然而,如果今天的收盘价低于昨天的高点,低点和收盘价的平均值,那么今天的市场可能会看涨。我们将这些时候分类为更容易买入和卖出的价位。

在发明者量化平台,恒温器策略是一个非常流行的策略,用户根据自己的需求,添加一些额外的交易逻辑,使得策略表现更加优秀,以下是一个恒温器策略在发明者量化平台的典型框架:

  • 主图:
    上轨公式:TOP^^MAC+N_TMPTMP;//布林通道上轨
    下轨公式:BOTTOM^^MAC-N_TMPTMP;//布林通道下轨

  • 副图:
    CMI公式:CMI:ABS(C-REF(C,N_CMI-1))/(HHV(H,N_CMI)-LLV(L,N_CMI))*100;//0-100 取值越大,说明趋势越强,CMI<20震荡模式,CMI>20为趋势

  • 代码(My语言):

MAC:=MA(CLOSE,N); TMP:=STD(CLOSE,N); TOP^^MAC+N_TMP*TMP; // 布林通道上轨 BOTTOM^^MAC-N_TMP*TMP; // 布林通道下轨 BBOLL:=C>MAC; SBOLL:=C<MAC; N_CMI:=30; CMI:ABS(C-REF(C,N_CMI-1))/(HHV(H,N_CMI)-LLV(L,N_CMI))*100; //0-100 取值越大,说明趋势越强,CMI<20震荡模式,CMI>20为趋势 N_KD:=9; M1:=3; M2:=3; RSV:=(CLOSE-LLV(LOW,N_KD))/(HHV(HIGH,N_KD)-LLV(LOW,N_KD))*100; //收盘价与N周期最低值做差,N周期最高值与N周期最低值做差,两差之间做比值。 K:=SMA(RSV,M1,1); //RSV的移动平均值 D:=SMA(K,M2,1); //K的移动平均值 MIND:=30; BKD:=K>D AND D<MIND; SKD:=K<D AND D>100-MIND; // 震荡模式 BUYPK1:=CMI < 20 AND BKD; //震荡多单买平开 SELLPK1:=CMI < 20 AND SKD; //震荡空单卖平开 // 趋势模式下原有震荡持仓的处理 SELLY1:=REF(CMI,BARSBK) < 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND K<D; //震荡多单止盈 BUYY1:=REF(CMI,BARSSK) < 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND K>D; //震荡空单止盈 // 趋势模式 BUYPK2:=CMI >= 20 AND C > TOP; // 趋势多单买平开 SELLPK2:=CMI >= 20 AND C < BOTTOM; // 趋势空单卖平开 // 趋势模式下原有震荡持仓的处理 SELLY2:=REF(CMI,BARSBK) >= 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND SBOLL;//趋势多单止盈 BUYY2:=REF(CMI,BARSSK) >= 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND BBOLL;//趋势空单止盈 SELLS2:=REF(CMI,BARSBK) >= 20 AND C<BKPRICE*(1-0.01*STOPLOSS) AND SBOLL;//趋势多单止损 BUYS2:=REF(CMI,BARSSK) >= 20 AND C>SKPRICE*(1+0.01*STOPLOSS) AND BBOLL;//趋势空单止损 IF BARPOS>N THEN BEGIN BUYPK1,BPK; SELLPK1,SPK; BUYPK2,BPK; SELLPK2,SPK; END BUYY1,BP(SKVOL); BUYY2,BP(SKVOL); BUYS2,BP(SKVOL); SELLY1,SP(BKVOL); SELLY2,SP(BKVOL); SELLS2,SP(BKVOL);

该策略回测结果如下:

img
img
img

更多详情,请参见:https://www.fmz.com/strategy/129086

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)