移動平均クロスオーバーに基づくトレンド反転戦略


作成日: 2023-09-20 16:54:46 最終変更日: 2023-09-20 16:54:46
コピー: 0 クリック数: 773
1
フォロー
1617
フォロワー

概要

この戦略は,EMAとMA平均線の交差を用い,トレンドの逆転を判断し,典型的なトレンド追跡戦略である.

戦略原則

  1. 指定周期のEMA指数平均線とMA簡易移動平均線をそれぞれ計算する.

  2. EMAが上からMAを穿えると,買い信号が生成されます.

  3. EMAが上下からMAを横切ると,セールシグナルが生成されます.

  4. 特定の月,特定の日,特定の期間の取引を設定できます.

  5. 逆の開設は行わない.

  6. 規則はシンプルでわかりやすく,実行しやすい.

優位分析

  1. EMAとMAの交差は,トレンドの逆転の機会を容易に捉えます.

  2. 日付のフィルタを設定することで,重大事件による誤った取引を回避できます.

  3. ポジションを1方向にすることで,無意味な逆開平を減らすことができます.

  4. 資金の利用の効率が高くなる

  5. ショートライントレンド取引に適している.

リスク分析

  1. 均線交差は誤信号を発生させ,不必要な損失を招く可能性があります.

  2. 単一の損失の規模を効果的に制御できない.

  3. 損失のない戦略では,資金の損失のリスクがより大きい.

  4. 日付が固定されすぎると取引機会が失われる可能性があります.

  5. パラメータの設定を間違えた場合も, 策略のパフォーマンスに影響する.

最適化の方向

  1. 異なる平均線周期をテストし,最適なパラメータを探します.

  2. 交差を評価する際には,他のフィルタリング条件を追加する必要があります.

  3. 損失を抑える仕組みを確立し,単一損失を制御する.

  4. 日付のフィルタリングを最適化し,柔軟性を保ちます.

  5. 停車場を合理的に設定する方法を研究する.

  6. ダイナミックなポジション管理戦略を考える

要約する

この戦略は,EMAとMA均線交差をベースにトレンド反転取引を行うため,シンプルで効率的ですが,いくつかの改善の余地があります.パラメータ最適化,リスク管理などの手段によってさらに完善され,安定したショートライン取引システムにすることができます.

ストラテジーソースコード
//@version=2
strategy(title = "MA + EMA Crossover Strategy ",shorttitle="eMA", overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=100000)


emaLength =input(34)

maLength = input(89)

ema=ema(close,emaLength)
ma=sma(close,maLength)

plot(ema,linewidth=3,color=green)
plot(ma,linewidth=3,color=red)
longCond= crossover(ema,ma)
shortCond=crossover(ma,ema)





monthfrom =input(8)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  longCond    and  month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond   and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")