RSI Stratégie de négociation de renversement de la moyenne

Auteur:ChaoZhang est là., Date: 2023-11-01 16h15 et 30 min
Les étiquettes:

img

Résumé

Cette stratégie utilise l'indicateur RSI pour identifier les tendances et les conditions de surachat/survente.

La logique de la stratégie

  1. Utilisez l'indicateur EMA pour déterminer la direction actuelle de la tendance.

  2. Utilisez l'indicateur RSI pour identifier les conditions de surachat/survente.

  3. Lorsque la tendance haussière et le RSI sont inférieurs à 40, un signal d'achat est déclenché.

  4. Lorsque les signaux d'achat/vente sont déclenchés, les prix de prise de profit et de stop loss sont fixés en fonction d'un certain pourcentage du prix d'entrée.

  5. Lorsque la taille de la position est supérieure à 0, un ordre de prise de profit est placé.

Analyse des avantages

  1. La stratégie combine raisonnablement EMA et RSI pour identifier les tendances et les conditions de surachat/survente, en évitant de négocier contre tendance.

  2. L'approche de la réversion moyenne capte les rotations à court terme pour les bénéfices.

  3. Les points de prise de profit et de stop loss aident à verrouiller les profits et à contrôler les risques.

  4. Une logique simple et claire, facile à comprendre et à mettre en œuvre, adaptée aux débutants.

  5. Les paramètres tels que la période EMA et le RSI peuvent être optimisés pour différents produits et environnements de marché.

Analyse des risques

  1. Risque d'échec de l'inversion: l'inversion à court terme peut échouer, entraînant des pertes.

  2. Risque de tendance peu claire: l'EMA peut ne pas identifier une tendance claire sur les différents marchés, générant des signaux erronés.

  3. Le risque déclenché par le stop loss.

  4. Une optimisation excessive des données historiques peut ne pas s'appliquer aux transactions en direct.

  5. Risque de fréquence de négociation élevée: une négociation trop fréquente entraîne des coûts de transaction importants.

Amélioration

  1. Optimiser les paramètres EMA et RSI pour trouver la meilleure combinaison grâce à des tests antérieurs.

  2. Ajoutez des filtres pour éviter les mauvais signaux dans les marchés variés.

  3. Optimiser le rapport profit/stop-loss pour verrouiller les bénéfices.

  4. Ajoutez des règles de dimensionnement des positions telles que la fraction fixe pour contrôler les pertes d'une seule transaction.

  5. Combiner d'autres indicateurs comme le MACD, le KD pour améliorer la précision du signal ou utiliser des modèles multivariés.

  6. Test de retour sur les données en direct et optimisation continue pour les dernières conditions du marché.

Conclusion

Cette stratégie met en œuvre une approche de réversion moyenne à court terme basée sur l'EMA et le RSI, avec une logique claire d'identification de tendance et de détection de surachat / survente. Elle définit le profit et le stop loss pour contrôler les risques tout en profitant des rotations à court terme. La simplicité et la clarté sont ses avantages. Des optimisations supplémentaires peuvent donner de bons résultats de backtest.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-31 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Sarahann999
//@version=5
strategy("RSI Strategy", shorttitle="RSI", overlay= false)

//Inputs
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')
emaSettings = input(100, 'EMA Length')
ema = ta.ema(close,emaSettings)
rsi = ta.rsi(close,14)

//Conditions
uptrend = close > ema
downtrend = close < ema
OB = rsi > 60
OS = rsi < 40
buySignal = uptrend and OS and strategy.position_size == 0
sellSignal = downtrend and OB and strategy.position_size == 0

//Calculate Take Profit Percentage
longProfitPerc = input.float(title="Long Take Profit", group='Take Profit Percentage',
     minval=0.0, step=0.1, defval=1) / 100
shortProfitPerc = input.float(title="Short Take Profit",
     minval=0.0, step=0.1, defval=1) / 100

// Figure out take profit price 1
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Make inputs that set the stop %  1
longStopPerc = input.float(title="Long Stop Loss", group='Stop Percentage',
     minval=0.0, step=0.1, defval=1.5) / 100
shortStopPerc = input.float(title="Short Stop Loss",
     minval=0.0, step=0.1, defval=1.5) / 100

// Figure Out Stop Price
longStopPrice  = strategy.position_avg_price * (1 - longStopPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortStopPerc)

// Submit entry orders
if buySignal and long_entry
    strategy.entry(id="Long", direction=strategy.long, alert_message="Enter Long")
    
if sellSignal and short_entry
    strategy.entry(id="Short", direction=strategy.short, alert_message="Enter Short")
    
//Submit exit orders based on take profit price
if (strategy.position_size > 0)
    strategy.exit(id="Long TP/SL", limit=longExitPrice, stop=longStopPrice, alert_message="Long Exit 1 at {{close}}")
if (strategy.position_size < 0)
    strategy.exit(id="Short TP/SL", limit=shortExitPrice, stop=shortStopPrice, alert_message="Short Exit 1 at {{close}}")
    
//note: for custom alert messages to read, "{{strategy.order.alert_message}}" must be placed into the alert dialogue box when the alert is set.

plot(rsi, color= color.gray)
hline(40, "RSI Lower Band")
hline(60, "RSI Upper Band")

Plus de