Cette stratégie combine le modèle de renversement 123 et la facilité de mouvement (EOM) pour le commerce à des points tournants. Le modèle de renversement 123 génère des signaux lorsque le prix forme des modèles spécifiques sur 3 jours consécutifs. La stratégie EOM utilise des changements de prix et de volume pour mesurer la dynamique du marché.
La stratégie est composée de deux éléments:
La stratégie est longue lorsque les signaux EOM et 123 s'alignent sur le côté long, et court lorsque les signaux s'alignent sur le côté court.
Les avantages de cette stratégie:
Combine les modèles de prix et l'élan pour une meilleure précision du signal
123 modèles de capture des points tournants, EOM gauges dynamique de tendance, deux se complètent
Stoch évite les problèmes lors de la consolidation
Simple et facile à mettre en œuvre
Paramètres personnalisables pour différents environnements de marché
Les risques à prendre en considération:
Une dépendance excessive à l'égard des paramètres, des paramètres inappropriés peuvent entraîner une survente ou des transactions manquantes
Beaucoup de filtres peuvent générer trop peu de signaux
EOM sensible à la volatilité, peut générer de faux signaux
Performance en direct plus faible que le backtest, besoin de contrôler la dimension de position
Convient uniquement pour les stocks à tendance, pas pour les marchés à tendance
La stratégie peut être améliorée par:
Optimisation des paramètres pour équilibrer fréquence et qualité des signaux
Ajout d'un stop loss pour contrôler les pertes d'une seule transaction
Ajout d'un filtre de tendance pour éviter les transactions contre-tendance
Incorporation d'un classement des positions basé sur la volatilité
Utiliser l'apprentissage automatique pour optimiser dynamiquement les paramètres
Cette stratégie intègre des modèles de prix et de l'élan pour une valeur pratique élevée. Mais la fréquence des transactions, le contrôle des pertes et les risques de contre-trend doivent être gérés. Des améliorations supplémentaires des paramètres, du stop loss, du filtrage des tendances peuvent améliorer la stabilité et la rentabilité. La logique est claire et facile à mettre en œuvre pour les traders quant.
/*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 14/04/2020 // 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 gauges the magnitude of price and volume movement. // The indicator returns both positive and negative values where a // positive value means the market has moved up from yesterday's value // and a negative value means the market has moved down. A large positive // or large negative value indicates a large move in price and/or lighter // volume. A small positive or small negative value indicates a small move // in price and/or heavier volume. // A positive or negative numeric value. A positive value means the market // has moved up from yesterday's value, whereas, a negative value means the // market has moved down. // // 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 EOM(BuyZone, SellZone) => pos = 0 xHigh = high xLow = low xVolume = volume xHalfRange = (xHigh - xLow) * 0.5 xMidpointMove = mom(xHalfRange, 1) xBoxRatio = iff((xHigh - xLow) != 0, xVolume / (xHigh - xLow), 0) nRes = iff(xBoxRatio != 0, 1000000 * ((xMidpointMove - xMidpointMove[1]) / xBoxRatio), 0) pos := iff(nRes > BuyZone, 1, iff(nRes < SellZone, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Ease of Movement (EOM)", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- BuyZone = input(4000, minval=1) SellZone = input(-4000) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posEOM = EOM(BuyZone, SellZone) pos = iff(posReversal123 == 1 and posEOM == 1 , 1, iff(posReversal123 == -1 and posEOM == -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 )