Cette stratégie est basée sur des moyennes mobiles. Elle s'effectue longtemps après une correction à court terme d'une tendance à la hausse. Elle appartient à la stratégie de suivi de tendance.
Cette stratégie utilise 3 lignes EMA avec des périodes différentes. La ligne EMA1 avec une période plus courte est utilisée pour juger de la tendance à court terme. Les lignes EMA2 et EMA3 avec des périodes plus longues sont utilisées pour déterminer la tendance à moyen et long terme, où EMA3 a la plus longue période. Lorsque la ligne EMA1 à court terme monte, cela indique qu'elle est dans une tendance à la hausse à court terme. Si EMA2 est supérieure à EMA3, cela signifie que la moyenne à long terme est également en tendance à la hausse, ce qui est un bon moment pour une entrée longue. Plus précisément, le signal de trading est généré lorsque le prix traverse la ligne EMA1. Pour vérifier davantage la stabilité de la tendance, il est nécessaire que EMA2 et EMA3 pointent vers le haut et que la dernière barre augmente également dans la barre de filtrage de la génération de signaux, ce qui aide à éliminer les signaux de corrections erronées à court terme.
La ligne stop loss et la ligne take profit sont réglées pour verrouiller les profits et les pertes.
L'avantage majeur de cette stratégie est qu'elle permet de capturer efficacement la tendance à la hausse à moyen et long terme tout en tenant compte de la correction à court terme, ce qui rend son temps de détention et son marge de profit considérables.
En outre, l'installation d'un stop loss et d'un take profit rend également son risque contrôlable.
Le plus grand risque de cette stratégie est qu'elle ne peut pas déterminer le point d'inversion de la tendance. Si la tendance à moyen et long terme s'inverse alors que la tendance à court terme est toujours en hausse, elle générera un mauvais signal long pour entrer sur le marché, ce qui peut entraîner une plus grande perte.
En outre, des pertes commerciales inutiles peuvent également survenir sur les marchés à fourchette.
Il convient d'envisager d'ajuster les paramètres du cycle de l'EMA en fonction des caractéristiques de variétés commerciales spécifiques afin de mieux correspondre au cycle moyen-long de la variété.
La combinaison avec d'autres indicateurs pour déterminer la fin des ajustements à court terme permet d'éviter une mauvaise saisie.
Il convient d'envisager d'ajuster le coefficient d'arrêt des pertes en fonction de la valeur ATR, en relâchant de manière appropriée la distance d'arrêt des pertes lorsque l'ATR est grande.
En général, cette stratégie est une tendance à moyen et long terme suivant une stratégie qui fonctionne bien. Elle détermine la direction de la tendance à travers les moyennes mobiles, le timing d'entrée à travers les signaux de rebond, et bloque les profits et les pertes à travers les paramètres de stop loss et take profit. Mais il y a aussi un certain risque de suivre la tendance à l'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)