Cette stratégie combine la stratégie d'inversion des points pivots avec l'indicateur d'indice de force relative (RSI) pour détecter les opportunités potentielles d'inversion de tendance aux niveaux pivots en vérifiant les signaux RSI.
La stratégie calcule d'abord les niveaux de support et de résistance clés en regardant à gauche et à droite sur un certain nombre de barres pour trouver le pivot le plus élevé et le pivot le plus bas. Lorsqu'un niveau de pivot est établi, elle vérifie en outre si le RSI répond aux conditions de surachat ou de survente. Plus précisément, si le RSI est en dessous de la ligne de survente à la résistance, il est considéré comme survendu pour une entrée longue. Si le RSI est au-dessus de la ligne de surachat au support, il est considéré comme suracheté pour une entrée courte. Cela permet d'utiliser le filtre RSI pour identifier les fausses ruptures et un meilleur timing d'entrée aux points d'inversion de tendance.
Les détails du code sont les suivants:
Les principaux avantages de cette stratégie sont les suivants:
Confirmation de tendance: le RSI filtre les fausses ruptures et évite les entrées erronées lors de baisses temporaires.
Contrôle des risques: les arrêts sont placés près des principaux supports et résistances pour une meilleure gestion des risques.
Versatilité: Applicable à différents produits et délais.
Simplicité: indicateurs et paramètres minimaux pour une mise en œuvre facile.
Efficacité des données: seules les données OHLC nécessaires et non sensibles à la qualité des données.
Les risques potentiels sont les suivants:
Risque d'échec du pivot: les niveaux clés peuvent être brisés lors d'énormes fluctuations du marché, ce qui entraîne une défaillance de la stratégie.
Risque de divergence du RSI: le RSI peut diverger et devenir inefficace pour les surachats / survente sur les marchés agités. Les paramètres du RSI peuvent être ajustés et des filtres supplémentaires ajoutés pour valider les signaux du RSI.
Risque de stop loss: les stops peuvent être effectués lors de fortes tendances entraînant une augmentation des pertes. Des distances de stop loss plus larges pourraient aider, mais nécessitent un équilibre entre les bénéfices et les risques.
Risque de retrait: la stratégie est exécutée à chaque tick et peut faire face à des retraitements lors d'inversions défavorables.
La stratégie peut être améliorée sous plusieurs aspects:
Optimiser le calcul du pivot en testant différentes périodes de rétrospective gauche/droite et en ajoutant des filtres pour améliorer la précision.
Optimiser les paramètres du RSI pour une meilleure détection de la surachat/survente.
Ajoutez des filtres supplémentaires pour éviter les sacs à épée sur les marchés instables, tels que les indicateurs de volatilité.
Optimiser les arrêts pour équilibrer les bénéfices et les risques.
Utiliser des arrêts statistiques basés sur l'analyse des données historiques pour déterminer les plages d'arrêt des pertes.
Ajoutez une confirmation multi-temps pour améliorer le taux de victoire en utilisant plusieurs périodes.
La stratégie Go With The Trend RSI combine les points de pivot et le RSI pour identifier les points de tournant potentiels de la tendance et trouver des entrées optimales. Par rapport à l'utilisation de techniques uniques telles que le pivot ou le RSI seul, cette stratégie améliore la robustesse et la cohérence. Des optimisations supplémentaires des paramètres et des filtres peuvent améliorer le taux de gain et les rendements ajustés au risque.
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-07 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Pivot Point Reversal + RSI Strategy", shorttitle = 'PP + RSI Strategy', overlay=true) //////////// // Inputs // leftBars = input(3, title = 'PP - Left Bars') rightBars = input(3, title = 'PP - Right Bars') rsi_length = input(14, title = "RSI - Length") rsi_long = input(70, title = "RSI - Overbought level") rsi_short = input(30, title = "RSI - Overold level") ////////////////// // Calculations // // Pivot Points swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) // Pivot High swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond ? true : (le[1] and high > hprice ? false : le[1]) // Pivot Low swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : (se[1] and low < lprice ? false : se[1]) // RSI rsi = rsi(close, 14) ////////////// // STRATEGY // if (le and rsi[rightBars] < rsi_long ) strategy.entry("PivRevLE", strategy.long, comment = "PivRSI Long", stop = hprice + syminfo.mintick) if (se and rsi[rightBars] > rsi_short) strategy.entry("PivRevSE", strategy.short, comment = "PivRSI Short", stop = lprice - syminfo.mintick)