Stratégie de suivi de tendance croisée de moyenne mobile


Date de création: 2023-12-12 12:24:11 Dernière modification: 2023-12-12 12:24:11
Copier: 0 Nombre de clics: 355
1
Suivre
1212
Abonnés

Stratégie de suivi de tendance croisée de moyenne mobile

Aperçu

La stratégie est basée sur la croisée des moyennes mobiles et des indicateurs ATR pour automatiser le suivi des tendances. Lorsque la ligne EMA rapide traverse la ligne EMA lente, il est pris comme position à plusieurs têtes; lorsque la ligne EMA rapide traverse la ligne EMA lente, il est pris comme position à court terme. De plus, en combinaison avec l’indicateur ATR pour déterminer la direction de la tendance, le signal de négociation n’est émis que lorsque l’ATR juge la direction de la tendance.

Principe de stratégie

La stratégie est basée sur deux indicateurs techniques:

  1. Ligne moyenne EMA: Ligne moyenne EMA utilisant deux paramètres différents pour la vitesse et la lenteur, considérée comme un signal à plusieurs têtes lorsque la ligne rapide traverse la ligne lente et comme un signal à vide lorsque la ligne basse traverse.

  2. Indicateur ATR: L’indicateur ATR permet de juger de l’ampleur et de la force des fluctuations des prix, ce qui permet de juger de la tendance actuelle. Lorsque le nombre d’ATR est faible, il est indiqué que le cours est en cours de stabilisation.

Il est utilisé pour rechercher des opportunités d’achat et de vente à travers les croisements des EMA, et en combinaison avec l’indicateur ATR, pour filtrer les signaux de négociation peu tendanciels et éviter d’être pris au piège lors d’une correction de la volatilité du marché.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Le fait de ne négocier que lorsque l’indicateur ATR est considéré comme tendance contribue à éviter d’être enfermé en cas de choc incertain.

  2. Il est facile et efficace de trouver des points d’achat et de vente en utilisant le principe de l’intersection de la ligne rapide et moyenne.

  3. La sensibilité et la douceur de l’EMA peuvent être ajustées en fonction des préférences individuelles en réglant les paramètres.

  4. Il suffit d’utiliser deux indicateurs simples pour mettre en œuvre un système de trading automatique complet, qui peut être facilement développé et optimisé pour la stratégie via l’éditeur Pine.

  5. Les paramètres ne doivent pas être ajustés fréquemment, et les stratégies ParameterSet et Forget sont simples.

Analyse des risques

Il y a aussi des risques à prendre en compte:

  1. Les croisements EMA sont susceptibles de produire de faux signaux et peuvent entraîner des pertes inutiles. Certains indicateurs peuvent être lissés en ajustant les paramètres EMA.

  2. L’indicateur ATR peut parfois être erroné dans ses jugements de la consolidation et de la tendance, ce qui entraîne des opportunités de négociation manquées. Le seuil numérique de l’ATR peut être assoupli de manière appropriée.

  3. La stratégie elle-même ne prend pas en compte l’analyse des facteurs à grande échelle, et il est difficile de juger par un croisement rapide et équilibré si un revirement majeur se produit, ce qui nécessite une intervention manuelle pour échapper au sommet.

L’impact de ces risques peut être atténué par des optimisations.

Direction d’optimisation

Les principales améliorations apportées à cette stratégie sont les suivantes:

  1. Il est possible d’envisager d’ajouter d’autres indicateurs pour former un système de combinaison d’indicateurs et améliorer l’exactitude des signaux. Par exemple, la combinaison de l’indicateur RSI évite le risque de sur-achat et de survente.

  2. Il est possible de choisir des paramètres plus appropriés en fonction des différentes variétés de transactions et des différentes zones de transactions, ce qui rend les paramètres de l’EMA et de l’ATR plus adaptés aux caractéristiques du marché actuel.

  3. L’optimisation des paramètres dynamiques peut être réalisée par des méthodes telles que l’apprentissage automatique. Les paramètres de l’indicateur peuvent être ajustés en fonction de la situation du marché en temps réel, au lieu d’utiliser des valeurs fixes et statiques.

Résumer

Cette stratégie est une stratégie de suivi de tendance très pratique. Il suffit d’une combinaison de deux indicateurs simples pour réaliser un système de trading relativement complet. Il est possible d’adapter les traders à différentes préférences en ajustant les paramètres.

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

// This strategy has been created for GMT trade 4h by Zhukov


//@version=5
strategy('ZhukovTrade', overlay=true, calc_on_every_tick=true, currency=currency.USD)

// INPUT:

// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input.int(title='Fast EMA', defval=100, minval=1, maxval=9999)
emaSlow = input.int(title='Slow EMA', defval=200, minval=1, maxval=9999)

// Option to select trade directions
tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both')

// Options that configure the backtest date range
startDate = input(title='Start Date', defval=timestamp('01 Jan 2023 00:00'))
endDate = input(title='End Date', defval=timestamp('31 Dec 2023 23:59'))


// CALCULATIONS:

// Use the built-in function to calculate two EMA lines
fastEMA = ta.ema(close, emaFast)
slowEMA = ta.ema(close, emaSlow)
emapos = ta.ema(close,200)

// PLOT:

// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.new(color.orange, 0), linewidth=2)
plot(series=slowEMA, color=color.new(color.blue, 0), linewidth=2)
plot(series=emapos, color=color.new(color.red, 0), linewidth=2)


// CONDITIONS:

// Check if the close time of the current bar falls inside the date range
inDateRange = true

// Translate input into trading conditions
longOK = tradeDirection == 'Long' or tradeDirection == 'Both'
shortOK = tradeDirection == 'Short' or tradeDirection == 'Both'

// Decide if we should go long or short using the built-in functions
longCondition = ta.crossover(fastEMA, slowEMA) 
shortCondition = ta.crossunder(fastEMA, slowEMA) 
// ORDERS:
// Set take profit and stop loss percentages
take_profit_percent = input(0, title="Take Profit Percent")
stop_loss_percent = input(0, title="Stop Loss Percent")
// Submit entry (or reverse) orders


atrPeriod = input(12, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

if longCondition and inDateRange 
    if longOK and direction<0

        strategy.entry(id='long', direction=strategy.long, alert_message = "LONG")
if shortCondition and inDateRange 
    if shortOK and direction>0
        strategy.entry(id='short', direction=strategy.short, alert_message = "SHORT")

// Submit exit orders in the cases where we trade only long or only short

if strategy.position_size > 0 and take_profit_percent
    strategy.exit(id='tp long',from_entry ="long",profit = take_profit_percent)
if strategy.position_size > 0 and stop_loss_percent
    strategy.exit(id='sl long',from_entry="long",loss=stop_loss_percent)

if strategy.position_size < 0 and stop_loss_percent
    strategy.exit(id='sl short',from_entry="short",loss=stop_loss_percent)
if strategy.position_size < 0 and take_profit_percent
    strategy.exit(id='tp short',from_entry="short",profit = take_profit_percent)