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:
Calculer le RSI pour détecter les surachats et les surventeurs. Le RSI supérieur à 50 est un signal polyvalent.
Calculer une moyenne mobile rapide et lente, la forme d’une croix dorée est un signal à plusieurs têtes.
La hausse continue du RSI peut également servir de signal de trading à suivre.
Après l’entrée, définissez une ligne mobile de stop-loss et une ligne de stop-loss.
Le stop loss est fixé au-dessous du prix et le stop loss est fixé au-dessus.
Le prix atteint le seuil de stop loss et est à zéro.
Les avantages de cette stratégie:
Le RSI est un indicateur de sur-achat et de sur-vente, qui évite les hauts et les bas.
Les moyennes mobiles permettent d’identifier les tendances. La combinaison améliore l’exactitude des jugements.
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:
L’indicateur RSI et la ligne moyenne sont sujets à des signaux erronés en cas de choc.
Le stop-loss mobile doit être réglé avec précaution, trop grand ou trop petit peut poser problème.
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.
/*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)