Stratégie de chronométrage de la moyenne mobile ADX double

Auteur:ChaoZhang est là., Date: le 12 juin 2023 à 15h48
Les étiquettes:

img

Résumé

La stratégie de synchronisation de la moyenne mobile ADX identifie les tendances en combinant les moyennes mobiles 2/20 et l'indicateur ADXR pour générer des signaux de trading au début des tendances.

La logique de la stratégie

La logique de base de la stratégie de chronométrage des doubles moyennes mobiles ADX repose sur les principales composantes suivantes:

  1. 2/20 Moyenne mobile exponentielle (EMA)

    • Utilise 2 EMA avec des paramètres différents de 2 et 20 jours.
    • Un croisement de prix à la hausse au-dessus de l'EMA à 2 jours est considéré comme un signal haussier.
    • Un croisement à la baisse des prix en dessous de l'EMA à 20 jours est considéré comme un signal baissier.
  2. Indicateur ADXR

    • ADXR est une variante de l'indicateur ADX.
    • Il calcule une moyenne mobile simple de l'ADX afin de compenser les fluctuations.
    • L'ADXR inférieur à un seuil implique une tendance plus faible.
    • L'ADXR supérieur à un seuil implique une tendance plus forte.
  3. Signaux de négociation

    • Un signal haussier est généré lorsque l'EMA de 2 jours Golden Cross AND ADXR est supérieur au seuil.
    • Un signal baissier est généré lorsque l'EMA à 20 jours Dead Cross AND ADXR est inférieur au seuil.
    • La combinaison avec l'ADXR filtre certaines fausses ruptures et améliore les signaux de tendance réels.

L'innovation principale de cette stratégie consiste à utiliser l'indicateur ADXR pour identifier les tendances à un stade initial, et à le combiner avec les signaux de moyenne mobile traditionnels pour améliorer la qualité et la stabilité.

Les avantages

Les principaux avantages de la stratégie de synchronisation ADX des moyennes mobiles doubles:

  1. En combinant deux MAs et un ADXR, les signaux sont plus précis et fiables, les faux signaux étant filtrés.
  2. Identifier les tendances précoces en utilisant l'ADXR pour détecter le stade initial des tendances.
  3. Adaptation flexible des paramètres ADXR pour s'adapter aux conditions changeantes du marché.
  4. Une logique simple et claire, facile à comprendre, pratique pour ajuster les paramètres.
  5. Applicable dans divers environnements de marché avec des performances historiques décentes.

Les risques

Il existe également plusieurs risques principaux pour cette stratégie:

  1. Un paramètre ADXR mal réglé peut entraîner des transactions manquantes.

    • Élargir la plage de paramètres ADXR ou ajuster par produit.
  2. Des signaux plus erronés peuvent se produire dans des conditions particulières du marché.

    • Considérez la combinaison avec d'autres indicateurs pour une filtration supplémentaire du signal.
  3. Les paramètres fixes de l'EMA ne s'adaptent pas aux changements du marché.

    • Test de la version optimisée avec paramètres EMA adaptatifs.
  4. L'impossibilité d'identifier les plages de négociation peut générer des transactions trop insignifiantes.

    • Ajoutez des logiques ou des indicateurs supplémentaires pour détecter les marchés variés.

Directions de renforcement

La stratégie peut être encore optimisée et améliorée par les aspects suivants:

  1. Optimisation des paramètres EMA pour une adaptation automatique aux conditions du marché.

  2. Élargir la plage de paramètres ADXR pour capturer des signaux de trading plus efficaces.

  3. Ajouter des indicateurs de jugement de tendance supplémentaires pour les signaux combinés pour améliorer la qualité.

  4. Ajouter des stratégies de stop loss et prendre des normes de profit pour contrôler les risques par transaction.

  5. Optimiser la gestion de l'argent pour une dimensionnement dynamique des positions en fonction de l'état du compte.

Conclusion

La stratégie de chronométrage de la moyenne mobile ADX double combine de manière innovante les moyennes mobiles doubles traditionnelles et l'indicateur ADXR pour améliorer la qualité du signal et améliorer la stabilité.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-12-05 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/04/2022
// 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
// The Average Directional Movement Index Rating (ADXR) measures the strength 
// of the Average Directional Movement Index (ADX). It's calculated by taking 
// the average of the current ADX and the ADX from one time period before 
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening 
// and weakening trends. However, because it represents an average of ADX, values 
// don't fluctuate as dramatically and some analysts believe the indicator helps 
// better display trends in volatile markets.
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

fADX(Len) =>
    up = ta.change(high)
    down = -ta.change(low)
    trur = ta.rma(ta.tr, Len)
    plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

ADXR(LengthADX,LengthADXR,Signal1,Signal2) =>
    pos = 0.0
    xADX = fADX(LengthADX)
    xADXR = (xADX + xADX[LengthADXR]) / 2
    pos := xADXR < Signal1 ? 1 : xADXR > Signal2 ? -1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & ADXR', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ ADXR  ═════●'
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input.float(13, step=0.01)
Signal2 = input.float(45, step=0.01)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosADXR = ADXR(LengthADX,LengthADXR,Signal1,Signal2)
iff_1 = posEMA20 == -1 and prePosADXR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosADXR == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
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)

Plus de