
La stratégie de confirmation de tendance est un système de trading quantitatif qui combine l’indice moyen de direction (ADX) et l’indicateur aléatoire (Stochastic Oscillator). L’idée centrale de la stratégie est de capturer les entrées et sorties potentielles en utilisant les zones de survente des indicateurs aléatoires et les signaux de croisement des lignes %K et %D en cas de confirmation d’une forte tendance. La stratégie consiste d’abord à confirmer par l’ADX si le marché est dans une tendance évidente et, lorsque la valeur de l’ADX dépasse le seuil fixé (considéré par Moyer25) pour indiquer qu’il existe une tendance suffisamment forte sur le marché; puis à combiner les signaux des indicateurs aléatoires dans la zone de survente comme condition d’achat et les signaux de traversée dans la zone de survente comme condition de vente.
Le principe de base de la stratégie est basé sur la collaboration de deux indicateurs principaux:
Calcul manuel de l’indice de direction moyen (ADX):
Applications de l’indicateur stochastique:
Logistique de génération de signaux:
Cette conception permet à la stratégie de saisir les opportunités de revers de prix dans un environnement de forte tendance, évitant ainsi les risques de transactions fréquentes dans des marchés sans tendance ou en faible tendance.
L’analyse approfondie de la mise en œuvre du code de la stratégie permet d’en dégager les avantages notables suivants:
Filtre de confirmation de la tendance: Filtre les signaux de faibles tendances ou de marchés en tremblement de terre à l’aide du seuil ADX (défaut 25) et n’exécute les transactions que lorsque la tendance est clairement établie, réduisant considérablement les faux signaux dans les marchés en tremblement de terre.
Le temps exact d’entrée et de sortie: Combinaison d’indicateurs aléatoires sur les zones de survente et de survente avec des signaux croisés capables de capturer les points de retournement potentiels lorsque le prix atteint des positions extrêmes, améliorant la précision des entrées et des sorties.
Personnalisation: La stratégie fournit plusieurs paramètres réglables, y compris les cycles ADX, la dépréciation de l’intensité de la tendance, les paramètres des indicateurs aléatoires et les niveaux de survente et de survente, que l’utilisateur peut ajuster de manière optimale en fonction des différentes conditions du marché et des préférences personnelles.
Une présentation graphique intuitiveLa stratégie consiste à afficher les lignes %K, %D des valeurs ADX et des indicateurs aléatoires, ainsi que les niveaux de dépréciation correspondants, afin de permettre aux traders de comprendre intuitivement l’état actuel du marché et les signaux potentiels.
Un système d’alerte parfait: Configuration intégrée des conditions d’alerte permettant une mise en correspondance transparente avec des plateformes tierces (comme 3Commas) via Webhook, permettant l’exécution automatisée des transactions.
Mécanisme de gestion des fondsLa stratégie utilise par défaut le pourcentage de la valeur nette du compte pour la gestion des positions (par défaut 10%), et fournit un mécanisme de contrôle des risques de base.
Mise en œuvre manuelle des indicateurs techniques: L’indicateur ADX utilise un calcul manuel plutôt qu’une invocation directe de la fonction de la bibliothèque, ce qui montre non seulement la transparence du processus de calcul, mais aussi la facilité de la modification personnalisée possible.
Bien que cette stratégie présente de nombreux avantages, elle présente les risques suivants:
Le point de basculement de la tendance: L’indicateur ADX est lui-même un indicateur de retard qui peut ne pas saisir en temps opportun les phases initiales ou les points de basculement d’une tendance, ce qui entraîne un retard ou une perte partielle du moment de l’entrée. Solution: La combinaison d’indicateurs de rupture de prix à court terme plus sensibles peut être envisagée comme confirmation auxiliaire.
Indicateur aléatoire de faux signaux: dans une forte tendance unidirectionnelle, l’indicateur aléatoire peut rester longtemps dans la zone de surachat ou de survente, générant un signal de reprise prématuré.
Paramètre SensibilitéLa performance de la stratégie dépend fortement de la configuration des paramètres, et différents environnements de marché peuvent nécessiter différentes combinaisons de paramètres. Solution: Il est recommandé de faire un retour sur l’histoire pour trouver les paramètres optimaux pour un marché particulier, ou envisager d’appliquer une méthode de paramétrage adaptatif.
Manque de mécanisme de prévention: La stratégie actuelle n’a que des conditions d’entrée et de sortie, il n’y a pas de mécanisme de stop-loss explicite, il est possible de faire face à des pertes plus importantes dans des conditions de marché extrêmes.
Dépendance du signal unique: la stratégie repose uniquement sur des signaux combinés d’ADX et d’indicateurs aléatoires et manque d’analyse multi-angles du marché. Solution: des indicateurs de volume de transaction ou d’autres indicateurs techniques peuvent être introduits comme conditions de confirmation supplémentaires.
Risques de résistance à une forte tendanceRésolution: Augmenter le sens de la tendance et ne négocier que dans le sens de la tendance positive.
En fonction des principes de la stratégie et des risques présents, voici quelques orientations d’optimisation à considérer:
Système de paramètres adaptatifs: la conception des niveaux de survente et de survente de l’indicateur aléatoire ADX comme des paramètres d’adaptation basés sur la volatilité historique, permettant à la stratégie d’ajuster la sensibilité en fonction de la dynamique de l’état du marché. Cette amélioration permet à la stratégie de fonctionner de manière cohérente dans différents environnements de marché sans avoir besoin d’ajuster les paramètres manuellement fréquemment.
Filtrage de la tendance: augmenter le jugement de la direction de la tendance (par exemple, en utilisant la relation +DI et -DI), en permettant à la stratégie de ne rechercher que des opportunités de plus dans la tendance à la hausse, de rechercher des opportunités de dépréciation dans la tendance à la baisse et d’éviter le risque élevé d’opérations de revers.
Analyse de plusieurs périodesL’introduction d’un mécanisme de confirmation de tendance pour les périodes plus élevées, afin de garantir que la direction des transactions est cohérente avec les tendances plus cycliques, améliore les taux de victoires.
Système d’arrêt dynamiqueLe stop-loss dynamique, basé sur l’ATR ou sur la volatilité, protège les positions déjà rentables et limite le risque de perte maximale d’une seule transaction.
Confirmation de la livraison: l’ajout de l’analyse de volume de transactions comme condition de confirmation du signal, l’exécution des transactions uniquement si le volume de transactions est soutenu, afin d’éviter les faux signaux dans un environnement de faible liquidité.
Optimisation de l’entréeConsidérez une stratégie de construction de positions par lots, répartissez les fonds proportionnellement après le déclenchement du signal initial, augmentez les positions à mesure que les prix évoluent dans la direction favorable, réduisez le risque d’entrée unique.
Le renforcement de l’apprentissage automatique: Introduction de modèles d’apprentissage automatique simples, évaluation de la classification des signaux historiques, identification des caractéristiques du modèle ayant une forte probabilité de réussite, amélioration de la sélectivité de la stratégie.
Filtre de période de transaction• Augmenter les limites de temps de négociation, éviter les périodes de marché à faible liquidité ou à forte volatilité, réduire les risques liés aux mouvements anormaux.
Ces orientations d’optimisation visent à améliorer l’adaptabilité, la stabilité et la rentabilité à long terme des stratégies, leur permettant de maintenir une performance relativement stable dans divers environnements de marché.
La stratégie de confirmation de tendance de choc aléatoire construit un système de négociation complet avec un mécanisme de confirmation de tendance et des signaux de revers de prix extrêmement importants en combinant les caractéristiques de sur-achat et de survente des indicateurs de force de tendance de l’ADX. Le principal avantage de cette stratégie réside dans la capacité de filtrer efficacement les signaux de bruit dans un environnement de tendance faible, d’exécuter des transactions uniquement lorsqu’une tendance évidente est confirmée et d’utiliser des indicateurs aléatoires pour capturer des revers potentiels.
La stratégie implémente le processus de calcul manuel des indicateurs ADX, montre les principes mathématiques derrière les indicateurs techniques et offre une plus grande flexibilité et adaptabilité grâce à une conception paramétrique. En outre, le système d’alerte intégré facilite la mise en correspondance automatique avec les plateformes de négociation externes.
Malgré les risques liés au retard de la tendance, aux faux signaux d’indicateurs aléatoires et au manque de mécanismes d’arrêt des pertes, ces risques peuvent être efficacement gérés par des mesures d’optimisation recommandées, telles que des paramètres d’adaptation, des filtres sur la direction de la tendance, l’analyse de plusieurs périodes et l’arrêt dynamique.
Dans l’ensemble, la stratégie offre un cadre équilibré de suivi de tendance et de trading inversé, adapté à une utilisation sur des marchés avec des caractéristiques de tendance claires. Avec des ajustements et des améliorations de paramètres raisonnables, elle a le potentiel d’être un système de trading de tendance robuste.
/*backtest
start: 2024-03-05 00:00:00
end: 2025-03-03 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("MY3 ADX+Stokastik", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ADX Parametreleri
adxPeriod = input.int(14, title="ADX Periyodu", minval=1)
adxThreshold = input.float(25.0, title="Trend Gücü Eşiği", step=0.1)
// Stokastik Parametreleri
stochKPeriod = input.int(14, title="Stokastik %K Periyodu", minval=1)
stochSmoothK = input.int(3, title="Stokastik Smooth", minval=1)
stochDPeriod = input.int(3, title="Stokastik %D Periyodu", minval=1)
stochOverbought = input.int(80, title="Aşırı Alım Seviyesi", minval=50)
stochOversold = input.int(20, title="Aşırı Satım Seviyesi", maxval=50)
// ADX Hesaplaması (Manuel)
// Hesaplamada kullanılan temel unsurlar
upMove = high - high[1]
downMove = low[1] - low
plusDM = (upMove > downMove and upMove > 0) ? upMove : 0.0
minusDM = (downMove > upMove and downMove > 0) ? downMove : 0.0
// True Range hesaplaması
tr0 = high - low
tr1 = math.abs(high - close[1])
tr2 = math.abs(low - close[1])
trueRange = math.max(math.max(tr0, tr1), tr2)
// ATR hesaplaması: Wilder'in Yumuşak Ortalaması
atrValue = ta.rma(trueRange, adxPeriod)
plusDI = 100 * ta.rma(plusDM, adxPeriod) / atrValue
minusDI = 100 * ta.rma(minusDM, adxPeriod) / atrValue
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adxValue = ta.rma(dx, adxPeriod)
// Stokastik Hesaplaması
k = ta.sma(ta.stoch(close, high, low, stochKPeriod), stochSmoothK)
d = ta.sma(k, stochDPeriod)
// Alım ve Satım Koşulları:
// Alım: ADX belirlenen eşik üzerinde ve Stokastik, aşırı satım bölgesinde (k < stochOversold) iken %K, %D kesişimi yukarı doğru.
buySignal = (adxValue > adxThreshold) and ta.crossover(k, d) and (k < stochOversold)
// Satım: ADX belirlenen eşik üzerinde ve Stokastik, aşırı alım bölgesinde (k > stochOverbought) iken %K, %D kesişimi aşağı doğru.
sellSignal = (adxValue > adxThreshold) and ta.crossunder(k, d) and (k > stochOverbought)
// İşlem Emirleri
if (buySignal)
strategy.entry("Long", strategy.long)
if (sellSignal)
strategy.close("Long")
// Göstergelerin Grafik Üzerinde Gösterimi
plot(adxValue, color=color.blue, title="ADX")
hline(adxThreshold, color=color.gray, linestyle=hline.style_dotted, title="ADX Eşiği")
plot(k, color=color.green, title="Stokastik %K")
plot(d, color=color.orange, title="Stokastik %D")
hline(stochOverbought, color=color.red, linestyle=hline.style_dotted, title="Aşırı Alım")
hline(stochOversold, color=color.green, linestyle=hline.style_dotted, title="Aşırı Satım")
// 3Commas için Uyarı Koşulları (Webhook entegrasyonu için kullanılacak)
alertcondition(buySignal, title="Alım Uyarısı", message="BUY_SIGNAL")
alertcondition(sellSignal, title="Satım Uyarısı", message="SELL_SIGNAL")