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

作者: リン・ハーンチャオチャン,日付: 2024-02-06 11:37:23
タグ:

img

概要

この戦略は,異なるサイクルのEMA線を計算し,クロスオーバー状況を決定し,RSI指標を使用して市場傾向を判断し,トレンド追跡取引を実施する.コアアイディアは:短期EMA線が下から長期EMA線を横切ったときに購入信号を生成し,短期EMAが長期EMA線を下に横切ったときに販売信号を生成する.そのようなEMAクロスオーバー信号を使用して,戦略は市場傾向を追跡する.

戦略原則

この戦略は主にEMAの高速および遅い性質を利用し,9日,21日,51日,100日および200日ラインを含む異なるサイクルの5つのEMAラインを計算する.短サイクルEMAラインは価格変化により早く反応できるが,長サイクルEMAラインはノイズに比較的敏感ではなく,市場の傾向を反映することができる.

短サイクルEMA線がより長いサイクルEMA線を下から横切ると,価格は上昇し始め,購入信号を誘発する.短サイクルEMA線がより長いサイクルEMA線を下から横切ると,価格は低下し始め,販売信号を誘発する.したがって,EMAラインのクロスオーバー状況を判断することによって,市場の上昇傾向または下落傾向を決定することができます.

また,この戦略は補助判断のためのRSIインジケーターも導入している.RSIが65を超える場合にのみ購入信号が起動し,RSIが40未満の場合にのみ販売信号が起動する.これはいくつかの間違った信号をフィルタリングし,巨大な価格変動に誤導されないようにするのに役立ちます.

利点

この戦略の最大の利点は,市場のトレンドを効果的に追跡できるということです.EMAの高速および遅い特性を活用して,複数のグループEMAラインを設定し,それらのクロスオーバー状況を判断することで,市場の中長期トレンドを把握できます.この種のトレンド追跡戦略は比較的高い得率を持ち,長期保有に適しています.

さらに,この戦略は,支援判断のためのRSI指標も導入しており,これはノイズを効果的にフィルタリングし,短期的な市場変動に誤導されないようにし,取引シグナルの信頼性を向上させます.RSIパラメータは14に設定されており,比較的重大な過剰購入/過剰販売状況を把握できます.

結論として,この戦略は,移動平均トレンド追跡とRSI過剰購入/過剰販売判断の強みを組み合わせています.それは市場のトレンドを捕捉するだけでなく,間違った信号を効果的にフィルタリングすることができ,比較的高い信頼性を持つトレンド追跡戦略になります.

リスク

この戦略の最大のリスクは,いくつかの遅れがあるということです. EMA自体は,価格変化,特に長周期EMAに対応するときにいくつかの遅れの属性を持っています.これは,購入と販売の信号の生成が遅くなることを意味します.急激な価格逆転の場合,巨大な浮動損失が発生する可能性があります.

また,市場が範囲内で変動している場合,EMA線間のクロスオーバー信号は頻繁に発生します.RSIパラメータは14で,あまりにも多くの信号をフィルタリングし,取引機会を逃す可能性があります.

上記のリスクを軽減するために,我々はより長いサイクルEMAの期間を適切に短縮し,信号をより敏感にするためにRSIの過剰購入/過剰販売の値を緩めることができます. もちろん,これはより高い誤った信号リスクにさらされます.最適なバランスポイントを見つけるために,実際の市場状況に基づいてパラメータの調整を行う必要があります.

オプティマイゼーションの方向性

この戦略は,次の側面から最適化できます.

  1. EMA期間のパラメータを最適化する. EMA期間の組み合わせを試し,最高の信号の感度と信頼性を見つける.

  2. RSI パラメータを最適化します.過剰購入/過剰販売範囲を適切に拡大してより頻繁にシグナルを誘発するか,誤った信号を減らすためにそれを絞ります.

  3. ストップ・ロスのメカニズムを追加し,ストップ・ロスの移動や待機中のオーダーなどのメカニズムを追加し,利益を固定し,損失リスクを軽減します.

  4. KDJやMACDなどの指標を組み込むことで 信号の信頼性を向上させる

  5. 市場変動に基づいて ポジション管理を動的に最適化する

結論

この戦略は,市場動向を効果的に把握し追跡するために,クロスオーバー状況を決定するために,複数のグループEMAラインを計算し,RSI指標と組み合わせて計算する.トレンド追跡とオーバーバイト/オーバーセール判断のアイデアを統合することにより,効果的な偽信号フィルタリングで中長期間のトレンドを把握することができます.パラメータ最適化と戦略統合後,移動平均戦略と指標融合戦略の典型的な例を代表する安定かつ効率的な定量取引システムを形成することができます.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 2h
basePeriod: 15m
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/
// © Ravikant_sharma

//@version=5

strategy('new', overlay=true)

start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2023, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)

rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))   

//plot(ema4, '100', color.new(color.gray, 0)) 


//LongEntry = (  ta.crossover(ema0,ema3)  or  ta.crossover(ema0,ema2) or  ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1) 
    if rsi2>65
        LongEntry:=true
if ta.crossover(ema1,ema2)
    if rsi2>65
        LongEntry:=true
        
LongExit =  ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)



if true
    if(LongEntry and rsi2>60)
        strategy.entry('Long', strategy.long, 1)
    if(LongExit)
        strategy.close('Long') 



もっと