Cette stratégie utilise l'indicateur Vortex pour déterminer la direction de la tendance du marché et identifier les opportunités longues.
Calculer le VIP positif et le VIM négatif de l'indicateur Vortex.
Lorsque le VIP franchit le VIM et que la clôture est supérieure au sommet précédent, un signal d'achat est généré.
Calculer les valeurs du RSI. Lorsque le RSI dépasse 70, un signal de vente est généré.
Lorsque le VIM dépasse le seuil VIP et que la clôture est inférieure au seuil précédent, un signal de vente est également déclenché.
Réglez le stop loss à stop_loss% du capital initial, et prenez un profit à Target_profit% du capital initial.
L'indicateur de vortex juge bien les tendances haussières / baissières. L'ajout du RSI empêche les risques de surchauffe. Stop loss / take profit ajoute de la robustesse.
Vortex identifie avec précision les tendances avec des signaux clairs.
RSI évite les risques de surchauffe et de poursuite des sommets.
Les arrêts dynamiques définissent un rapport risque/rendement prédéfini.
Les arrêts réglables s'adaptent à différents environnements de marché.
Des règles simples et claires, faciles à mettre en œuvre.
Extensible avec d'autres indicateurs.
Le Vortex a un effet de retard, peut manquer des opportunités.
Un stop-loss trop faible peut entraîner des coups de fouet.
Prendre un profit trop important peut limiter les profits.
Une trop grande confiance en RSI provoque des défaillances.
Les coûts de négociation ne sont pas pris en compte.
Aucune règle de taille de position.
Testez et optimisez les paramètres pour Vortex et RSI.
Essayez de combiner Vortex avec OBV etc.
Améliorer les stratégies de stop-loss comme le stop de trail, la sortie du lustre, etc.
Ajouter un module de dimensionnement des positions pour limiter les pertes d'une seule transaction.
Considérez plus de filtres comme KD, MACD pour le timing d'entrée.
Utiliser l'apprentissage automatique pour une meilleure optimisation des paramètres.
Ajoutez des facteurs fondamentaux pour améliorer le taux de victoire.
Cette stratégie intègre le Vortex pour la tendance et le RSI pour le contrôle de la surchauffe dans un système d'actions à long terme stable. Les paramètres stop loss/take profit permettent également de gérer le risque.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by Sauciusfinance //////////////////////////////////////////////////////////// strategy(title="Vortex and RSI ts 2020",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=20000,commission_value=.25,overlay = true,default_qty_type = strategy.cash, default_qty_value = 20000) //inputs//////////////////////// n = input(title="vortex period",type=input.integer, defval = 14) m = input(title = "RSI period", type=input.integer, defval = 14) // CALCULATIONS *** /////// VMP = sum( abs( high - low[1]), n ) VMM = sum( abs( low - high[1]), n ) STR = sum( atr(1), n ) VIP = VMP / STR VIM = VMM / STR // bring the lines in the panel below, add another panel with RSI plot(VIP, title="VI +", color=#311B92) plot(VIM, title="VI -", color=#FF006E) // RSI on total price, always totalprice = (high + low+close + open)/4 myrsi = rsi(m, totalprice) strategy.initial_capital = 50000 //// TRADING SYSTEM CODE //// entryl = crossover(VIP, VIM) and close >= high[1] strategy.entry("Long", true, when=entryl, comment = "Go!") exit1 = crossover(VIM, VIP) and close <= low[1] strategy.close("Long", when=exit1, comment = "Vortex down") exit2 = crossunder(myrsi, 70) strategy.close("Long", when=exit2, comment = "RSI down") //money management stop_loss=input(7, "Stop loss %", minval = 1, step = 1) sl = -1*stop_loss/100*strategy.initial_capital close_Stop = strategy.openprofit < sl strategy.close("Long", when = close_Stop) Target_profit=input(16, "Target Profit %", minval = 1, step = 1) tp = Target_profit/100*strategy.initial_capital close_Target = strategy.openprofit > tp strategy.close("Long", when = close_Target)