EMAとATR、RSIフィルターに基づくトレンドフォロー戦略


作成日: 2024-02-29 14:44:10 最終変更日: 2024-02-29 14:44:10
コピー: 3 クリック数: 751
1
フォロー
1617
フォロワー

EMAとATR、RSIフィルターに基づくトレンドフォロー戦略

概要

この戦略はEMA平均線とRSI,ATR指標に基づいて構築された長線トレンド追跡戦略である.戦略は,ゆっくりとしたEMAを金叉死叉信号を形成するために使用し,長線EMAと組み合わせてトレンドの方向を判断し,RSIとATRを組み合わせてフィルタリングして,長線トレンドの追跡を実現する.

戦略原則

  1. EMA (20日 EMAと50日 EMA) 金叉は多めに,死叉は空っぽに
  2. 200日EMAは長線トレンドの方向を判断し,トレンドの方向のみで取引する
  3. RSIの低点は多めに,高点は空っぽに
  4. ATRは,偽の突破口を分析し,フィルターします.

優位分析

  1. 傾向を判断するために,速やかなEMA配列を使用します.
  2. 長期EMAフィルターで逆転を避ける
  3. RSIは超買い・超売り領域をフィルターし,高・低の追及を避ける
  4. ATR指数判断 整合,フィルター 振動 整合の偽突破

リスク分析

  1. 長線看板の間,上昇傾向を一定程度追跡できないリスクがある
  2. EMA指標は整理時に騒音を生じやすく,ATR指標のフィルタリングを組み合わせる必要がある
  3. RSIとATRのパラメータ設定は,異なる品種に応じてそれぞれテストを最適化する必要があります.

最適化の方向

  1. EMAの長さのパラメータは,異なる品種の組み合わせを最適化できます.
  2. RSIとATRのパラメータも最適化され,整合の識別能力が向上します.
  3. 移動止損を加え,利益の一部をロックし,リスクをコントロールすることを検討する

要約する

この戦略は,全体的にEMAを中心に長線トレンド追跡戦略であり,RSIとATR指標を導入することで,トレンド方向をよりよく認識し,ノイズをフィルターすることができます.パラメータの最適化により,この戦略は,より多くの品種に適用でき,長線看板環境で良い効果を得ることができます.

ストラテジーソースコード
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Strategy with Trend Filter", overlay=true)

// Параметры EMA
shortEmaLength = input(20, title="Short EMA")
longEmaLength = input(50, title="Long EMA")
trendEmaLength = input(200, title="Trend EMA")
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
trendEma = ta.ema(close, trendEmaLength)

// Параметры RSI
rsiLength = input(14, title="RSI Length")
rsi = ta.rsi(close, rsiLength)

// Параметры ATR
atrLength = input(14, title="ATR Length")
atr = ta.atr(atrLength)

// Логика для сигналов покупки и продажи с фильтром по тренду
buySignal = ta.crossover(shortEma, longEma) and close > trendEma
sellSignal = ta.crossunder(shortEma, longEma) and close < trendEma

// Вход в сделки
if (buySignal)
    strategy.entry("Buy", strategy.long)

if (sellSignal)
    strategy.entry("Sell", strategy.short)

// Выход из сделок на основе EMA пересечений
exitBuySignal = ta.crossunder(shortEma, longEma)
exitSellSignal = ta.crossover(shortEma, longEma)

if (exitBuySignal)
    strategy.close("Buy")

if (exitSellSignal)
    strategy.close("Sell")

// Визуализация EMA
plot(shortEma, color=color.blue, title="Short EMA")
plot(longEma, color=color.red, title="Long EMA")
plot(trendEma, color=color.green, title="Trend EMA")

// Отдельная панель для RSI и его визуализация
plot(rsi, title="RSI", color=color.purple, linewidth=2)

// Отдельная панель для ATR и его визуализация
plot(atr, title="ATR", color=color.orange, linewidth=2)