Stratégie de stop loss et de take profit à moyenne mobile lissée avec filtrage des tendances et sortie anormale

SMA RSI TR MA TP SL
Date de création: 2024-06-03 16:54:04 Dernière modification: 2024-06-03 16:54:04
Copier: 7 Nombre de clics: 616
1
Suivre
1617
Abonnés

Stratégie de stop loss et de take profit à moyenne mobile lissée avec filtrage des tendances et sortie anormale

Aperçu

La stratégie utilise des indicateurs tels que la moyenne mobile lisse (SMA), l’indice de force relative (RSI), la portée réelle (TR) et la moyenne mobile de la transaction (Volume MA) pour effectuer des transactions lorsque des conditions spécifiques sont remplies. L’idée principale de la stratégie est de faire des achats lorsque le prix est inférieur à la SMA200 et en baisse, avec un faible volume de transactions et une faible volatilité.

Principe de stratégie

  1. Calculer des indicateurs tels que le SMA, le RSI, le volume MA et le MA TR
  2. Déterminer si la tendance est à la hausse ou à la baisse
  3. Déterminer si le volume et la volatilité actuels sont bas
  4. Acheter lorsque le prix est inférieur au SMA200 et que les conditions de faible volume et de faible volatilité sont remplies
  5. Le stop-loss est fixé à 95% du prix d’achat et le stop-loss à 150% du prix d’achat.
  6. Exit de la transaction lorsque le RSI est supérieur à 70 ou atteint le seuil de stop-loss par défaut
  7. Le forçage d’une position de clôture lorsque la tendance change et que le prix dépasse la SMA

Analyse des avantages

  1. Cette stratégie combine plusieurs indicateurs techniques pour une analyse plus complète de la situation du marché.
  2. Éviter de négocier dans des conditions de marché défavorables en filtrant les tendances et les conditions de volume et de volatilité
  3. Régler les risques avec des points de stop clairs
  4. Les mécanismes de sortie exceptionnelle permettent de liquider des positions en temps opportun dans des circonstances particulières pour éviter de nouvelles pertes.

Analyse des risques

  1. La stratégie dépend de la configuration de plusieurs paramètres, dont le choix peut affecter les performances de la stratégie
  2. Dans certains cas, le prix peut se retourner rapidement après le déclenchement des conditions d’achat, entraînant des pertes.
  3. La stratégie ne prend pas en compte les facteurs fondamentaux qui pourraient être affectés par un événement majeur.

Direction d’optimisation

  1. L’introduction de plus d’indicateurs techniques, tels que MACD, Brinband, etc., peut être envisagée pour améliorer la précision des entrées et des sorties
  2. Les paramètres permettant d’optimiser l’arrêt de perte, tels que l’utilisation d’un arrêt mobile ou d’un arrêt dynamique
  3. Les paramètres de la stratégie peuvent être adaptés dynamiquement en fonction des différentes conditions du marché
  4. Vous pouvez ajouter des modules de gestion des risques, tels que la gestion des positions, la gestion des fonds, etc.

Résumer

La stratégie utilise plusieurs indicateurs techniques, combinant un filtrage de tendance et des conditions de volume et de volatilité, pour effectuer des transactions dans des situations spécifiques. Dans le même temps, la mise en place d’un mécanisme de stop loss et d’exit exceptionnel peut contrôler efficacement le risque. Cependant, la stratégie présente également certaines limites, car des facteurs tels que le choix des paramètres, les anomalies du marché et autres peuvent affecter la performance de la stratégie.

Code source de la stratégie
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategia Stop Loss & Take Profit z Filtrem Trendu i Wyjątkiem", shorttitle="Smooth MA SL & TP with Exception", overlay=true)

// Parametry
tp_multiplier = input.float(1.5, title="Mnożnik Take Profit")
sl_percent = input.float(5, title="Procent Stop Loss")
wait_bars = input.int(3, title="Liczba Oczekiwanych Świec")
sma_period = input.int(200, title="Okres SMA")
rsi_period = input.int(14, title="Okres RSI")
vol_ma_period = input.int(20, title="Okres Średniej Wolumenu")
tr_ma_period = input.int(20, title="Okres Średniej Rzeczywistego Zakresu")

// Obliczenie Gładkiej Średniej Kroczącej
sma = ta.sma(close, sma_period)

// Obliczenie RSI
rsi = ta.rsi(close, rsi_period)

// Filtr Trendu
uptrend = close > sma
downtrend = close < sma

// Warunek konsolidacji: Niski wolumen i niska zmienność
niski_wolumen = volume < ta.sma(volume, vol_ma_period)
niska_zmienosc = ta.tr(true) < ta.sma(ta.tr(true), tr_ma_period)

// Warunek Wejścia (Long): Cena poniżej SMA 200 i filtr trendu w strefie czerwonej
warunek_wejscia = close < sma and niski_wolumen and niska_zmienosc and not uptrend

// Warunek Wyjścia ze strategii
warunek_wyjscia = downtrend and close > sma and ta.crossover(close, sma)

// Ustalanie Stop Loss i Take Profit
var float stop_loss = na
var float take_profit = na

var int indeks_wejscia = na

if (warunek_wejscia)
    stop_loss := close * (1 - sl_percent / 100)
    take_profit := close * (1 + tp_multiplier)
    indeks_wejscia := bar_index

// Handel
if (warunek_wejscia)
    strategy.entry("Long", strategy.long)

// Warunek Wyjścia: RSI w strefie wykupienia lub Stop Loss/Take Profit
if (strategy.opentrades != 0)
    if (rsi > 70)
        strategy.exit("Take Profit/Stop Loss", "Long", limit=take_profit)
    else if (bar_index - indeks_wejscia == wait_bars)
        strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss, limit=take_profit)

// Wyjątek: Warunek Wyjścia z Longów na podstawie zmiany trendu
if (warunek_wyjscia)
    strategy.close("Long")

// Rysowanie RSI
rsi_plot = plot(rsi, title="RSI", color=color.blue)

// Rysowanie Gładkiej Średniej Kroczącej
sma_plot = plot(sma, color=color.gray, title="Smooth MA", linewidth=2)

// Rysowanie Filtru Trendu
fill(sma_plot, rsi_plot, color=downtrend ? color.new(color.red, 90) : na)