
なぜサーモスタットと呼ばれるのでしょうか?このシステムは、マーケット、スイング、トレンドの各モードで切り替えて取引できる適応性に基づいて命名されました。このシステムは、特定の市場セグメントにおける特定のシステムの成功を観察した結果から生まれました。このシステムにより、市場の両方のモードを活用する二重の性質を持つ戦略を作成できます。
まず、市場パターンを判断するのに役立つ関数を作成します。この機能の出力に基づいて、サーモスタットは追従モードから短期スイングモードに切り替わります。
トレンド フォロー モードでは、ボリンジャー バンドに見られるトレンド フォロー メカニズムと同様のトレンド フォロー メカニズムが使用されます。短期スイングシステムは、パターン認識を組み込んだオープンブレイクアウトです。この関数は、市場が移動した距離と市場が移動した実際の距離を比較します。
終値(終値 - 終値[29])/(最高価格(30) - 最低価格(30日間の最安値) * 100
この関数は 0 から 100 までの値を生成します。値が大きいほど、現在の市場の混雑度が低くなります。関数によって返される値が 20 未満の場合、システムは短期スイング モードに入ります。
基本的に、市場は主に変動傾向を示しており、システムはその変動を捉えてそこから小さな利益を得ようとします。サーモスタットは、小さな市場インパルスを売買することでこの偉業を達成しようとします。変動が十分に大きい場合、システムはモードを切り替えます。
短期的な変動を詳細に分析した結果、売るよりも買うほうが良い場合があり、その逆もあることがわかりました。これらの時間は、単純な視覚パターンを通じて識別できます。今日の終値が昨日の高値、安値、終値(その日のピボットポイントとも呼ばれます)を上回っている場合、明日の市場動向は弱気になる可能性が高いと考えられます。ただし、今日の終値が昨日の高値、安値、終値の平均を下回っている場合、今日の市場は強気になる可能性があります。私たちは、この時期は買いやすく、売りやすい時期だと分類しています。
サーモスタット戦略は、Inventor Quantitative Platform で非常に人気のある戦略です。ユーザーは、必要に応じて追加の取引ロジックを追加して、戦略のパフォーマンスを向上させることができます。以下は、Inventor Quantitative Platform のサーモスタット戦略の一般的なフレームワークです。
メイン画像: 上部レールの式: 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 はトレンドを示します。
コード(私の言語):
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);
この戦略のバックテスト結果は次のとおりです。

詳細については、https://www.fmz.com/strategy/129086 をご覧ください。