Supertrend combiné à une stratégie de négociation quantitative RSI

Auteur:ChaoZhang est là., Date: 2024-01-31 17h19 et 28h
Les étiquettes:

img

Résumé

L'idée principale est de combiner le Supertrend et le RSI, qui sont deux indicateurs techniques puissants, afin de tirer pleinement parti de leurs avantages respectifs et d'obtenir d'excellentes performances quantitatives.

La logique de la stratégie

Le noyau de la stratégie utilise la fonction Change pour déterminer le changement de direction de l'indicateur Supertrend pour générer des signaux de trading.

En même temps, l'indicateur RSI est introduit pour aider à déterminer quand fermer les positions. Lorsque l'indicateur RSI franchit la ligne de surachat définie, les positions longues seront fermées; lorsque l'indicateur RSI franchit la ligne de survente définie, les positions courtes seront fermées. De cette façon, l'indicateur RSI aide à déterminer des points de stop-loss raisonnables pour verrouiller les bénéfices.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Supertrend est bon pour identifier les changements de tendance du marché pour des entrées longues et courtes précises.

  2. RSI excelle à localiser les points de tournant surchargés pour aider à une prise de profit raisonnable et un stop-loss.

  3. Les deux se complètent par des forces combinées pour une meilleure saisie des opportunités et des gains plus stables.

  4. La logique de la stratégie est simple et claire pour une compréhension et un suivi faciles, même pour les investisseurs moins expérimentés.

  5. Une mise en œuvre solide avec des prélèvements contrôlables et une rentabilité stable.

Analyse des risques

Malgré ces avantages, il y a des risques avec la stratégie à double entraînement:

  1. Les paramètres peuvent être ajustés ou des indicateurs supplémentaires introduits pour la vérification.

  2. Les transactions bidirectionnelles présentant des risques plus élevés nécessitent des règles plus strictes en matière de gestion de l'argent et de contrôle des risques.

  3. Le stop loss peut échouer avec des fluctuations anormales des prix en utilisant des sauvegardes pour contrôler les risques.

  4. Supertrend est sensible aux paramètres nécessitant des ajustements pour différents marchés.

Directions d'optimisation

Compte tenu des risques, des optimisations peuvent être apportées dans les aspects suivants:

  1. Ajout de volume, MACD pour un filtrage supplémentaire du signal et une saisie plus précise.

  2. Mettre en place un stop loss dynamique pour réagir aux événements de risque.

  3. Optimisation des paramètres de Supertrend et RSI pour mieux s'adapter aux différents marchés.

  4. Introduction de l'apprentissage automatique pour la sélection des paramètres et des indicateurs.

  5. Appliquer des produits dérivés tels que les contrats à terme et les options pour couvrir les risques.

  6. Modifier les règles de dimensionnement des positions pour limiter les pertes et les retraits.

Résumé

La stratégie à double entraînement combine efficacement Supertrend et RSI pour une capture efficace des tendances et une prise de profit. Par rapport aux stratégies à indicateur unique, elle fournit des signaux plus fiables, des retraits plus petits et des performances de trading d'algorithme stables.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
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/
// © alorse

//@version=5
strategy("Supertrend + RSI Strategy [Alose]", overlay=true )

stGroup = 'Supertrend'
atrPeriod = input(10, "ATR Length", group=stGroup)
factor = input.float(3.0, "Factor", step = 0.01, group=stGroup)

[_, direction] = ta.supertrend(factor, atrPeriod)

// RSI
rsiGroup = 'RSI'
src = input(title='Source', defval=close, group=rsiGroup)
lenRSI = input.int(14, title='Length', minval=1, group=rsiGroup)
RSI = ta.rsi(src, lenRSI)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
RSIoverbought = input.int(72, title='Exit Long', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses up this point.')
RSIoversold = input.int(28, title='Exit Short', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses below this point.')


entryLong = ta.change(direction) < 0
exitLong = RSI > RSIoverbought or ta.change(direction) > 0

entryShort = ta.change(direction) > 0
exitShort = RSI < RSIoversold or ta.change(direction) < 0

if showLong
    strategy.entry("Long", strategy.long, when=entryLong)
    strategy.close("Long", when=exitLong)

if showShort
    strategy.entry("Short", strategy.short, when=entryShort)
    strategy.close("Short", when=exitShort)


Plus de