La stratégie de négociation à court terme du double filtre RSI SMA

Auteur:ChaoZhang est là., Date: 2023-10-08 12:14:36 Je suis désolé
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 le niveau d'entrée et que le prix de clôture est inférieur au SMA; elle ferme les positions lorsque des signaux de stop loss ou de take profit apparaissent. Le double filtre aide à éviter les transactions inefficaces.

Principaux

La stratégie évalue le marché principalement sur la base de deux indicateurs:

  1. Le taux de conversion est calculé sur la base de la moyenne mobile simple des prix de clôture au cours des 200 derniers jours, représentant les tendances à moyen et long terme.

  2. RSI: calculé sur la base de la force relative des prix de clôture au cours des 14 derniers jours, représentant des niveaux de surachat/survente à court terme.

Lorsque le RSI franchit le seuil de 51 et entre dans la zone de surachat et est au-dessus de la ligne SMA, il indique que les tendances à court et moyen terme divergent, de sorte qu'une position courte est ouverte.

Après cela, les lignes de stop loss et de take profit sont définies. La position est fermée lorsque le RSI tombe en dessous de 32 pour le take profit, ou lorsque le RSI dépasse 54 ou que le stop loss est atteint pour le stop loss.

Points forts

  1. Le double filtre d'indicateurs augmente la précision des signaux d'entrée.

  2. L'arrêt de trailing bloque les bénéfices en fonction de l'action des prix, évitant de rendre les bénéfices.

  3. La logique est simple et directe, facile à comprendre et à modifier.

Les risques

  1. Ne tient pas compte de facteurs tels que le volume des transactions ou la volatilité.

  2. Les paramètres RSI sont fixes et peuvent ne pas convenir à tous les produits et à tous les délais.

  3. Ne prend pas en compte les coûts de négociation tels que le glissement et les commissions.

  4. La stratégie est très simple et la possibilité d'expansion est limitée.

Les domaines d'amélioration

  1. Tester et optimiser les paramètres RSI et SMA pour trouver la meilleure combinaison.

  2. Ajoutez plus de types de méthodes de prise de stop-loss/profit, comme les stops de trailing, les stops basés sur le pourcentage.

  3. Ajoutez des indicateurs de filtrage de tendance comme le MACD pour éviter de négocier contre la tendance.

  4. Considérez les indicateurs de volume pour filtrer les fausses éruptions avec un faible volume.

Résumé

La stratégie a une logique claire et une certaine valeur pratique. Mais ses paramètres sont fixes et ne s'adaptent pas aux changements du marché. Il y a aussi quelques détails qui peuvent être améliorés. Dans l'ensemble, elle peut servir d'exemple pour les débutants pour apprendre les stratégies de filtrage à double indicateur, mais a besoin de tests et d'améliorations supplémentaires pour le trading réel.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 3h
basePeriod: 15m
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