Cette stratégie combine des règles de trading d'inversion avec des indicateurs de momentum. Elle intègre l'inversion bidirectionnelle et l'oscillateur de momentum de Chande pour identifier les opportunités d'inversion tout en vérifiant les signaux de momentum pour générer des signaux de trading plus fiables.
La stratégie se compose de deux parties:
La première partie est les règles de négociation de renversement bidirectionnel. Il identifie les opportunités de renversement en détectant les changements de prix de clôture au cours des deux jours précédents. Plus précisément, si les prix de clôture ont diminué au cours des deux jours précédents, et que le prix de clôture actuel est supérieur à la clôture précédente, et que l'oscillateur stochastique est en dessous d'un seuil, il déclenche un signal d'achat. Au contraire, si les prix de clôture ont augmenté au cours des deux jours précédents, et que le prix de clôture actuel est inférieur à la clôture précédente, et que l'oscillateur stochastique est au-dessus d'un seuil, il déclenche un signal de vente.
La deuxième partie est l'oscillateur de dynamique de Chande. Il compare l'ampleur du changement de prix avec l'ampleur moyenne dans une certaine période pour déterminer la dynamique. Si l'indicateur de dynamique est au-dessus d'une limite supérieure, il génère un signal d'achat. Si en dessous d'une limite inférieure, il génère un signal de vente.
La stratégie combine des règles bidirectionnelles de trading d'inversion pour localiser les points d'inversion potentiels et un indicateur de momentum pour vérifier la validité des signaux d'inversion.
Le mécanisme de double vérification améliore la fiabilité du signal en évitant les faux signaux.
La combinaison d'une stratégie d'inversion avec une stratégie de tendance offre une flexibilité pour saisir les opportunités sur les marchés d'inversion et de tendance.
L'introduction de l'élan empêche de tomber dans des pièges d'inversion en ne négociant que lorsque l'élan se confirme.
Plusieurs paramètres réglables peuvent être optimisés pour différentes conditions de marché.
Les signaux d'inversion peuvent faire face à de gros retards, ce qui nécessite un stop loss raisonnable.
Le moment exact des retours est difficile, peut entraîner des jugements erronés.
Le retard des indicateurs de dynamique peut entraîner l'absence des meilleurs points d'entrée d'inversion.
Le réglage des paramètres nécessite une optimisation minutieuse basée sur des marchés spécifiques, des réglages incorrects peuvent augmenter les risques.
Les risques peuvent être réduits en utilisant un stop-loss approprié, une optimisation robuste des paramètres, en conservant une certaine marge dans les conditions de déclenchement du signal d'inversion, etc.
Testez différentes combinaisons de paramètres d'inversion pour trouver des paramètres sensibles aux inversions du marché.
Essayez différents indicateurs de dynamique, comme le RSI, le taux de changement de volume, etc.
Ajoutez des filtres comme les évasions pour éviter les points de renversement non-clés.
Évaluer les stratégies de stop-loss pour trouver des méthodes contrôlées par le tirage maximum.
Évaluer les stratégies de dimensionnement des positions afin d'ajuster les positions en fonction des conditions du marché.
La stratégie combine les avantages des stratégies d'inversion et de dynamique, avec des signaux fiables et une flexibilité pour saisir les opportunités. Les paramètres peuvent être optimisés, les risques peuvent être gérés par le biais d'un stop loss et d'une dimensionnement des positions pour améliorer la stabilité et la rentabilité.
/*backtest start: 2023-10-06 00:00:00 end: 2023-11-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 18/08/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 // This indicator plots Chande Momentum Oscillator. This indicator was // developed by Tushar Chande. A scientist, an inventor, and a respected // trading system developer, Mr. Chande developed the CMO to capture what // he calls "pure momentum". For more definitive information on the CMO and // other indicators we recommend the book The New Technical Trader by Tushar // Chande and Stanley Kroll. // The CMO is closely related to, yet unique from, other momentum oriented // indicators such as Relative Strength Index, Stochastic, Rate-of-Change, // etc. It is most closely related to Welles Wilder`s RSI, yet it differs // in several ways: // - It uses data for both up days and down days in the numerator, thereby // directly measuring momentum; // - The calculations are applied on unsmoothed data. Therefore, short-term // extreme movements in price are not hidden. Once calculated, smoothing // can be applied to the CMO, if desired; // - The scale is bounded between +100 and -100, thereby allowing you to // clearly see changes in net momentum using the 0 level. The bounded scale // also allows you to conveniently compare values across different securities. // // 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 CMO(Length, TopBand, LowBand) => pos = 0 xMom = abs(close - close[1]) xSMA_mom = sma(xMom, Length) xMomLength = close - close[Length] nRes = 100 * (xMomLength / (xSMA_mom * Length)) pos := iff(nRes > TopBand, 1, iff(nRes <= LowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Chande Momentum 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) //------------------------- LengthCMO = input(9, minval=1) TopBand = input(70, minval=1) LowBand = input(-70, maxval=-1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posCMO = CMO(LengthCMO, TopBand, LowBand) pos = iff(posReversal123 == 1 and posCMO == 1 , 1, iff(posReversal123 == -1 and posCMO == -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 )