Cette stratégie optimise la stratégie traditionnelle d'inversion des points pivots en calculant l'ATR et en définissant des filtres ATR pour éliminer les points pivots insignifiants, et ne négocie que sur ceux qui sont vraiment importants.
La logique de base est d'identifier les points de pivot significatifs.
La logique pour calculer les pivots significatifs est similaire.
Après avoir obtenu les pivots significatifs, allez court lorsque le prix dépasse un pivot de pic important, et allez long lorsqu'il dépasse un pivot de creux important.
Les principaux avantages de cette stratégie sont les suivants:
Les principaux risques sont les suivants:
Pour contrôler les risques ci-dessus, optimiser les aspects suivants:
D'autres orientations d'optimisation incluent:
Combinaison avec d'autres indicateurs pour déterminer le régime du marché, évitant les renversements de négociation sur les marchés tendance.
L'ajout d'algorithmes d'apprentissage automatique pour optimiser automatiquement les paramètres. Des méthodes comme les algorithmes génétiques, la forêt aléatoire peuvent être utilisées pour trouver des ensembles de paramètres optimaux.
Des modèles d'entraînement utilisant des données quantitatives pour trouver la plage d'ATR optimale.
Considérez la combinaison avec d'autres stratégies, en utilisant les points forts de différents types de stratégie.
Cette stratégie d'inversion de pivot important filtre les fluctuations mineures sans signification en calculant l'ATR et en définissant des filtres. Seules les inversions de trading sur des pivots importants peuvent améliorer efficacement la rentabilité de la stratégie. Pendant ce temps, cela augmente également la difficulté d'optimisation des paramètres. Les paramètres optimaux doivent être trouvés en tenant compte de la gamme ATR, des ratios stop loss / take profit, etc. Si elle est optimisée à fond, elle peut devenir une stratégie de trading à court terme très efficace et stable.
/*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"}] */ //@version=4 strategy("QuantNomad - Significant Pivot Reversal Strategy", shorttitle = "SPPS", overlay=true) // Inputs leftBars = input(4, title = 'PP Left Bars') rightBars = input(2, title = 'PP Right Bars') atr_length = input(14, title = 'ATR Length') atr_mult = input(0.1, title = 'ATR Mult') // Pivot High Significant Function pivotHighSig(left, right) => pp_ok = true atr = atr(atr_length) for i = 1 to left if (high[right] < high[right+i] + atr * atr_mult) pp_ok := false for i = 0 to right-1 if (high[right] < high[i] + atr * atr_mult) pp_ok := false pp_ok ? high[right] : na // Pivot Low Significant Function pivotLowSig(left, right) => pp_ok = true atr = atr(atr_length) for i = 1 to left if (low[right] > low[right+i] - atr * atr_mult) pp_ok := false for i = 0 to right-1 if (low[right] > low[i] - atr * atr_mult) pp_ok := false pp_ok ? low[right] : na swh = pivotHighSig(leftBars, rightBars) swl = pivotLowSig (leftBars, rightBars) 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]) if (le) strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick) 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]) if (se) strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)