これは,高速移動平均と遅い移動平均のクロスオーバーに基づいた単純な取引戦略である. 購入・販売信号を生成するために,移動平均の黄金十字と死十字を使用する. 急速移動平均がスロー移動平均を超えると,ロング;高速移動平均がスロー移動平均を下回ると,ショート. 目標は,異なる期間の移動平均の相互作用を観察することによってトレンド逆転を捕捉することです.
この戦略は,主に高速指数移動平均値 (EMA) と遅いシンプル移動平均値 (SMA) の間のクロスオーバーに依存し,取引シグナルを生成する.まずは,それぞれ13と30に設定された期間で,高速EMAと遅いSMAを計算する.その後,高速EMAが遅いSMAを超えると,長い信号が生成され,高速EMAが遅いSMAを下回ると,短い信号が誘発される.
具体的には,戦略は,maFast と maSlow を使って,高速EMA と遅い SMA を計算する.その後,エントリー&エグジットポイントを決定するために,enterLong と exitLong 変数を定義する.maFast>maSlow,つまり高速EMA が遅い SMA を越えると,長いエントリを誘発するために enterLong=true を設定する.maSlow>maFast,つまり高速EMA が遅い SMA を越えると,ポジションを閉じるために exitLong=true を設定する.最後に,戦略は条件を満たしたときに strategy.entry を介してオーダーを送信する.
このように,短期上向きモメンタムが長期トレンドを圧倒すると,高速EMAは遅いSMAを上回り,購入信号を生成する.短期下向きモメンタムが長期トレンドを圧倒すると,高速EMAは遅いSMAを下回り,販売信号を生成する.異なるタイムフレームにおけるトレンド逆転を捉えることで,低価格で購入し,高価格で販売することを目指す.
移動平均のクロスオーバー戦略には以下の利点があります.
シンプルで理解しやすい.移動平均値は一般的に使用され,効果的な指標です.クロスオーバーロジックはシンプルです.これはトレーダーにとって戦略を理解し,実行するのが簡単です.
非常にカスタマイズ可能.この戦略は,異なる市場のために調整され,適応性を向上させる高速EMAと遅いSMAのカスタマイズされた期間を可能にします.
信頼性の高い取引シグナル. 移動平均値は市場のノイズを効果的にフィルタリングする. その交差はかなり信頼性の高いシグナルを生成する. 速いMAと遅いMAsのクロスオーバーは,より広範なトレンドのターンを取ることができる.
様々な市場環境に適用可能. 戦略はトレンドとレンジ・バインド市場に対応する. パラメータは異なる条件に合わせて調整できます.
RSIのような指標と柔軟に組み合わせて より強力なシステムを作ることができます
この戦略にはいくつかのリスクもあります:
Whipsawシグナル.不確実なトレンドの間,MAsは頻繁に交差し,過剰な取引と滑り込みコストを引き起こす可能性があります.
不安定な市場は範囲に閉じ込められることがあります.範囲に制限された市場で,MAsは曖昧なクロスオーバー信号を生成し,誤った信号を引き起こす可能性があります.
パラメータ最適化における困難. MA 期間は戦略のパフォーマンスに大きく影響し,広範なテストを必要とする.
遅延信号.MAsは本質的に遅延しているため,クロスオーバー信号は遅れて理想のエントリーポイントを見逃す傾向があります.
リスク管理の欠如 ストップ・ロスの論理が欠け,大きな損失を伴う取引が発生する可能性があります.
移動平均のクロスオーバー戦略を最適化する方法:
偽信号を減らすために RSI のようなフィルターを追加します. RSI が高いときロングを避け,RSI が低いときショートを避けます.
50日間MAのようなシグナルを確認するために追加MAを組み込む.高速MAが中間MAを超越し,中間MAが上昇傾向で長いMAを超越したとき,長いMAに行く.
リスクをコントロールするためにパラボリックSARのようなストップ・ロスのテクニックを実装する.変動性に基づく適応ストップも有効である.
ウォークフォワード分析や機械学習などの方法を用いて パラメータを最適化して 変化する市場でのパフォーマンスを向上させる
低タイムフレームチャートやキャンドルスタイクパターンを使って 信号の質を向上させ,不適切な逆転を避ける.
誤ったブレイクを避けるために音量指標を組み込む.音量確認は信号をより信頼性のあるものにすることができます.
移動平均クロスオーバー戦略は,シンプルで実用的な定量的な取引戦略である.取引信号を生成するために,高速なEMAと遅いSMAクロスを使用する.この戦略は,他の指標と簡単に実装し,組み合わせることができますが,過剰な取引やウィップソーなどの欠点もあります.パラメータとリスク管理の適切な強化により,戦略はより堅牢で利益を得ることができます.全体的に,移動平均クロスオーバーアプローチは定量的なトレーダーのために学び,適用する価値があります.
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Moving Average Cross EMA SMA", overlay=true, initial_capital=10000, currency='USD',default_qty_type=strategy.percent_of_equity,default_qty_value=100) // Based on strategy by lsills @ https://www.tradingview.com/script/oI8loEZ8-Moving-Average-Cross-Strategy/ // Strategy has several logic alternatives - comment out the undesired logic sections below, only 1 logic section can be active // === GENERAL INPUTS === // short Ema maFastSource = input(defval = close, title = "Fast EMA Source") maFastLength = input(defval = 13, title = "Fast EMA Period", minval = 1) // long Sma maSlowSource = input(defval = close, title = "Slow SMA Source") maSlowLength = input(defval = 30, title = "Slow SMA Period", minval = 1) // longer Sma maSlowerSource = input(defval = close, title = "Slower SMA Source") maSlowerLength = input(defval = 30, title = "Slower SMA Period", minval = 1) // === SERIES SETUP === /// a couple of ma's.. maFast = ema(maFastSource, maFastLength) maSlow = sma(maSlowSource, maSlowLength) maSlower = vwma(maSlowerSource, maSlowerLength) rsi = rsi(maSlowerSource, maSlowerLength) // === PLOTTING === fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30) slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30) slower = plot(maSlower, title = "Slower MA", color = teal, linewidth = 2, style = line, transp = 30) // === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross enterLong = maFast> maSlow exitLong = maSlow> maFast // === LOGIC === Complex 1 - switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = variance(maFast,maSlowLength) < 0.6 and close[0] > maFast and crossover(maFast, maSlow) and 1.1* maSlow > maSlower and rsi>rsi[2] //exitLong = variance(maFast,maSlowLength) < 0.6 and close[0] < maSlow and crossover(maSlow, maFast) and maSlow/1.1 < maSlower and rsi<rsi[2] // === LOGIC === Complex 2- switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = maFast> maSlow and 1.1* maSlow > maSlower and rsi>rsi[1] and close > close[3] //and close > close[2] //exitLong = maSlow> maFast and maSlow/1.1 < maSlower and rsi<rsi[1] and close < close[3] // and close < close[2] // Entry // strategy.entry(id="Long Entry", long=true, when=enterLong) strategy.entry(id="Short Entry", long=false, when=exitLong) // === FILL ==== fill(fast, slow, color = maFast > maSlow ? green : red)