La stratégie de tendance haussière multi-EMA est une stratégie de suivi de tendance basée sur plusieurs moyennes mobiles exponentielles (EMA) de différentes périodes pour la détermination de la tendance.
La stratégie utilise 6 EMA de périodes de 10, 20, 50, 100, 150 et 200 jours. Ces EMA sont utilisées pour déterminer l'étape cyclique actuelle du marché. Lorsque des EMA à plus courte période (par exemple 10 jours) se croisent sur des EMA à plus longue période (par exemple 20 ou 50 jours), cela indique que le marché est entré dans la phase de marge d'une tendance haussière.
Plus précisément, la stratégie sera longue lorsque les conditions suivantes seront remplies:
Après avoir ouvert une position longue, un stop-loss de 8% est utilisé pour verrouiller les bénéfices. Cela signifie que la position sera maintenue ouverte tant que le prix ne tombera pas de plus de 8% par rapport au prix d'entrée. Une fois que le drawdown dépasse 8%, la position sera fermée pour arrêter la perte.
En résumé, l'idée clé de cette stratégie est d'entrer dans la tendance haussière lorsqu'elle est confirmée par l'alignement multiple de l'EMA, et d'utiliser le stop loss pour verrouiller les bénéfices.
La stratégie de tendance haussière Multi-EMA présente les points forts suivants:
Il y a aussi quelques risques à prendre en compte pour cette stratégie:
Pour faire face à ces risques, nous pouvons optimiser en ajustant les périodes EMA ou en incorporant des indicateurs auxiliaires pour un meilleur jugement.
Compte tenu des caractéristiques de cette stratégie, les optimisations futures peuvent se concentrer sur les aspects suivants:
Dans l'ensemble, la stratégie de tendance taureau multi-EMA est un système de suivi de tendance robuste et fiable, équilibrant la détermination de la tendance et le contrôle des risques.
/*backtest start: 2023-01-15 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('SirSeff\'s EMA Rainbow', overlay=true) // Testing Start dates testStartYear = input(2000, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2100, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false // Component Code Stop //TSP trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01 longStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - trailStop) math.max(stopValue, longStopPrice[1]) else 0 //PLOTS plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop') plot(ta.ema(close, 20)) plot(ta.ema(close, 50)) plot(ta.ema(close, 100)) plot(ta.ema(close, 150)) plot(ta.ema(close, 200)) //OPEN longCondition = ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200) if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod() strategy.entry("BUY1", strategy.long) if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod() strategy.entry("BUY2'", strategy.long) //CLOSE @ TSL if strategy.position_size > 0 and testPeriod() strategy.exit(id='TSP', stop=longStopPrice)