Cette stratégie combine la stratégie d'inversion 123 et la stratégie d'interception de régression linéaire pour mettre en œuvre une stratégie de trading combinée axée sur plusieurs facteurs. La stratégie d'inversion 123 juge la relation de prix entre les deux derniers jours de négociation et combine l'indicateur Stoch pour déterminer le signal d'inversion.
La stratégie repose sur les principes suivants:
Si la relation de prix de clôture entre les deux derniers jours de négociation est supérieure au prix de clôture d'aujourd'hui à celui d'hier et que la ligne rapide de Stoch est inférieure à la ligne lente, on considère qu'il y a un signal d'inversion haussier.
Si la relation de prix de clôture entre les deux derniers jours de négociation est inférieure à celle d'hier et que la ligne rapide de Stoch est supérieure à la ligne lente, on considère qu'il y a un signal d'inversion baissière.
Les règles de jugement sont les suivantes:
Si le prix de clôture d'aujourd'hui > le prix de clôture d'hier et la ligne rapide de Stoch < la ligne lente de Stoch et la ligne rapide de Stoch > paramètres définis, générer un signal d'achat
Si le prix de clôture d'aujourd'hui < le prix de clôture d'hier et la ligne rapide de Stoch > la ligne lente de Stoch et la ligne rapide de Stoch < paramètre défini, générer un signal de vente
La stratégie doit fixer des paramètres pour l'indicateur Stoch, notamment: longueur du cycle de la ligne K pour le calcul de Stoch, cycle de lissage KSlissage pour la ligne rapide de Stoch, cycle d'lissage DLength pour la ligne lente de Stoch, niveau de seuil pour le jugement de la ligne rapide de Stoch.
La stratégie est basée sur l'analyse de régression linéaire pour juger de la relation entre le prix et la ligne de tendance de régression linéaire.
Si le prix de clôture est supérieur à l'intersection de régression linéaire, un signal d'achat est généré
Si le prix de clôture est inférieur à l'intersection de régression linéaire, un signal de vente est généré.
La stratégie doit définir le cycle de régression linéaire LengthLRI et la source de données d'entrée de régression linéaire xSeria.
La stratégie combinée nécessite des signaux d'achat/vente simultanés de la stratégie d'inversion 123 et de la stratégie d'interception de régression linéaire pour générer des ordres de négociation réels, ce qui filtre efficacement les faux signaux et améliore les performances de négociation.
La stratégie présente les avantages suivants:
La combinaison de deux types différents de stratégies nécessite des signaux provenant des deux stratégies pour effectuer réellement des commandes.
L'intersection de régression linéaire peut refléter la relation entre le prix et la ligne de tendance en temps réel. Si le prix s'écarte de manière significative de la tendance, il incitera rapidement la stratégie à ajuster la direction de la position. Cela permet d'arrêter les pertes en temps opportun et d'éviter d'être piégé dans les tendances historiques.
La stratégie de régression linéaire est meilleure pour identifier les points d'achat et de vente de tendance. Alors que la stratégie de renversement 123 se concentre sur l'identification des points d'inversion. Les deux stratégies peuvent combiner les avantages du trading de tendance et du trading de renversement.
Les deux stratégies fournissent certains paramètres de personnalisation, qui peuvent être optimisés pour différentes variétés et différentes tendances afin d'optimiser l'effet de la stratégie combinée.
La stratégie comporte également les risques suivants:
La nécessité de répondre aux signaux de négociation des deux stratégies va manquer certaines opportunités qui peuvent être rentables en s'appuyant uniquement sur une seule stratégie.
La régression linéaire nécessite des données historiques pour le calcul et ne peut pas répondre en temps réel à des événements soudains, ce qui entraîne un certain retard.
Les deux stratégies nécessitent une sélection de paramètres appropriée, qui peut nécessiter un ajustement indépendant pour certaines variétés.
Les risques peuvent être réduits par les méthodes suivantes:
Détente appropriée des conditions de déclenchement du signal de combo pour éviter de manquer trop d'opportunités
Combiner les indicateurs de tendance pour remplacer la régression linéaire afin d'obtenir plus de jugements de tendance en temps réel
Utiliser des méthodes d'apprentissage automatique pour faciliter l'optimisation des paramètres et améliorer la sélection des paramètres
La stratégie peut être encore optimisée de la manière suivante:
Rassembler des données historiques, concevoir des objectifs d'optimisation des paramètres et utiliser des algorithmes d'apprentissage automatique tels que des algorithmes génétiques et une optimisation bayésienne pour rechercher les meilleures combinaisons de paramètres.
Les règles de stop-loss peuvent être définies en fonction de l'ATR, des indicateurs de tendance, etc., afin de contrôler la perte maximale par transaction.
Des conditions auxiliaires telles que des filtres de moyennes mobiles et des bandes de Bollinger peuvent être ajoutées sur la base des signaux de négociation afin de réduire la fréquence des ajustements de position et d'éviter d'être pris au piège.
Utiliser des techniques de traitement du langage naturel pour déterminer le sentiment des participants au marché et aider à prendre des décisions commerciales.
Utiliser des modèles d'apprentissage en profondeur comme LSTM et GRU pour prédire les prix comme une référence importante pour les décisions stratégiques.
Cette stratégie combine la stratégie d'inversion 123 et la stratégie d'interception de régression linéaire pour mettre en œuvre un trading quantitatif axé sur plusieurs facteurs. Le mécanisme de vérification peut filtrer efficacement les faux signaux et capturer les opportunités de trading d'inversion et de tendance.
/*backtest start: 2023-09-18 00:00:00 end: 2023-09-19 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/01/2021 // 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 // Linear Regression Intercept is one of the indicators calculated by using the // Linear Regression technique. Linear regression indicates the value of the Y // (generally the price) when the value of X (the time series) is 0. Linear // Regression Intercept is used along with the Linear Regression Slope to create // the Linear Regression Line. The Linear Regression Intercept along with the Slope // creates the Regression line. // // 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 LRI(Length,xSeria) => pos = 0.0 xX = Length * (Length - 1) * 0.5 xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6 xXY = 0.0 for i = 0 to Length-1 xXY := xXY + (i * xSeria[i]) xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor xLRI = (sum(xSeria, Length) - xSlope * xX) / Length pos:= iff(close > xLRI, 1, iff(close < xLRI, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Line Regression Intercept", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Line Regression Intercept ----") LengthLRI = input(14, minval=1) xSeria = input(title="Source", type=input.source, defval=close) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posLRI = LRI(LengthLRI,xSeria) pos = iff(posReversal123 == 1 and posLRI == 1 , 1, iff(posReversal123 == -1 and posLRI == -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 )