動的二重移動平均に基づくストップロス戦略の追跡


作成日: 2024-02-26 11:13:17 最終変更日: 2024-02-26 11:13:17
コピー: 0 クリック数: 594
1
フォロー
1617
フォロワー

動的二重移動平均に基づくストップロス戦略の追跡

概要

この戦略は,二重EMA平均線に基づくダイナミックストロップトラッキング戦略である. 9日線,20日線を市場トレンドの方向を判断するために使用し,RSI指数フィルター偽断裂と組み合わせている. ATR指数を使用してダイナミックストロップとストップを計算する. この戦略は,中長期線のポジションに適用される.

戦略原則

この戦略は,短期平均線として9日EMAと,中期平均線として20日EMAを使用して,価格トレンドを判断します. 短期平均線を抜けて,前日の最高値より高くなって,RSIが30を超えるときに,値上げを行います. 短期平均線を抜いて,前日の最低値より低くなって,RSIが70を超えるときに,値下げを行います.

ストップ・ロスは,クローズアップ価格の1.5倍のATRを減算し,ストップ・ロスは,クローズアップ価格にATRを掛けてストップ・係数を設定する.同時に,ATRの2倍のトレンド・トラッキング・ストップを使用する.

戦略的優位性

  1. 2つのEMAを使って市場の主要トレンドを判断し,騒音に負荷を負わないようにする.
  2. RSI指標のフィルタリングにより,偽突破により,入場率の精度が向上する
  3. ダイナミックストップ・ストップ,市場の変動に応じてストップ・ストップの位置を調整できる
  4. トレンド追跡で利益を最大化する

リスク分析

  1. EMA平均線は遅滞しており,短期的な機会を逃している可能性があります.
  2. RSIパラメータの不適切な設定は,入場チャンスを逃す可能性があります.
  3. 止損停止比率の設定が不適切で,過度に緩やかまたは厳格である可能性があります.
  4. ストップダストは,急激な変動で破損する可能性があります.

最適化の方向

  1. 異なるパラメータのEMA組み合わせをテストし,最適なパラメータを見つける
  2. RSIパラメータを最適化し,入場精度とチャンス把握の関係性をバランスとする
  3. 異なるストップ・ストップ比率をテストし,最適の配置を見つけます.
  4. フィルタリング指数条件を増やして,ストップダメージの破損率を減らす

要約する

この戦略は,全体として,より安定した中長線持仓戦略である.これは,二重EMAが市場の主要動向を判断し,短期市場の騒音の影響による意思決定を避けるように結合している.RSI指標の加入も,偽の突破を一定程度にフィルターしている.さらに,ダイナミックな止損ストップのメカニズムも,この戦略は,市場の波動程度に応じて自身の止損ストップのレベルを調整できるようにしている.しかし,この戦略には,均等線の遅滞,および損失ストップの突破の可能性などの一定のリスクもあります.これは,実際のアプリケーションで,異なるパラメータを調整し,最適化して最適な配置を見つける必要があります.

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

//@version=4
strategy("CJTrade", overlay=true)

short = ema(close, 9)
medium = ema(close, 20)
long = ema(close, 50)
very_long = ema(close, 200)

plot(short, color=color.gray, linewidth=1)
plot(medium, color=color.red, linewidth=1)
plot(long, color=color.black, linewidth=1)
plot(very_long, color=color.blue, linewidth=1)

rsiValue = rsi(close, 14)

near20EMA = close > medium - atr(14)

longCond = crossover(close[1], short) and close >= high[1] and rsiValue < 70 and near20EMA
shortCond = crossunder(close[1], short) and close <= low[1] and rsiValue > 30 and near20EMA

strategy.entry("Long", strategy.long, when=longCond)
strategy.entry("Short", strategy.short, when=shortCond)

atrValue = atr(14)
stopLossLevel = close - atrValue * 1.5

// Dynamic take profit level based on ATR
takeProfitMultiplier = input(2, title="Take Profit Multiplier", minval=0.1, maxval=10, step=0.1)
takeProfitLevel = close + atrValue * takeProfitMultiplier

// Trailing stop loss for long positions
longTrailingStop = close - atrValue * 2
strategy.exit("LongTrailingStop", from_entry="Long", loss=longTrailingStop)

// Trailing stop loss for short positions
shortTrailingStop = close + atrValue * 2
strategy.exit("ShortTrailingStop", from_entry="Short", loss=shortTrailingStop)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)