Cette stratégie est une stratégie combinée de facteurs multiples qui combine les facteurs d'inversion et les facteurs de dynamique pour découvrir les opportunités d'inversion sur le marché. La stratégie utilise d'abord le facteur d'inversion à long terme pour identifier les opportunités d'inversion après des baisses en plage, puis utilise des indicateurs d'impulsion pour le dépistage secondaire pour filtrer les faux signaux d'inversion sous les tendances majeures, afin de bloquer les opportunités d'arbitrage d'inversion à court terme.
La stratégie se compose de deux parties:
123 Facteur d'inversion
Cette partie utilise l'idée de l'inversion intradienne pour déterminer la relation entre le prix de clôture de la journée précédente et le prix de clôture de la 2 jours pour identifier les opportunités d'inversion avec lente ligne K. La logique spécifique est:
Signal d'achat: après deux jours consécutifs de baisse du prix de clôture, si le prix de clôture augmente le jour en cours et que la lente K-line de 9 jours est inférieure à 50, un signal d'achat est généré;
Signal de vente: Après deux jours consécutifs de hausse du prix de clôture, si le prix de clôture diminue le jour en cours et que la ligne K rapide de 9 jours est supérieure à 50, un signal de vente est généré.
L'oscillateur à élan dynamique Ehlers (ETSI)
Cette partie utilise la méthode de la dynamique des prix à trois EMA pour construire un indicateur de dynamique, dont la formule est la suivante:
xPrice1 = close - close[1]
xPrice2 = abs(close - close[1])
xSMA_R = EMA(EMA(EMA(xPrice1,r), s), u)
xSMA_aR = EMA(EMA(EMA(xPrice2, r), s), u)
xTSI = xSMA_R / xSMA_aR * 100
xEMA_TSI = EMA(xTSI, N)
où xSMA_R est la valeur de la dynamique des prix à l'EMA, xSMA_aR est la valeur de la volatilité des prix à l'EMA, xTSI est l'indicateur de dynamique construit à partir du rapport des deux, et xEMA_TSI est l'équilibrage secondaire de l'EMA de xTSI. L'indicateur détermine la direction du signal de négociation en fonction de la relation entre xTSI et xEMA_TSI.
Enfin, la stratégie ANDs les signaux des deux parties, et émet seulement des ordres de négociation réels lorsque les signaux des deux facteurs sont d'accord.
Le plus grand avantage de cette stratégie réside dans sa conception multifactorielle, qui peut filtrer les faux signaux et découvrir des opportunités de trading de haute qualité.
Le facteur d'inversion 123 permet d'identifier des points de rebond à court terme après des baisses dans la fourchette.
L'indicateur de dynamique Ehlers peut déterminer efficacement la direction de la tendance majeure pour éviter les signaux d'inversion se produisant sous une tendance majeure, filtrant ainsi les faux signaux.
L'opération AND sur les deux parties du signal peut améliorer la qualité du signal et renforcer la stabilité de la stratégie.
Bien que la stratégie adopte une conception multifactorielle pour contrôler les risques, les principaux risques restent les suivants:
Des signaux d'inversion peuvent apparaître dans les tendances oscillantes et ne pas générer de bénéfices.
Il y a une subjectivité dans les paramètres entre les deux facteurs, ce qui peut être trop adapté à des produits spécifiques.
Le risque d'augmentation des pertes après l'inversion des prix s'inverse à nouveau.
Ces risques peuvent être atténués en optimisant les paramètres pour s'adapter à davantage de variétés, en contrôlant les positions post-inversion, en surveillant en temps réel les changements dans les relations entre les indicateurs et par d'autres moyens.
Les principaux aspects pour optimiser cette stratégie sont les suivants:
Ajuster les paramètres des deux facteurs pour trouver des échantillons de données qui correspondent mieux.
Augmentation des stratégies de stop loss pour contrôler les pertes uniques.
Utilisation de différentes combinaisons de paramètres pour les variétés tendance et oscillation.
Augmentation du mécanisme de pondération des facteurs afin d'accorder un plus grand poids aux facteurs performants.
Augmentation des algorithmes d'apprentissage automatique pour optimiser et mettre à jour automatiquement les paramètres.
La stratégie combine avec succès des facteurs d'inversion et des indicateurs de dynamique pour obtenir une conception optimisée pour plusieurs facteurs. Elle peut identifier efficacement les opportunités d'inversion à court terme et utiliser des indicateurs de dynamique pour effectuer une vérification secondaire des signaux, améliorant ainsi le taux de victoire de la stratégie. Bien qu'il y ait encore place à l'amélioration de la stratégie, son idée de base fournit une bonne référence pour la conception de stratégies quantitatives.
/*backtest start: 2023-10-21 00:00:00 end: 2023-11-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 30/07/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 // r - Length of first EMA smoothing of 1 day momentum 4 // s - Length of second EMA smoothing of 1 day smoothing 8 // u- Length of third EMA smoothing of 1 day momentum 6 // Length of EMA signal line 3 // Source of Ergotic TSI Close // // This is one of the techniques described by William Blau in his book "Momentum, // Direction and Divergence" (1995). If you like to learn more, we advise you to // read this book. His book focuses on three key aspects of trading: momentum, // direction and divergence. Blau, who was an electrical engineer before becoming // a trader, thoroughly examines the relationship between price and momentum in // step-by-step examples. From this grounding, he then looks at the deficiencies // in other oscillators and introduces some innovative techniques, including a // fresh twist on Stochastics. On directional issues, he analyzes the intricacies // of ADX and offers a unique approach to help define trending and non-trending periods. // // 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 ETSI(r,s,u,SmthLen) => pos = 0 xPrice = close xPrice1 = xPrice - xPrice[1] xPrice2 = abs(xPrice - xPrice[1]) xSMA_R = ema(ema(ema(xPrice1,r), s),u) xSMA_aR = ema(ema(ema(xPrice2, r), s),u) Val1 = 100 * xSMA_R Val2 = xSMA_aR xTSI = iff (Val2 != 0, Val1 / Val2, 0) xEMA_TSI = ema(xTSI, SmthLen) pos:= iff(xTSI > xEMA_TSI, 1, iff(xTSI < xEMA_TSI, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Ergodic TSI", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- r = input(4, minval=1) s = input(8, minval=1) u = input(6, minval=1) SmthLen = input(3, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posETSI = ETSI(r,s,u,SmthLen) pos = iff(posReversal123 == 1 and posETSI == 1 , 1, iff(posReversal123 == -1 and posETSI == -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 )