Cette stratégie de trading tire pleinement parti des avantages de l'inversion de la moyenne mobile et des indicateurs techniques triple bottom flash pour l'application combinée. Elle capte les opportunités d'inversion tout en suivant la tendance, filtrant certains faux signaux de rupture et peut améliorer efficacement le taux de gain des systèmes de trading.
La stratégie se compose de deux parties:
Les signaux d'achat et de vente sont générés lorsque la moyenne mobile de 2 jours dévie de la moyenne mobile de 20 jours.
L'émergence de ce modèle est un signal d'inversion à court terme. La condition de formation est la suivante: le plus bas de la journée du milieu est inférieur à celui du jour précédent et le jour suivant, et le prix de clôture du jour suivant est supérieur au plus haut du jour précédent.
Lorsque les moyennes mobiles de 2 jours et de 20 jours montrent simultanément des signaux d'inversion et sont compatibles avec la direction du signal de la triple tendance à la baisse, procédez à des actions d'achat ou de vente.
Dans le code, les moyennes mobiles de 2 jours et de 20 jours sont calculées en premier.
Lorsque le modèle de flash triple bas est détecté, le signal de direction du modèle est réglé sur 1 ou -1. Lire le signal de modèle de la journée précédente, le combiner avec le signal de moyenne mobile actuel, et générer le signal d'entrée final.
Ainsi, en filtrant avec la combinaison de moyennes mobiles et de modèles, certains faux signaux peuvent être filtrés, ce qui rend la stratégie de trading plus fiable.
La combinaison de plusieurs indicateurs techniques peut se compléter et se vérifier mutuellement et améliorer la fiabilité du signal.
L'inversion de la moyenne mobile peut capturer les points d'inversion des tendances en temps opportun et tirer parti des inversions.
La moyenne mobile de 20 jours suit les tendances à moyen et à long terme, et la moyenne mobile de 2 jours capte les points d'entrée après des ajustements à court terme.
La stratégie n'est pas sensible aux paramètres et est facile à mettre en œuvre et à optimiser.
Les modèles d'inversion sont sujets à des erreurs de jugement et l'expérience est nécessaire pour juger de leur fiabilité.
Les signaux d'inversion peuvent être retardés, ce qui nécessite l'observation des caractéristiques du motif et un ajustement approprié de la position.
Des essais et une optimisation sont nécessaires pour différentes variétés de négociation et certains paramètres peuvent devoir être ajustés.
Le contrôle des pertes doit introduire un mécanisme de stop loss afin d'éviter de manquer des points d'inversion importants.
Testez différentes combinaisons de moyennes mobiles pour sélectionner les meilleurs paramètres pour la variété.
Introduire d'autres indicateurs auxiliaires tels que le volume, les bandes de Bollinger, etc. pour la vérification à plusieurs indicateurs.
Ajouter un module stop loss pour contrôler les retraits et les risques.
Optimisez le moment de l'entrée pour éviter les problèmes prématurés ou tardifs.
Optimiser les paramètres pour des variétés spécifiques afin d'améliorer leur adaptabilité.
La stratégie utilise pleinement les avantages de l'inversion moyenne mobile et des modèles à court terme pour obtenir une combinaison efficace des deux, ce qui peut améliorer la stabilité et le taux de gain des systèmes de trading. Mais le contrôle des risques, les tests de paramètres et l'optimisation sont nécessaires pour s'adapter aux caractéristiques des différentes variétés.
/*backtest start: 2022-10-19 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/12/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This indicator plots 2/20 exponential moving average. For the Mov // Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met. // // Second strategy // This startegy based on 3-day pattern reversal described in "Are Three-Bar // Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in // January,2000 issue of Stocks&Commodities magazine. // That pattern conforms to the following rules: // - It uses daily prices, not intraday or weekly prices; // - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed; // - The last day must have a close above the prior day's high, with no ties allowed; // - Each day must have a nonzero trading range. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// EMA20(Length ) => pos = 0.0 xPrice = close xXA = ema(xPrice, Length) nHH = max(high, high[1]) nLL = min(low, low[1]) nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH) pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) pos BarR()=> pos = 0.0 pos := iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1, iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) pos strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true) var I1 = "●═════ 2/20 EMA ═════●" Length = input(14, minval=1, group = I1) //var I2 = "●═════ 3-Bar-Reversal-Pattern ═════●" var misc = "●═════ MISC ═════●" reverse = input(false, title="Trade reverse", group = misc) var timePeriodHeader = "●═════ Time Start ═════●" d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader) m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader) y = input(2005, title="From Year", minval=0, group=timePeriodHeader) StartTrade = true prePos3Bar = BarR() posEMA20 = EMA20(Length) pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on) pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1, iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -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 )