
Cette stratégie est basée sur des moyennes mobiles, et s’applique au type de stratégie de suivi de tendance qui consiste à ouvrir des positions plus élevées après un rajustement à court terme.
La stratégie utilise 3 lignes EMA de différentes périodes, la ligne EMA1 pour déterminer la tendance à court terme, qui est plus courte que les deux autres lignes EMA; la ligne EMA2 et la ligne EMA3 pour déterminer la tendance à moyen terme, dont la ligne EMA3 est la plus longue. Lorsque la ligne EMA1 à court terme s’arrête, l’indicateur est dans la tendance à la hausse à court terme, alors la ligne EMA2 au-dessus de la ligne EMA3 indique que le moyen terme est également dans la tendance à la hausse, donc c’est un meilleur moment pour faire du trading.
La mise en place d’une ligne d’arrêt et d’une ligne d’arrêt permettent de bloquer les pertes. Plus précisément, la ligne d’arrêt se déplace en fonction de la valeur de l’ATR, et la ligne d’arrêt est également configurée en fonction de la valeur de l’ATR.
Le plus grand avantage de cette stratégie est qu’elle permet de capturer efficacement les tendances à la hausse à moyen et long terme, tout en tenant compte des ajustements à court terme, ce qui lui permet d’avoir un temps de position et une marge de profit considérables.
Le système d’arrêt et d’arrêt des pertes permet également de contrôler les risques.
Le plus grand risque de cette stratégie réside dans l’incapacité de déterminer le point de basculement de la tendance. Si la tendance de la ligne médiane est inversée et que la courte période est encore en hausse, il peut y avoir une entrée en bourse avec un signal de multiplication erroné, ce qui peut entraîner des pertes plus importantes.
En outre, il peut y avoir des pertes de transactions inutiles lors de la liquidation.
On peut envisager d’ajuster les paramètres de cycle de l’EMA en fonction des caractéristiques de la variété de négociation spécifique, afin de mieux correspondre au cycle de la ligne moyenne longue de cette variété.
La fin de l’ajustement à court terme peut être jugée en combinaison avec d’autres indicateurs, afin d’éviter une entrée erronée.
On peut envisager d’ajuster le coefficient d’arrêt en fonction de la taille de l’ATR, en assouplissant de manière appropriée la distance d’arrêt lorsque l’ATR est plus grand.
Cette stratégie est généralement une stratégie de suivi de la tendance des lignes longues et moyennes qui fonctionne bien. La direction de la tendance est déterminée par les moyennes mobiles, le signal de rétroaction détermine le moment d’entrée et le paramètre de stop-loss pour bloquer les pertes. Mais il existe également un certain risque de suivi aveugle.
/*backtest
start: 2024-01-21 00:00:00
end: 2024-01-28 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Trend Continuation', shorttitle='Trend_Continuation', overlay=true)
// Input
price = input(close)
MA1_Length = input.int(50, step=1, title='EMA 1 Length')
MA2_Length = input.int(80, step=1, title='EMA 2 Length')
MA3_Length = input.int(200, step=1, title='EMA 3 Length')
numberOfCandles = input(1)
slATRFactor = input(3.5)
tpATRFactor = input(3.5)
ATRLength = input(14)
// switch1=input(true, title="Show Bar Color?")
// switch2=input(true, title="Show Moving Averages?")
// Calculation
MA1 = ta.ema(price, MA1_Length)
MA2 = ta.ema(price, MA2_Length)
MA3 = ta.ema(price, MA3_Length)
prev_price = close[numberOfCandles]
// Strategy
allPositive = true
for i = 0 to numberOfCandles - 1 by 1
if close[i] < close[i + 1] or close[i] < MA1
allPositive := false
break
long = MA2 > MA3 and price > MA1 and ta.crossunder(prev_price, MA1) and allPositive
// short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1) and change(MA2)<0 )
if long
strategy.entry('Long', strategy.long, comment='Long')
bought = strategy.position_size[0] > strategy.position_size[1]
atrAtLong = ta.valuewhen(bought, ta.atr(ATRLength), 0)
// Stop loss and take profit
slPrice = strategy.position_avg_price - slATRFactor * atrAtLong
tpPrice = strategy.position_avg_price + tpATRFactor * atrAtLong
SL = plot(slPrice, title='SL', style=plot.style_linebr, linewidth=1, color=color.new(color.red, 0))
if price >= tpPrice and price < MA1
strategy.close('Long')
if price < strategy.position_avg_price
strategy.exit('Stop Loss', 'Long', stop=slPrice)
// Strategy Alert
alertcondition(long, title='Long Alert', message='Go Long!')
// alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!')
// MA trend bar color
// up = change(MA2)>0 and change(MA3)>0
// dn = change(MA2)<0 and change(MA3)<0
// bar_color = up?green:dn?red:blue
// barcolor(switch1?bar_color:na)
// MA trend output color
change_1 = ta.change(MA2)
MA2_color = ta.change(MA2) > 0 ? color.lime : change_1 < 0 ? color.red : color.blue
change_2 = ta.change(MA3)
MA3_color = ta.change(MA3) > 0 ? color.lime : change_2 < 0 ? color.red : color.blue
// MA output
// EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color)
// EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color)
// fill(EMA2, EMA3, color=silver, transp=50)
color_1 = MA2 > MA3 ? color.green : color.red
EMA1 = plot(MA1, title='EMA 1', style=plot.style_linebr, linewidth=1, color=color_1)
// EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=2, color=blue)
// EMA3 = plot(MA3, title="EMA 3", style=linebr, linewidth=3, color=red)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)