L'idée principale de cette stratégie est de détecter si le prix franchit le prix le plus bas dans une période spécifiée et de long, en attendant que le prix revienne à la moyenne.
La stratégie obtient le prix le plus bas dans une période spécifiée lowestLow en utilisant la méthode ta.lowest de Pine Script
Si le prix le plus bas de la dernière période est inférieur au prix le plus bas de la période précédente, un signal long est déclenché.
La stratégie permet de choisir la condition de déclenchement, c'est-à-dire que le prix le plus bas doit franchir 1, 2, 3 ou 4 prix les plus bas précédents consécutivement, afin de contrôler la fréquence de négociation.
Il affiche également la ligne de prix la plus basse la plus basse et la ligne de prix la plus élevée la plus élevée sur le graphique pour afficher visuellement le changement de tendance.
La stratégie capte la tendance à l'inversion après avoir franchi de nouveaux sommets avec un taux de gain relativement élevé.
Permet de choisir le nombre de prix inférieurs brisés pour contrôler la fréquence des transactions.
Le tracé des lignes permet de déterminer visuellement les points de changement de tendance.
Une logique stratégique simple et claire, facile à comprendre et à mettre en œuvre.
Peut être configuré et optimisé sur différents stocks et périodes.
La rupture d'un faux fond ne peut pas déterminer les points d'inversion de tendance, peut entraîner des pertes.
Besoin de tester différentes combinaisons de paramètres pour optimiser les configurations, sinon la fréquence de négociation peut être trop élevée ou trop faible.
Les paramètres doivent être ajustés pour les différents stocks et ne doivent pas être appliqués de façon mécanique.
Une période de retest insuffisante peut entraîner un surmontage.
Le prix peut atteindre de nouveaux creux après la rupture, besoin de mettre un stop loss pour contrôler les risques.
Ajoutez des mécanismes de stop-loss comme le stop-loss mobile, le stop-loss de suivi, pour limiter la perte par transaction.
Optimiser le nombre de ruptures pour équilibrer la fréquence de négociation et la qualité du signal.
Paramètres d'essai sur différents stocks et périodes.
Ajoutez des filtres pour éviter les transactions fréquentes sur des marchés variés.
Considérez l'ajout d'indicateurs de tendance pour éviter le contre-trend.
Testez différents signaux de sortie.
La stratégie capte les opportunités d'inversion en surveillant les écarts de prix les plus bas, une stratégie de rupture de réversion moyenne typique. Les avantages sont la simplicité, la fréquence contrôlable et l'applicabilité à divers stocks. Mais elle comporte également certains faux risques de rupture. L'ajout de filtres et d'optimisation est nécessaire, ainsi que le contrôle des risques. Avec des tests et une optimisation complets, il peut devenir un système de trading stable et fiable.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 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/ // © merovinh //@version=5 strategy(title="Merovinh - Mean Reversion Lowest low", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 10, commission_type = strategy.commission.percent, slippage = 1, commission_value = 0.04) GR_TIME = 'Time Period' bars = input(9, title = "Minimum number of bars", tooltip = "The minimum number of bars before updating lowest low / highest high") numberOfLows = input.string(defval='One', title='Number of broken lows', options=['One', 'Two', 'Three', 'Four']) //Period var prevLow = .0 var prevHigh = .0 var prevLow2 = .0 var prevLow3 = .0 var prevLow4 = .0 truetime = true highestHigh = ta.highest(high, bars) lowestLow = ta.lowest(low, bars) if numberOfLows == 'One' if truetime and prevLow > 0 and lowestLow < prevLow strategy.entry('long', strategy.long) if numberOfLows == 'Two' if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 strategy.entry('long', strategy.long) if numberOfLows == 'Three' if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 strategy.entry('long', strategy.long) if numberOfLows == 'Four' if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 and prevLow3 < prevLow4 strategy.entry('long', strategy.long) if truetime and prevHigh > 0 and highestHigh > prevHigh strategy.close('long') if prevLow != lowestLow prevLow4 := prevLow3 prevLow3 := prevLow2 prevLow2 := prevLow prevLow := lowestLow prevHigh := highestHigh plot(lowestLow, color=color.green, linewidth=1, title="Lowest Low Line") plot(highestHigh, color=color.green, linewidth=1, title="Highest High Line")