Suivi de la stratégie de stop loss basée sur la moyenne mobile double dynamique


Date de création: 2024-02-26 11:13:17 Dernière modification: 2024-02-26 11:13:17
Copier: 0 Nombre de clics: 594
1
Suivre
1617
Abonnés

Suivi de la stratégie de stop loss basée sur la moyenne mobile double dynamique

Aperçu

Cette stratégie est une stratégie de suivi des arrêts de perte dynamique basée sur les moyennes doubles EMA. Elle utilise les lignes 9 et 20 pour juger de la direction de la tendance du marché, en combinaison avec une fausse rupture filtrée par l’indicateur RSI.

Principe de stratégie

La stratégie utilise l’EMA à 9 jours comme moyenne courte, et l’EMA à 20 jours comme moyenne moyenne pour déterminer la tendance des prix. Faire plus lorsque les prix traversent la moyenne courte et que le prix de clôture est supérieur au prix le plus élevé de la veille et que le RSI est supérieur à 30; Faire plus lorsque les prix traversent la moyenne courte et que le prix de clôture est inférieur au prix le plus bas de la veille et que le RSI est inférieur à 70.

Le stop loss est défini comme la valeur de l’ATR moins 1,5 fois le prix de clôture, le stop loss est défini comme la valeur de l’ATR plus le coefficient de stop multiplié par le coefficient de stop. Le stop loss est également défini comme un stop de suivi de la tendance avec 2 fois l’ATR.

Avantages stratégiques

  1. Utilisez une double EMA pour évaluer les principales tendances du marché et éviter d’être sous le coup du bruit
  2. Le filtrage des fausses ruptures par le RSI améliore la précision des entrées
  3. Stop-loss dynamique, qui peut être ajusté en fonction de la volatilité du marché
  4. Suivre la tendance, arrêter les pertes et maximiser les bénéfices

Analyse des risques

  1. L’EMA est en retard et risque de rater des opportunités à court terme
  2. Une mauvaise configuration des paramètres RSI peut entraîner des opportunités d’entrée manquées
  3. Le ratio de freinage de stop-loss est mal réglé et peut être trop relâché ou trop strict
  4. Le blocage peut être atteint en cas de forte volatilité

Direction d’optimisation

  1. tester des combinaisons d’EMA avec différents paramètres pour trouver le paramètre optimal
  2. Optimiser les paramètres du RSI et équilibrer la relation entre la précision d’entrée et la saisie des opportunités
  3. Tester différents ratios de stop-loss pour trouver la configuration la plus optimale
  4. Ajout d’autres conditions de filtrage pour réduire la probabilité de rupture du stop loss

Résumer

La stratégie est une stratégie de détention de position de ligne moyenne et longue plus stable dans l’ensemble. Elle combine les principales tendances du marché jugées par les deux EMAs pour éviter que les décisions ne soient influencées par le bruit du marché à court terme. L’ajout de l’indicateur RSI filtre également les fausses ruptures dans une certaine mesure. De plus, le mécanisme d’arrêt de perte dynamique permet à la stratégie d’ajuster son propre niveau d’arrêt de perte en fonction de la volatilité du marché.

Code source de la stratégie
/*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)