Cette stratégie utilise les principes de surachat et de survente de l'indicateur RSI et combine le RSI à plusieurs cycles pour générer des signaux, réalisant des opérations de cycle croisé. La stratégie juge les signaux de surachat et de survente en fonction des paramètres de cycle du RSI, et utilise la moyenne mobile du RSI pour filtrer pour éviter les mauvais signaux.
La stratégie génère principalement des signaux de trading à travers les jugements de surachat et de survente de l'indicateur RSI. RSI signifie Relative Strength Index, sa formule est: RSI = 100 - (100 / (1 + RS)), où RS est le rapport des gains de clôture moyens par rapport aux pertes de clôture moyennes sur une période.
La stratégie définit un paramètre élevé sobrecompra et un paramètre bas sobreventa. Lorsque le RSI est supérieur à sobrecompra, il est jugé comme suracheté. Lorsque le RSI est inférieur à sobreventa, il est jugé comme survendu. Les valeurs par défaut de sobrecompra et sobreventa dans la stratégie sont respectivement 70 et 30.
Pour générer des signaux d'achat et de vente, la stratégie utilise la ligne moyenne mobile de l'indicateur RSI pour le filtrage. Lorsque le RSI traverse sa ligne moyenne mobile, le signal d'achat Es_compra est généré. Lorsque le RSI traverse en dessous de sa ligne moyenne mobile, le signal de vente Es_venta est généré. Le paramètre moyenne mobile periodos_media est par défaut à 14 périodes.
Après avoir généré des signaux d'achat et de vente, la stratégie ouvre des positions pour des transactions longues ou courtes.
Utilisez l'indicateur RSI pour juger des conditions de surachat et de survente, en évitant de courir après les hauts et les bas de vente.
Appliquer la moyenne mobile de l'indicateur RSI pour le filtrage afin d'éviter les faux signaux.
Combiner les réglages à cycles multiples de l'indicateur RSI pour générer des signaux de trading plus stables.
Mettre en place des mécanismes d'arrêt des pertes et de prise de profit pour contrôler efficacement les risques.
La logique de la stratégie est simple et claire, facile à comprendre et à modifier.
Paramètres personnalisables, adaptables à différents produits et cycles.
L'indicateur RSI a un effet de retard, peut manquer le meilleur moment pour l'inversion des prix.
Les moyennes mobiles provoquent des retards de signaux de négociation, incapables de capturer les renversements de tendance à temps.
Les paramètres fixes de surachat et de survente ne sont pas suffisamment souples et nécessitent des ajustements pour différents cycles et produits.
Les paramètres d'arrêt des pertes et de prise de bénéfices inappropriés peuvent entraîner des pertes ou des profits manqués.
Les positions longues et courtes ne représentent qu'un seul lot, incapable d'utiliser pleinement les fonds pour la négociation sur échange.
Combiner d'autres indicateurs tels que MACD, KD pour le jugement des signaux de négociation.
Appliquer une moyenne mobile adaptative pour suivre les tendances.
Mettre en place des paramètres dynamiques de surachat et de survente, ajuster en fonction de la volatilité du marché.
Optimiser les algorithmes de stop loss et de profit, tels que le stop loss de suivi.
Ajouter un mécanisme de gestion des positions, ajuster dynamiquement les positions en fonction de la taille du capital.
Ajoutez un filtrage des tendances pour éviter les transactions fréquentes sur les marchés à fourchette.
Test de retour pour optimiser les paramètres et sélectionner la combinaison optimale de paramètres.
Cette stratégie est basée sur les principes de surachat et de survente de l'indicateur RSI, utilise des moyennes mobiles pour le filtrage pour générer des signaux de trading, réalisant ainsi le trading cross-cycle typique. La stratégie a une structure logique et des paramètres clairs, adaptables à différents produits et cycles grâce à l'ajustement des paramètres, ce qui en fait une stratégie de trading cross-cycle fiable et efficace.
/*backtest start: 2023-09-01 00:00:00 end: 2023-09-30 23:59:59 period: 3m 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/ // © samuelkanneman //@version=4 strategy("RSI KANNEMAN") //////Entrada/////// i_startTime = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from") i_endTime = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading") sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 ) sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 ) l1=hline(sobrecompra) l2=hline(sobreventa, color=color.purple) periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 ) periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 ) var SL =0.0 var TP=0.0 StopLoss = input(2.0, title="SL %", step=0.2) TakeProfit = input(5.0, title="TP %", step=0.2) //////Proceso/////// mi_rsi=rsi(close,periodos) mm_rsi=sma(mi_rsi,periodos_media) Es_compra= crossover(mm_rsi,sobreventa) Es_venta= crossunder(mm_rsi,sobrecompra) comprado= strategy.position_size > 0 vendido = strategy.position_size < 0 //time to test dateFilter = true //timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0) // long if (not comprado and Es_compra and dateFilter ) // realizar long cantidad = strategy.equity/hlc3 strategy.entry ("compra", strategy.long , cantidad) SL := close*(1-(StopLoss/100)) TP := close*(1+(TakeProfit/100)) if close >= TP strategy.close ("compra" , comment="Salto TP") if (comprado and Es_venta ) strategy.close ("compra" , comment="Sobre Venta") if close <= SL strategy.close ("compra" , comment="Salto SL") // short if (not vendido and Es_venta and dateFilter ) // realizar short cantidad = strategy.equity/hlc3 strategy.entry ("venta", strategy.short , cantidad) SL := close*(1+(StopLoss/100)) TP := close*(1-(TakeProfit/100)) if close <= TP strategy.close ("venta" , comment="Salto TP") if (vendido and Es_compra ) strategy.close ("venta" , comment="Sobre Compra") if close >= SL strategy.close ("venta" , comment="Salto SL") ///////Salida////// fill(l1,l2) plot(mi_rsi) plot(mm_rsi, color=color.yellow) bgcolor(Es_compra ? color.blue : na , transp=0) bgcolor(Es_venta ? color.red : na , transp=0) // 1d 70 22 5 4 3 15 6 meses //1h 70 20 6 4 5 7 1 mese //15m 70 20 5 4 4 7 1 semana