RSI moyenne mobile Stratégie d'arrêt de suivi

Auteur:ChaoZhang est là., Date: 2023-09-13 14h26h43
Les étiquettes:

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:

  1. Calculer le RSI pour juger des niveaux de surachat/survente.

  2. Calcule les moyennes mobiles rapides et lentes, la croix dorée indique une tendance haussière.

  3. Une hausse constante de l'indice RSI indique également une entrée longue.

  4. Après l'entrée, définissez un stop-loss et prenez des lignes de profit.

  5. Arrêtez la piste de perte en dessous du prix, prenez la piste de profit au-dessus.

  6. Sortez lorsque le prix atteint stop ou profit.

Les avantages:

  1. RSI évite de courir après les sommets et les bas.

  2. Les moyennes mobiles permettent d'identifier la direction de la tendance.

  3. Les stops/profits de trailing s'ajustent dynamiquement au prix.

Les risques:

  1. L'indice de volatilité et l'indice de volatilité sont sujettes à de faux signaux sur les marchés variés.

  2. La largeur de l'arrêt de traction nécessite un étalonnage prudent, trop large ou trop étroite est problématique.

  3. 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)

Plus de