Stratégie de poursuite de tendance forte


Date de création: 2024-01-29 16:57:01 Dernière modification: 2024-01-29 16:57:01
Copier: 0 Nombre de clics: 536
1
Suivre
1617
Abonnés

Stratégie de poursuite de tendance forte

Aperçu

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.

Principe de stratégie

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.

Analyse des avantages

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.

Analyse des 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.

Direction d’optimisation

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.

Résumer

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.

Code source de la stratégie
/*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)