トレンドフォロー移動平均クロスオーバー戦略


作成日: 2023-11-01 17:18:13 最終変更日: 2023-11-01 17:18:13
コピー: 0 クリック数: 427
1
フォロー
1225
フォロワー

トレンドフォロー移動平均クロスオーバー戦略

概要

この戦略は,移動平均の黄金クロスと死叉の原理を適用し,RSI指標の補助判断と組み合わせて,トレンドの識別と追跡を実現する.短期平均線上での長期平均線を穿越する際に多行し,短期平均線下での長期平均線を穿越する際に空きをするのは,より典型的なトレンド追跡戦略である.

戦略原則

この戦略は以下の原則に基づいています.

  1. EMA平均線を使用する:SMAよりも最新の価格変化に反応し,突破に対してより早く反応する.

  2. 双均線交差:短周期均線上を通る長周期均線は買入信号,短周期均線下を通る長周期均線は売り出信号,均線の黄金交差と死の原理を利用してトレンド転換を判断する。

  3. RSI指数補助判断:RSI高値が下がったときに売る,RSI低値が上昇したときに買う,偽突破を避ける.

  4. 異なる周期平均線を重ねた:55周期線は短期トレンドの転換を判断する信号線,100周期線は中期トレンドを決定する信号線,200周期線は長期トレンドを判断する信号線。

  5. ストップ・ストップ設定:合理的なストップ・ストップ比を設定し,リスクを制御する.

この戦略の取引論理は以下の通りです.

  1. 55サイクルEMAで100サイクルEMAを履いて,12サイクルEMAが200サイクルEMAより高いとき,多入場する.

  2. 100周期EMAの下から200周期EMAを突破すると空白入場.

  3. 取引開始後,利益の最適化のために,ストップ・ロスとストップ・ストップの条件を設定します.

  4. RSI指標がオーバーバイオーバーセールシグナルを示しているときに,対応する多項と空項をタイムリーに閉鎖し,反転のリスクを回避してください.

  5. 異なる周期のEMAを重ねて適用することで,戦略はトレンド判断と反転確認の両方を兼ね,中長期のトレンドを追跡しながら,套装を避けるようにします.

戦略的優位性

この戦略の主な利点は

  1. 戦略は明確で,シンプルな均線交差原理によってトレンドの方向を判断し,容易に理解し,実行する.

  2. EMA平均線を利用することで,価格の変化により迅速に反応し,トレンドの転換を間に合うように捉えることができます.

  3. 多群周期EMAの重複使用は,トレンドの追跡と逆転の認識を兼ね備えている.

  4. RSI指標の使用は,偽の突破を回避し,信号の正確性を向上させる.

  5. デフォルトのストップ・ストップパラメータは合理的に設定され,取引リスクを効果的に制御できます.

  6. 拡張性強で,市場調整平均線パラメータとストップ・ストップパラメータなどに基づいて戦略を最適化することができる.

リスク分析

この戦略には以下のリスクがあります.

  1. 均線戦略は市場の波動に敏感で,簡単に套用される.長期にわたる波動市場に直面すると,無効取引が多すぎます.

  2. デフォルトのパラメータは,すべての品種と周期の市場特性に適応できない可能性があり,ターゲットに最適化が必要である.

  3. 基本面や重大事件が市場情勢に与える影響を考慮せずに,純粋に技術的な指標の駆動は,簡単に騙されやすい.

  4. この戦略は,指数が上昇しているのに,株式市場が分化しているときに,利益を得られない可能性があります.

  5. 市場から多くの利益が逃れる危険性があります.

これらのリスクに対して,以下の方法で最適化や改善を行うことができます.

  1. 取引量指数などのフィルターと組み合わせて,偽の突破が損失を招くのを防ぐ.

  2. 特定の品種の特性に合わせてパラメータを回測最適化する.

  3. ポジションの保持時間を適切に短縮し,ストップ・ストップを間に合うように停止し,長期の振動走勢のリスクを回避する.

  4. 基本指数と組み合わせて,大きな利空事件が起こると,攻撃を受けないようにする.

戦略最適化の方向性

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

  1. 均線システムのパラメータを最適化して,より適切な短期,中期,および長期の均線周期の組み合わせを探します. Machine Learningなどのパラメータ最適化方法を試すことができます.

  2. この戦略における効果をテストする閉盘価格と典型的な価格の対比.

  3. 取引量をフィルターとして使って,大量の放量がある場合にのみ取引シグナルを生成する.

  4. 止損停止条件を最適化して,より有意にします. 止損停止を動的に設定して,止損位置を比例して調整することもできます.

  5. ストック,MACD,ブリンバンドなどの他の指標と組み合わせた複合戦略を構築し,戦略の効果を向上させる.

  6. 品種,周期,市場段階のそれぞれで反省し,戦略の効果を評価し,さらに改善する.

  7. 機械学習アルゴリズムの助けを借りて,多次元パラメータの最適化を考慮することができる.

要約する

この戦略の全体的な構想は明確で分かりやすく,簡単な均線交差原理によってトレンド方向を判断する.戦略は,実行しやすさ,デフォルトの信頼性,拡張性の強さなどの利点がある.しかし,一定の市場リスクも存在し,反測結果に応じてパラメータとモジュールを継続的に最適化して,戦略をより安定的かつ賢くする.量価技術分析と基礎研究を組み合わせて,戦略をより包括的かつ信頼性のあるものにする.

ストラテジーソースコード
/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-31 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pernath

//@version=5
strategy("TREND_CATCHER", overlay=true, commission_value=0.05, commission_type=strategy.commission.percent, initial_capital=1000)

//#####variables##############
profit_short=input(title='profit_short', defval=27)
stop_short=input(title='stop_short', defval=2)

stop_long=input(title='stop_long', defval=3)
profit_long=input(title='profit_long', defval=35)


media_1=input(title='media_1', defval=55)
media_2=input(title='media_2', defval=100)
resta_medias=input(title='resta_medias', defval=0)
resta_medias2=input(title='resta_medias2', defval=0)

RSI_periodos=input(title='RSI_periodos', defval=42)
//###############VARIABLES###################




//#####Alert#####
id_bot = ""
email_token = ""
long_open =""
long_close =""
short_open =""
short_close =""
//#  {{strategy.order.alert_message}}


//#############################
//#############################

//###############EMA##############/
//plot(ta.ema(close, 1), title='ema 5', color=color.white)
plot(ta.ema(close, 12), title='ema 12', color=color.white)
plot(ta.ema(close, 25), title='ema 25', color=color.white)
plot(ta.ema(close, 30), title='ema 30', color=color.white, linewidth=1)
plot(ta.ema(close, 40), title='ema 40', color=color.white, linewidth=1)
plot(ta.ema(close, 55), title='ema 55', color=color.orange, linewidth=1)
plot(ta.ema(close, 100), title='ema 100', color=color.red, linewidth=1)
plot(ta.ema(close, 200), title='ema 200', color=color.white, linewidth=3)

//#############################/





//######VISUAL#############
EMA50 = ta.ema(close, 55)
EMA100 = ta.ema(close, 100)


estado_medias=EMA50-EMA100




a = plot(EMA50, title="EMA(50)", color=color.orange, linewidth=1 ) 
b = plot(EMA100, title="EMA(100)", color=color.red, linewidth=1 )


var color col = na
col := estado_medias>resta_medias ? color.green : color.red
fill(a,b,color=col,transp=40)


//######VISUAL#############





Go_Short=(ta.crossunder(ta.ema(close,100),ta.ema(close,200)))
Go_Long=((ta.crossover(ta.ema(close,55),ta.ema(close,100))and(ta.ema(close,12)>ta.ema(close,200))))


strategy.close("enter long", (Go_Short),alert_message=long_open)

cancelar_short=((ta.crossunder(ta.ema(close,25),ta.ema(close,6))))



if Go_Short
    strategy.entry("enter short", strategy.short,1, alert_message=short_open) 
  
strategy.exit("cerrar short", "enter short", 1, profit=close*profit_short/100/syminfo.mintick, loss=close*stop_short/100/syminfo.mintick, alert_message=short_close)




strategy.close("enter short", (Go_Long),alert_message=short_close)
cancelar=((ta.crossunder(ta.ema(close,12),ta.ema(close,30))))



if Go_Long
    strategy.entry("enter long", strategy.long,1,alert_message=long_open)

strategy.exit("cerrar long", "enter long", 1, profit=close*profit_long/100/syminfo.mintick, loss=close*stop_long/100/syminfo.mintick, alert_message=long_close)




strategy.close("enter short", (cancelar_short),alert_message=short_close)

strategy.close("enter long", (cancelar),alert_message=long_close)


//posiciones abiertas
bgcolor((strategy.position_size > 0 or strategy.position_size < 0) ? color.blue : na, transp=70)