9日移動平均と20日移動平均のクロスオーバー戦略


作成日: 2023-09-28 11:17:10 最終変更日: 2023-09-28 11:17:10
コピー: 1 クリック数: 867
1
フォロー
1617
フォロワー

概要

この戦略は,9日間の平均線と20日間の平均線の交差点を利用してトレンドの方向を判断し,購入と販売の戦略を策定する.移動平均線,K線,量価指標を統合し,典型的なショートラインの取引戦略である.

戦略原則

これは9日平均線と20日平均線の交差を基にした簡単なトレンドフォロー戦略である.具体的には,以下の部分を含んでいる.

  1. K線の色を設定します. 今日の閉盘価格が昨日より高いときは,K線を緑に設定します. 今日の閉盘価格が昨日より低いときは,K線を赤に設定します.

  2. 九日平均線の色を設定する.九日平均線が上り,二十日平均線も上ると,9日平均線は緑に設定する.九日平均線が下がり,九日平均線も下がると赤に設定する.その他は黒に設定する.

  3. 20日平均線の色を設定する。20日平均線が上るときは黒に設定し,下るときは黒に設定し,残りは変わらない。

  4. 200日平均線を描いて,深青に設定します.

  5. 9日平均線と20日平均線の交点を描画し,赤色に設定する.

  6. 取引量加重平均価格 ((VWAP) を描画し,白色に設定する.

  7. 九日均線上から二十日均線を穿うときは,多めにすること.九日均線下から二十日均線を穿うときは,空いてすること.

上記の部分では,平均線,K線,交差点および量値指標を集約して市場の傾向とシグナルを判断する.これは典型的な技術分析戦略である.

戦略的優位分析

これは簡単な,実用的なショートライン戦略で,以下の利点があります.

  1. 操作はシンプルで,簡単に習得できる.ただ2つの均等線の関係を見ればよい.

  2. 引き下がりは小さく,ショートライン操作に適している.九日目と二十日目の平均線は一定の滑らかさがあり,ショートライン市場の騒音の影響を減らすことができる.

  3. トレンドシグナルを容易に発見する。均線交差は明確なトレンド転換シグナルであり,見逃すことは容易ではない。

  4. 複数の技術指標を統合し,意思決定の質を改善する.K線,平均線,量値指標を組み合わせて,トレンド方向をより全面的に判断することができる.

  5. コードが簡潔で,テストし,最適化しやすいことを実現する.MQL4言語は,この戦略の論理を素早く実現し,パラメータの調整を容易にする.

  6. 株,外貨,デジタル通貨などのOHLCデータがある限り,この戦略を適用することができる.

リスク分析

この戦略には利点があるものの,以下のリスクがあります.

  1. 九日目と二十日目平均線のパラメータは最適化が必要である.異なる市場周期で効果は大きく異なる可能性がある.

  2. 偽突破や回調が容易である。均線交差信号は迅速に消去されるかもしれない。

  3. トレンドの振動市場に対処できない. 市場が長期にわたって明確なトレンドがないとき,この戦略は頻繁に取引損失を生じさせる.

  4. 震動調整リスクを負う必要がある.誤った空調が発生した場合,震動の状況は損失の増大につながる可能性がある.

  5. この戦略は,K線の歴史に完全に依存し,価格への重大ニュースの影響を考慮することができません.

上述のリスクに対して,適切なポジション保有率の調整,ストップ・ローズ戦略,最適化パラメータ,または他の要因と組み合わせて使用することを考慮することができます.

最適化の方向

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

  1. 平均線パラメータを最適化して,最適な周期組を見つけます. 異なる短期および中期平均線周期を試して,最もマッチする組み合わせを見つけることができます.

  2. MACD,KD,ブリン帯など他の指標のフィルタリングシグナルを追加する. 偽信号を減らすことができる.

  3. 追加ストップ戦略 移動ストップまたは指数移動ストップを設定し,単一損失を制御できます.

  4. トレンドフィルター操作と組み合わせる. 傾向が明らかである時にのみ取引に参加し,揺れ市場を避ける.

  5. 資金管理戦略の最適化. ポジションのサイズ,ストップ・ロスの幅,ストップ・ロスの追跡などの詳細を設定することで,戦略の安定性を向上させることができる.

  6. 異なる品種と周期でデータをテストする. 策略をより頑丈にするためパラメータを調整する.

  7. 機械学習などの高度な技術を追加する.RNN,LSTMなどの方法を使用して特性をエンジニアリングし,パラメータを最適化する.

要約する

この戦略は,全体として,シンプルで実用的な短期トレンドフォロー戦略である. K線,平均線,量価指標を組み合わせてトレンド方向を判断し,意思決定を行うことで,トレンドシグナルを効果的に識別することができる. しかし,この戦略には,いくつかのリスクがあり,長期にわたって安定的に使用するためにパラメータ,ストップと資金管理を最適化する必要があります. 機械学習などの新しい技術も,戦略の効果を向上させることができます. 全体的に,この戦略は,量化取引のための簡単な信頼できる思考方法を提供し,研究と適用に値する.

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

//@version=1
strategy("Dieyson daytrade EMA 9+20+200+VWAP and bar & line color", overlay=true)


//bar color rules
Dgbar = close>close[1] and ema(close,20)>ema(close[1],20)
Drbar = close<close[1] and ema(close,20)<ema(close[1],20)

//Barcolors
barcolor(Dgbar ? green : na)
barcolor(Drbar ? red : na)

//MM09 Colorful

MMgreen9 = ema(close,9)>ema(close[1],9) and ema(close,20)>ema(close[1],20)
MMred9 = ema(close,9)<ema(close[1],9) and ema(close,9)<ema(close[1],9)
col8 = (MMgreen9 ? color(green,0) : na)
col28 = (MMred9 ? color(red,0) : na)
col38 = (not MMgreen9 and not MMred9 ? color(black,0) : na)

plot(ema(close,9), color=col8, style=line, linewidth=2)
plot(ema(close,9), color=col28, style=line, linewidth=2)
plot(ema(close,9), color=col38, style=line, linewidth=2)

//MM20 Colorful

MMgreen = ema(close,20)>ema(close[1],20)
MMred = ema(close,20)<ema(close[1],20)
col = (MMgreen ? color(black,0) : na)
col2 = (MMred ? color(black,0) : na)
col3 = (not MMgreen and not MMred ? color(black,0) : na)
col4 = color(navy,0)
plot(ema(close,20), color=col, style=line, linewidth=1)
plot(ema(close,20), color=col2, style=line, linewidth=1)
plot(ema(close,20), color=col3, style=line, linewidth=1)
plot(ema(close,200), color=col4, style=line, linewidth=3)
plot(cross(ema(close,9), ema(close,20)) ? ema(close,9) : na, style = cross,color=fuchsia, transp=0, linewidth = 4)
//plot(cross(ema(close,9), ema(close,200)) ? ema(close,9) : na, style = cross, color=fuchsia, transp=0,linewidth = 4)

colorvwap = color(white,0)
plot(vwap, color=colorvwap, style=line, linewidth=1)

c = crossover(ema(close,9), ema(close,20)) and ema(close,9) > ema(close,20)
v = crossunder(ema(close,9), ema(close,20))

strategy.entry("COMPRA", strategy.long,when=c)
strategy.entry("VENDA", strategy.short,when=v)