Cette stratégie combine RSI et moyennes mobiles pour le biais de tendance et ajoute des arrêts de suivi pour la gestion des risques.
La logique de la stratégie:
Calculer le RSI pour juger des niveaux de surachat/survente.
Calcule les moyennes mobiles rapides et lentes, la croix dorée indique une tendance haussière.
Une hausse constante de l'indice RSI indique également une entrée longue.
Après l'entrée, définissez un stop-loss et prenez des lignes de profit.
Arrêtez la piste de perte en dessous du prix, prenez la piste de profit au-dessus.
Sortez lorsque le prix atteint stop ou profit.
Les avantages:
RSI évite de courir après les sommets et les bas.
Les moyennes mobiles permettent d'identifier la direction de la tendance.
Les stops/profits de trailing s'ajustent dynamiquement au prix.
Les risques:
L'indice de volatilité et l'indice de volatilité sont sujettes à de faux signaux sur les marchés variés.
La largeur de l'arrêt de traction nécessite un étalonnage prudent, trop large ou trop étroite est problématique.
Ne pouvant pas limiter la taille des pertes, il risque de perdre de gros métiers.
En résumé, cette stratégie combine RSI et MAs puis utilise des trailing stops pour la gestion des risques.
/*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)