Stratégie de stop loss mobile et de take profit avec moyenne mobile RSI


Date de création: 2023-09-13 14:26:43 Dernière modification: 2023-09-13 14:26:43
Copier: 0 Nombre de clics: 671
1
Suivre
1617
Abonnés

Cette stratégie intègre l’indicateur RSI et la moyenne mobile pour déterminer les tendances et générer des signaux de négociation, et utilise un stop-loss mobile pour bloquer les bénéfices et contrôler les risques.

Le principe de la stratégie:

  1. Calculer le RSI pour détecter les surachats et les surventeurs. Le RSI supérieur à 50 est un signal polyvalent.

  2. Calculer une moyenne mobile rapide et lente, la forme d’une croix dorée est un signal à plusieurs têtes.

  3. La hausse continue du RSI peut également servir de signal de trading à suivre.

  4. Après l’entrée, définissez une ligne mobile de stop-loss et une ligne de stop-loss.

  5. Le stop loss est fixé au-dessous du prix et le stop loss est fixé au-dessus.

  6. Le prix atteint le seuil de stop loss et est à zéro.

Les avantages de cette stratégie:

  1. Le RSI est un indicateur de sur-achat et de sur-vente, qui évite les hauts et les bas.

  2. Les moyennes mobiles permettent d’identifier les tendances. La combinaison améliore l’exactitude des jugements.

  3. Le mode stop-loss mobile permet d’ajuster la position de stop-loss en fonction des variations des prix en temps réel.

Le risque de cette stratégie:

  1. L’indicateur RSI et la ligne moyenne sont sujets à des signaux erronés en cas de choc.

  2. Le stop-loss mobile doit être réglé avec précaution, trop grand ou trop petit peut poser problème.

  3. Il n’y a pas de limite à la taille des pertes individuelles et il y a un risque de pertes importantes.

En résumé, la stratégie rassemble les avantages du RSI et de l’indicateur de la moyenne et gère les risques en utilisant un arrêt-stop mobile. L’amélioration de l’optimisation des paramètres et du contrôle des risques peut être plus efficace.

Code source de la stratégie
/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI and MA Strategy with Trailing Stop Loss and Take Profit",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

//==================================Buy Conditions============================================

//RSI
length = input(14)
rsi = ta.rsi(close, length)
buyCondition1 = rsi > 50

//MA
SMA9 = ta.sma(close, 9)
SMA50 = ta.sma(close, 50)
SMA100 = ta.sma(close, 100)
plot(SMA9, color = color.green)
plot(SMA50, color = color.orange)
plot(SMA100, color = color.blue)
buyCondition2 = SMA9 > SMA50//ta.crossover(SMA9, SMA100)

//RSI Increase
increase = 5
buyCondition3 = (rsi > rsi[1] + increase)


if (buyCondition1 and buyCondition2 and buyCondition3 and timePeriod) //and buyCondition
    strategy.entry("Long", strategy.long)

//==================================Sell Conditions============================================

//Trailing Stop Loss and Take Profit
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=2) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999


strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)