ダブル移動平均ゴールデンクロス戦略


作成日: 2023-12-25 15:15:46 最終変更日: 2023-12-25 15:15:46
コピー: 0 クリック数: 553
1
フォロー
1623
フォロワー

ダブル移動平均ゴールデンクロス戦略

概要

この戦略は,二重移動平均の黄金交差原理を適用し,RSI指標と組み合わせて,買出点を判断する.戦略は,主に26周期EMAと12周期EMAの交差を判断し,100周期SMAと200周期SMAの交差を判断し,交差が起こる時にRSI指標と組み合わせて取引信号を発信するかどうかを判断する.

戦略原則

この戦略は主に2つの移動平均の交差原理に基づいています. 二つの移動平均の中で,26周期EMAは短期トレンドを表し,12周期EMAはより短期の価格変動を表しています. 短期EMAの上を通るときは,価格が下がって転がり,多信号である. 短期EMAを下を通るときは,価格が下がって転がり,空信号である. この戦略は100周期SMAと200周期SMAの判断を追加し,それらはそれぞれ中期トレンドと長期トレンドを表し,その交差は価格の動きの転向を判断するために使用できます.

EMAとSMAの交差を判断する一方で,戦略はRSI指標と組み合わせて取引信号を発出する. RSIは価格が超買または超売り状態にあるかを判断する. RSIが70を超えると超買信号であり,30を下ると超売り信号である. したがって,戦略はEMAまたはSMAの交差が起こると,同時にRSI指標をチェックし,価格が超買超売り時に誤った取引信号を発出することを避ける.

戦略的優位性

  1. 二重EMAで短期価格動向を判断し,二重SMAで中長期価格動向を判断し,価格ターニングポイントを効果的に発見できる.

  2. RSI指標と組み合わせると,価格が超買超売の際に誤った取引シグナルを発信するのを防ぐことができます.

  3. EMA,SMAのパラメータを調整することで,異なる周期および異なる取引品種に適応できます.

  4. 戦略はシンプルでわかりやすく,理解しやすく,最適化できます.

戦略リスク

  1. 双動平均は遅滞性があり,価格の転換点を予測することはできません.

  2. EMA,SMAのパラメータを正しく設定しない場合,大量の誤信号が生成される可能性があります.

  3. RSI指標は,価格の超買超売状態を効果的に判断できない場合もあります.

  4. 取引の種類は異なるため,パラメータの調整が必要で,普遍性はない.

リスクの解決方法

  1. 他の先導指標と組み合わせて,価格動向と可能転換点を判断する.

  2. テストパラメータの安定性,パラメータの組み合わせの勝利率が最も高いものを選択する.

  3. KD,BOLLなどの他の指標と組み合わせて,RSIが失効する事態を避ける.

  4. 異なる取引品種に応じてそれぞれテストパラメータ,パラメータ組み合わせのテンプレートを保存する.

戦略最適化の方向性

  1. 異なるEMAとSMA周期のパラメータの組み合わせをテストし,最適なパラメータを見つけます.

  2. 他の指標の判断を加えて,指標の組み合わせ戦略を形成する.一般的にはKD,MACDなどがある.

  3. ストップ・ストップ・ストップ戦略を追加し,合理的なストップ・ストップ比率を設定する.

  4. 入場時間を最適化し,価格変動が過大であるときに入場を避ける.価格変動の値が設定できます.

  5. 多空市場を区別し,異なる取引シグナル条件を設定する.

要約する

この戦略は,主に双移動平均線交差原理を用いて取引信号を発信し,シンプルで実用的で,容易に最適化できる。しかし,価格転換点を判断できない一定の遅れがあるため,特定の市場でも効果が低下する可能性がある。パラメータ最適化と指標組合せによって戦略の安定性と勝率を向上させることができる。全体的には,この戦略は中長期のトレンド取引に適しており,他の戦略の構成要素としても,実用的な価値がある。

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

//@version=2
strategy(shorttitle = "Gamma pips EMA Cross", title="MA Cross", overlay=true)
s100sma = sma(close, 100)
s200sma = sma(close, 200)
s26ema = ema(close,26)
s12ema = ema(close,12)

plot(s100sma, color = green, linewidth = 5)
plot(s200sma, color = blue, linewidth = 5)
plot(s26ema, color = yellow, linewidth = 3)
plot(s12ema, color = red, linewidth = 3)
EMACross = plot(cross(s26ema, s12ema) ? s26ema : na, style = cross, linewidth = 5, color = red)
SMACross = plot(cross(s100sma, s200sma) ? s200sma : na, style = cross, linewidth = 5, color = white)
Alert = cross(s26ema, s12ema)
alertcondition(Alert, title="EMA Crossing")

//============ signal Generator ==================================//
EMACrossover = crossover(s26ema, s12ema) //if yellow cross and is above red ->SELL
EMACrossunder = crossunder(s26ema, s12ema) //if yellow cross and is below red ->BUY
SMACrossover = crossover(s100sma, s200sma) //green crosses above blue ->Buy
SMACrossunder = crossunder (s100sma, s200sma) //green crosses below below ->Sell
price = close
BuyCondition = (EMACrossunder) and (price >= s100sma)
SellCondition = (EMACrossover) and (price <= s100sma)

///---------Buy Signal-------------///
if (BuyCondition)
    strategy.order("BUY ema crossunder", strategy.long)

 
///Short signal------//
if(SellCondition)
    strategy.order("SELL ema crossover", strategy.short)