この戦略は,高速移動平均と遅い移動平均の交差に基づく簡単な取引戦略である. それは,移動平均の金叉死叉を利用して,買入と売却のシグナルを発信する. 急速移動平均の上にゆっくり移動平均を横切るときは,多行し,高速移動平均の下にゆっくり移動平均を横切るときは,空行する. この戦略は,異なる周期の移動平均の間の交差を利用して,価格の傾向の転換点を捉え,株式取引を実現することを目的としている.
この戦略は,主に,取引信号として,高速指数関数移動平均 ((EMA) と遅いシンプル移動平均 ((SMA) の交差に基づいています. まず,高速EMAと遅いSMAを計算し,高速EMA周期は13で,遅いSMA周期は30に設定されます.
具体的には,戦略は,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の周期数をカスタマイズすることを許可し,異なる市場に応じてパラメータを調整して,戦略の適応性を向上させることができます.
信頼性の高い取引信号。移動平均は市場のノイズを効果的にフィルターし,その交差は比較的信頼性の高い取引信号を生成する。速速の平均線交差は大きなトレンドの転換を捕捉する。
異なる市場環境に適用する.この戦略は,トレンド市場と整合市場に使用され,パラメータ調整により,異なる状況に適応することができる.
他の指標の組み合わせで簡単に使用できます.移動平均クロス戦略は,RSIなどの他の技術指標と柔軟に組み合わせて,より強力な戦略を形成できます.
この戦略にはいくつかのリスクがあります.
市場傾向が不明なときに,移動平均は複数回交差し,頻繁に買い/売りシグナルを発生させ,取引コストと滑り点の損失を増加させる.
変動する市場で閉じ込めやすい. 市場が整合的な変動状態にあるとき,移動平均は,不確実性の交差信号が多く現れ,偽の取引信号を引き起こす可能性が高い.
パラメータ選択の難しさ 移動平均周期パラメータの選択は,戦略の効果に大きく影響し,最適なパラメータをどのように選択するか,大量に反復テストを行う必要があります.
信号が遅延する.移動平均はそれ自体が遅延性があるため,その交差信号は遅くなる傾向があり,最適な入場時間を逃す可能性がある.
ストップダスト戦略は不完全である.この戦略にはストップダストロジックが欠け,大きな損失を生む可能性がある.
この移動平均の交差策は,以下のいくつかの点で最適化できます.
RSIなどの他の技術指標のフィルタリング信号を加えることで,偽信号を減らすことができます. RSIが高くなるときは多すぎず,RSIが低くなるときは空いてはいけません.
複合移動平均を追加し,3つ以上の異なる周期の移動平均を使用することができる.例えば,50日線を足し,多頭市場では短期的には中期,中期的には長期的に穿戴する.
パラロイドラインSARなどのストップ・ストラトジーを加え,タイムリーにストップ・ストラトジーを加え,リスクをコントロールできる.また,市場の変動率に応じて自主的に適応する移動ストップ・ストラトジーを設定することもできる.
パラメータを最適化し,ウォークフォワード分析や機械学習などの方法を使用して,異なる市場環境に適したパラメータを最適化します.
時刻図操作,K線実体方向などの形状判断を加えることで,信号品質を向上させ,不要な逆開仓を減らすことができる.
取引量などの量能指標を組み合わせることで,偽の突破を防ぐことができます.量能の確認により,信号をより信頼できます.
移動平均線交差戦略は,シンプルで実用的な量化取引戦略である.それは,速い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)