Stratégie de suivi de tendance basée sur un double écart moyen mobile combiné à l'indicateur ATR


Date de création: 2023-11-16 11:25:23 Dernière modification: 2023-11-16 11:25:23
Copier: 0 Nombre de clics: 855
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance basée sur un double écart moyen mobile combiné à l’indicateur ATR

Aperçu

Cette stratégie utilise un signal de formation de fourches dorées et de fourches mortes de la double ligne moyenne EMA, en combinaison avec l’indicateur ATR pour juger de la volatilité du marché et réaliser une stratégie de suivi de la tendance à la baisse et à la hausse. Une ligne douce de fourche dorée est considérée comme un signal à plusieurs têtes lorsqu’elle est rapide et que l’indicateur ATR est inférieur à la veille.

Principe de stratégie

  1. Utilisez une moyenne double EMA de 20 et 55 longueurs. Lorsque la ligne rapide est traversée par une ligne lente, elle est considérée comme un signal à plusieurs têtes. Lorsque la ligne rapide est traversée par une ligne lente, elle est considérée comme un signal à vide.

  2. L’indicateur ATR est utilisé pour la longueur de 14. L’indicateur ATR peut refléter la volatilité et le niveau de risque du marché. Lorsque l’ATR est inférieur à la veille, il indique que la volatilité du marché s’est atténuée et qu’il est approprié d’intervenir plus; lorsque l’ATR est supérieur à la veille, il indique que la volatilité du marché s’est accrue et qu’il est approprié d’intervenir.

  3. Faire plus que sur la ligne rapide avec un ATR inférieur à la journée précédente; faire moins que sur la ligne rapide avec un ATR supérieur à la journée précédente. Évitez d’intervenir facilement lorsque le marché est plus volatile.

  4. L’indicateur ATR est également utilisé pour définir le stop loss et le stop stop. Le stop loss est le prix actuel moins l’ATR multiplié par le stop loss multiple; le stop stop est le prix actuel plus l’ATR multiplié par le stop stop multiple.

  5. Le multiplicateur de stop-loss est par défaut 3 fois l’ATR, le multiplicateur de stop-loss est par défaut 3 fois l’ATR. Cela permet à la fois le stop-loss et le stop-loss de suivre dynamiquement les fluctuations du marché.

Avantages stratégiques

  1. L’utilisation d’un système de double équilibre permet de fournir une confirmation plus forte du jugement sur l’état de vide.

  2. L’introduction de l’indicateur ATR, qui permet aux stratégies d’intervenir uniquement en cas de faibles fluctuations, permet de filtrer de nombreux faux signaux et de réduire le risque systémique.

  3. L’arrêt de perte ATR dynamique permet de régler l’arrêt de perte en fonction des fluctuations du marché. Évitez de vous arrêter trop près ou de vous arrêter trop bas.

  4. Il est possible d’optimiser la convergence des lignes pour optimiser davantage les pertes du système.

  5. Les niveaux d’arrêt et d’arrêt peuvent être définis dynamiquement en fonction de l’ATR, ce qui est plus conforme à la logique de négociation tendancielle, les arrêts ne sont pas trop sensibles et les arrêts ne sont pas trop indulgents.

Risque stratégique

  1. Les systèmes bi-lineaires jugent que le signal est en retard. Il est possible de manquer une tendance à court terme plus forte.

  2. En cas de forte volatilité, l’ATR augmente et peut manquer le moment d’intervention. Les paramètres ATR doivent être ajustés en conséquence.

  3. Les positions à long terme peuvent avoir des points d’arrêt trop proches et doivent être assorties d’un assouplissement approprié de la force de tendance.

  4. Le système de ligne moyenne est moins efficace pour juger la courbure du disque. Il doit être confirmé par d’autres indicateurs.

  5. Les paramètres ATR doivent être ajustés en fonction de la variété et de la période. Un mauvais choix de paramètres peut affecter les pertes du système.

Orientation de l’optimisation de la stratégie

  1. On peut tester des combinaisons de valeurs moyennes de paramètres de différentes longueurs pour trouver celles qui correspondent le mieux aux caractéristiques tendancielles de la variété.

  2. D’autres indicateurs, tels que MACD, KD, peuvent être introduits pour confirmer le signal de croisement de la ligne d’équilibre et améliorer la Entscheidungssicherheit.

  3. Les paramètres ATR peuvent être optimisés par retracement pour mieux correspondre aux caractéristiques de stabilité de la variété.

  4. Le facteur ATR peut être configuré en tant que variable réglable pour ajuster dynamiquement la position de stop loss en fonction de la force de la tendance.

  5. Il peut être combiné avec un indicateur de la force de la tendance pour réduire les exigences de stop loss lorsque la tendance est faible et augmenter les exigences de stop loss lorsque la tendance est forte.

Résumer

La stratégie intègre la prise de tendance de la moyenne des deux EMA et le contrôle du risque de l’indicateur de volatilité ATR, formant un système de suivi de tendance plus complet. L’optimisation de la stratégie est axée sur l’ajustement de la moyenne et des paramètres ATR pour les rendre plus conformes aux caractéristiques de la variété, ainsi que sur la conception d’un mécanisme de stop-loss dynamique pour suivre les changements d’intensité de la tendance.

Code source de la stratégie
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// **********************************************
// PtahX EMA/ATR Strategy Public Release
// EMA Strategy with ATR & "Fear Factor" built in 
// written by PtahX October 2019
// * modifications welcome 
// * please let me know if you improve it so I can continue to learn :) 
// * use at your own risk - I'm a new programmer and still learning
// * Best of luck on your trades!!

// Take Profit (TP) option based on ATR or MA Crossover 
//***********************************************

strategy(title="PtahX EMA/ATR Strategy", overlay=true, pyramiding=1, calc_on_every_tick=true, default_qty_value=1, initial_capital=10000, slippage=2)

//***************************** 
// Global Inputs
//***************************** 

fastMA = input(title="Fast Moving Average", defval=20, step=1)
slowMA = input(title="Slow Moving Average", defval=55, step=1)
source = input(close, title="Source")
atrLength = input(title="ATR Length", defval=14, minval=7, step=1)
slMultiplier = input(title="Stop Loss Multiple", type=input.float, defval=3, minval=1, step=0.2)
tpMultiplier = input(title= "Take Profit Multiple", type=input.float, defval=3, minval=1, step=0.2)
maPlot = input(true, title="Plot EMA?")
maCrossoverExit =  input(false, title="Exit with Slow MA Crossover?")
atrExit = input(true, title="Exit with ATR?")
//***********************************
// ATR
//***********************************
atr = atr(atrLength)


//***********************************
// Volatility Filter
//**********************************
// During uptrends the ATR indicator tends to post lower volatility. 
// During downtrends, the ATR indicator tends to post higher volatility

volatilityBullish = atr < atr[1] 
volatilityBearish = atr > atr[1]


//***********************************
// Moving Averages
//***********************************
    
// Double Line Plot Code (used for Entries & Exits not plotted by default)
fast = ema(source, fastMA)
slow = ema(source, slowMA)
maLong = crossover(fast, slow)
maShort = crossunder(fast, slow) 

// Single Line Plot Code
bullish = slow > slow[1]
bearish = slow < slow[1]
barColor = bullish ? color.green : bearish ? color.red : color.blue


//***************************** 
// Entries
//***************************** 

entryLong = maLong and volatilityBullish
entryShort = maShort and volatilityBearish

if entryLong
    sLoss = source - atr * slMultiplier
    strategy.entry("Long", strategy.long, qty=10)
    strategy.exit("Long Exit", "Long", stop=sLoss)


if entryShort
    sLoss = source + atr * slMultiplier
    tProfit = close > slowMA
    strategy.entry("Short", strategy.short, qty=10)
    strategy.exit("Short Exit", "Short", stop=sLoss)


//***************************** 
// Exits
//*****************************

exitLong = 0
exitShort = 0

if maCrossoverExit
    exitLong = maShort
    exitShort = maLong
    strategy.exit("Long Exit", "Long", when = exitLong)
    strategy.exit("Short Exit", "Short", when = exitShort)

if atrExit
    exitLong = source + atr * tpMultiplier
    exitShort = source - atr * tpMultiplier
    strategy.exit("Long Exit", "Long", limit = exitLong)
    strategy.exit("Short Exit", "Short", limit = exitShort)


//******************************
// ATR Based Exit/ Stop Plotting 
//******************************

// Stop Loss Calculations
longStopLoss = source - atr(atrLength) * slMultiplier
shortStopLoss = source + atr(atrLength) * slMultiplier

longTakeProfit = source - atr(atrLength) * slMultiplier
shortTakeProfit = source + atr(atrLength) * slMultiplier
  

//*********************************
//Chart Plotting
//*********************************

//ATR Based Stop Losses
plot(shortStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Short Stop Loss")
plot(longStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Long Stop Loss")


// Single Slow EMA Option
plot(slow and maPlot ? slow : na, title="EMA", color=barColor, linewidth=3)