二重移動平均平均反転戦略


作成日: 2023-10-17 14:38:55 最終変更日: 2023-10-17 14:38:55
コピー: 0 クリック数: 662
1
フォロー
1617
フォロワー

二重移動平均平均反転戦略

双均線平均値逆転戦略は,トレンド追跡戦略である.これは,異なる周期の平均線を計算して,価格の動きが逆転しているかどうかを判断し,トレンドの逆転点をキャプチャして,低買い高売りを実現する.

この戦略は,まず,2組の異なる周期の平均線を計算し,一組はより長い周期の平均線で,全体的なトレンドを判断し,もう一組はより短い周期の平均線で,局所的なトレンドを判断する.戦略は,2組の平均線の関係を比較して,全体的なトレンドが逆転したかどうかを判断する.

具体的には,戦略は最初に60日単行移動平均と60日重引移動平均という長い周期の2つの平均線を計算します. この平均線は,全体的なトレンドを判断するために使用されます. さらに,戦略は,短い周期の5日単行移動平均と5日重引移動平均という2つの平均線を計算します.

短期平均線が長期平均線を横切ると,価格が逆転し,上昇から上昇に転じると,この戦略は多頭ポジションを開きます.短期平均線が長期平均線を横切ると,価格が逆転し,上昇から低下に転じると,この戦略は空頭ポジションを開きます.

具体的にはこうです.

  1. 60日間の単純移動平均nmaと60日間の加重移動平均n2maを計算する

  2. 5日間の単純移動平均 nma1と5日間の加重移動平均 n2ma1を計算する

  3. n2ma1とnma1を比較する:n2ma1の上にnma1を着用すると多頭が開く.n2ma1の下にはnma1を着用すると空頭開く

  4. n2maとnmaを比較する.n2maの上にnmaを着用して,多頭開いた場合,多頭を維持する.n2maの下にnmaを着用して,空頭開いた場合,空頭を維持する.

  5. 価格がストップポイントを超えたり,ストップポイントに達したとき,平仓します.

  6. 上記のプロセスを繰り返して,トレンドの逆転を捉え,低価格で高い価格で売ることができます.

この戦略の優点は,双均線組合せは,価格トレンドの逆転を比較的に敏感に捉えることができるという点にある.双均線反転は比較的に古典的な技術指標信号である.同時に,異なる周期均線の組合せは,全体的なトレンドと局所的なトレンドを判断することができ,トレンド追跡を実現している.

この戦略のリスクは,双均線反転信号が偽信号を発生させ,乱入または逆転出場を引き起こし,取引リスクを増加させるというものである.また,均線システムは,整合範囲の広い市場に対して,誤信号を発生させる容易である.最後に,双均線システムは,パラメータ設定の安定性を検証するために,より長い反測周期を必要としている.

この戦略は以下の点で最適化できます.

  1. 平均線の周期パラメータを最適化し,最適なパラメータの組み合わせを探す

  2. 他の技術指標のフィルタリングを追加して,偽の突破を避ける

  3. ストップ・ストップ・ストップの戦略に参加し,単一損失をコントロールする

  4. トレンドのタイミングで取引し,波動的な市場から誤った取引を避ける

  5. 市場変動に合わせてポジションの規模を動的に調整する

以上をまとめると,双均線平均値逆転戦略は,異なる周期平均線の関係を比較して,価格トレンドの逆転点を捕捉し,低買い高売りの目的を達成する.パラメータ設定を最適化,フィルタ条件を増やし,リスクを制御することは,この戦略が改善できる方向です.適切に使用すると,それは,トレンドの逆転を定量的に捕捉する効果的なツールになることができます.

ストラテジーソースコード
/*backtest
start: 2022-10-10 00:00:00
end: 2023-06-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//                   //////////////// Attempt to Reduced ReDraw version /////////////////////
//
//                         Microcana.com strategy by pilotgsms - version 4.20b <<<< Edited by Seaside420 >>>> special thanks to 55cosmicpineapple
//                            Hull_MA_cross added to script
strategy("M&H_v420b", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
dd = input(defval=1, title="Post Signal Bar Delay", type=float, step=1)
df = input(defval=5, title="Close Position Bar Delay", type=float, step=1)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
openlong=prediction[dd] and n1>n2 and strategy.opentrades<1
if (openlong)
    strategy.entry("Long", strategy.long)
openshort=not prediction[dd] and n2>n1 and strategy.opentrades<1
if (openshort)
    strategy.entry("Short", strategy.short)
closeshort=prediction and close<low[df]
if (closeshort)
    strategy.close("Short")
closelong=not prediction and close>high[df]  
if (closelong)
    strategy.close("Long")