Stratégie de négociation combinée SMA et RSI

Auteur:ChaoZhang est là., Date: 2023-10-08 11h40 et 49 min
Les étiquettes:

Résumé

Cette stratégie est basée sur les indicateurs Simple Moving Average (SMA) et Relative Strength Index (RSI). Elle devient courte lorsque le RSI dépasse un niveau d'entrée défini et que le prix de clôture est inférieur au SMA, avec un stop-loss de suivi ou un stop-loss déclenché par le RSI.

La logique de la stratégie

  1. Utilisez la SMA (200 périodes) pour déterminer la direction générale de la tendance.

  2. Utilisez le RSI (14 périodes) pour identifier les conditions de surachat/survente.

  3. Après avoir ouvert une position à découvert, définissez un stop-loss à l'arrière au prix de clôture le plus bas.

  4. Il existe trois types d'arrêt de perte: arrêt de prix, arrêt RSI et arrêt de profit.

Points forts

  1. La combinaison d'indicateurs de suivi de tendance et de surachat/survente améliore la précision du calendrier des entrées.

  2. Le suivi du stop loss peut protéger les bénéfices en fonction des variations de prix en temps réel, en évitant un stop loss rigide.

  3. Le déclencheur bidirectionnel du RSI aide à verrouiller les bénéfices et à prévenir les pertes excessives.

  4. L'utilisation d'indicateurs simples avec des paramètres fixes facilite la mise en œuvre pour les transactions à moyen terme.

Les risques

  1. Les paramètres SMA et RSI peuvent ne pas convenir à tous les produits et à tous les délais, ce qui nécessite une optimisation.

  2. Les frais de négociation tels que le glissement et les commissions sont ignorés, ce qui a une incidence sur le PnL réel.

  3. D'autres facteurs tels que le volume et la structure du marché ne sont pas pris en compte, ce qui conduit à des signaux peu fiables.

  4. Une trop grande confiance dans les indicateurs et l'ignorance de l'action des prix peuvent manquer le moment de l'inversion.

  5. La méthode de stop loss est relativement rigide, incapable de s'adapter à d'énormes changements de marché.

Amélioration

  1. Tester et optimiser les paramètres de la période SMA et du RSI pour trouver la meilleure combinaison.

  2. Considérez l'ajout d'un indicateur de volume pour éviter une fausse rupture avec un faible volume.

  3. Combinaisons de tests avec d'autres indicateurs tels que le MACD, les bandes de Bollinger, etc.

  4. Ajoutez des algorithmes d'apprentissage automatique, améliorant la précision du signal par la formation avec des données historiques.

  5. Optimiser le stop loss pour être plus flexible et s'adapter aux changements du marché.

  6. Ajouter la gestion des risques pour contrôler le montant des pertes d'une seule transaction.

Conclusion

Cette stratégie intègre les forces des indicateurs SMA et RSI, filtrant certaines opportunités de trading bruyantes. Sa logique simple est facile à mettre en œuvre, mais nécessite toujours une optimisation des paramètres et des règles, ainsi qu'un contrôle approprié des risques pour fonctionner de manière stable à long terme.


/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 2d
basePeriod: 1d
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/
// © abdllhatn

//@version=5
// strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100)

// Inputs
sma_length = input(200, title="SMA Length")
rsi_length = input(14, title="RSI Length")
rsi_entry = input(51, title="RSI Entry Level")
rsi_stop = input(54, title="RSI Stop Level")
rsi_take_profit = input(32, title="RSI Take Profit Level")

// Indicators
sma_value = ta.sma(close, sma_length)
rsi_value = ta.rsi(close, rsi_length)

var float trailingStop = na
var float lastLow = na

// Conditions
shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    trailingStop := na
    lastLow := na

if (strategy.position_size < 0)
    if (na(lastLow) or close < lastLow)
        lastLow := close
        trailingStop := close

if not na(trailingStop) and close > trailingStop
    strategy.close("Sell")

if (rsi_value >= rsi_stop)
    strategy.close("Sell")

if (rsi_value <= rsi_take_profit)
    strategy.close("Sell")

// Plot
plot(sma_value, color=color.red, linewidth=2)




Plus de