Cette stratégie combine deux indicateurs: l'inversion de la moyenne mobile et l'oscillateur de la tendance des prix pour générer des signaux de négociation et capturer la tendance de rebond après les inversions du cycle.
Cette stratégie utilise principalement les deux indicateurs techniques suivants pour le jugement des signaux de négociation:
Réversion de la moyenne mobile
Il calcule la tendance haussière ou baissière des prix au cours des deux derniers jours combinée à la valeur de la ligne rapide K pour déterminer si un signal d'inversion se produit. Lorsque le prix continue d'augmenter au cours des deux derniers jours et que la valeur de la ligne rapide K est inférieure à la valeur de la ligne lente K, un signal d'achat est généré. Lorsque le prix continue de baisser au cours des deux derniers jours et que la valeur de la ligne rapide K est supérieure à la valeur de la ligne lente K, un signal de vente est généré.
Ossillateur de tendance des prix
L'oscillateur de prix Detrend dessine une ligne moyenne mobile horizontale et identifie les cycles de prix en fonction de la relation entre le prix et la ligne. Il filtre les tendances plus longues que la période de calcul, révélant ainsi les fluctuations cachées à court terme. Lorsque le prix est au-dessus de la ligne moyenne mobile, c'est un signal d'achat. Lorsque le prix est en dessous de la ligne, c'est un signal de vente.
Cette stratégie combine les signaux des deux indicateurs. C'est-à-dire que lorsqu'un signal d'inversion de la moyenne mobile apparaît et que l'oscillateur de détrend des prix donne également un signal d'inversion confirmant, un ordre de négociation est généré. Cela peut filtrer certains signaux d'inversion invalide et attraper la tendance de rebond après les inversions.
Le plus grand avantage de cette stratégie est qu'elle utilise bien les atouts des deux indicateurs de confirmation complémentaire, qui peuvent filtrer efficacement les signaux non valides et augmenter la fiabilité du signal.
L'indicateur d'inversion de la moyenne mobile lui-même a tendance à générer de faux signaux. S'appuyer uniquement sur lui pour les jugements a tendance à poursuivre les sommets et à toucher les fonds. L'introduction de l'oscillateur de détente des prix pour la combinaison peut éviter les opérations d'inversion dans les zones d'oscillation non idéales.
Les paramètres fixés par l'oscillateur de détente des prix déterminent également qu'il n'identifie que des fluctuations à court terme, ce qui correspond très bien au jugement de l'inversion de la moyenne mobile et peut identifier un calendrier raisonnable d'inversion.
Les principaux risques de cette stratégie sont les suivants:
Si la dynamique de rebond est insuffisante, il est probable qu'elle soit appelée en arrière et touche à nouveau le stop-loss, échouant à réaliser un profit.
Si les paramètres de l'oscillateur de tendance des prix sont trop élevés, il permettra d'identifier les tendances à moyen et à long terme; s'il est trop faible, il augmentera les risques d'erreur de jugement.
Les événements d'actualité majeurs peuvent perturber les jugements de tendance existants, entraînant l'échec des signaux d'inversion.
La stratégie peut être encore optimisée dans les aspects suivants:
Régler raisonnablement le stop-loss ou le time-stop loss pour contrôler la perte unique.
Ajoutez une confirmation de volume, par exemple en émettant des signaux uniquement lorsque le volume moyen est dépassé, pour éviter des percées inefficaces dues à une dynamique insuffisante.
Optimiser dynamiquement les paramètres en fonction des conditions du marché, assouplir les paramètres de manière appropriée lors de tendances évidentes et resserrer les paramètres lors de consolidations.
Utilisez des méthodes d'apprentissage automatique comme la forêt aléatoire pour évaluer et sélectionner des combinaisons de paramètres afin d'obtenir une optimisation intelligente dynamique.
Cette stratégie combine les forces de deux indicateurs de manière raisonnable pour capturer la tendance de rebond aux points d'inversion. Bien que des problèmes tels que le fait d'être pris au piège et l'optimisation des paramètres persistent, l'idée globale est claire et logique. Il vaut la peine de tester et d'optimiser davantage pour obtenir des profits stables.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 30/12/2019 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // The Detrend Price Osc indicator is similar to a moving average, // in that it filters out trends in prices to more easily identify // cycles. The indicator is an attempt to define cycles in a trend // by drawing a moving average as a horizontal straight line and // placing prices along the line according to their relation to a // moving average. It provides a means of identifying underlying // cycles not apparent when the moving average is viewed within a // price chart. Cycles of a longer duration than the Length (number // of bars used to calculate the Detrend Price Osc) are effectively // filtered or removed by the oscillator. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos DPO(Length) => pos = 0.0 xPrice = close xsma = sma(xPrice, Length) nRes = xPrice - xsma pos := iff(nRes > 0, 1, iff(nRes < 0, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Detrended Price Oscillator", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthDPO = input(14, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posDPO = DPO(LengthDPO) pos = iff(posReversal123 == 1 and posDPO == 1 , 1, iff(posReversal123 == -1 and posDPO == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )