
La stratégie de suivi de la tendance de la triple EMA est une stratégie très appropriée pour suivre les tendances du marché. Elle utilise trois EMA de différentes périodes comme signal de prise de position, établissant des positions de plus ou de moins en cas de confirmation de tendance suffisante.
L’avantage de cette stratégie est qu’elle permet de réduire les faux signaux et d’assurer une entrée après que la tendance ait atteint sa pleine force. En outre, elle est dotée d’un système de stop-loss adaptatif qui peut suivre les pertes en fonction de la volatilité du marché, ce qui permet une meilleure gestion des risques.
La stratégie utilise les trois EMA des cycles 7, 14 et 21 comme indicateurs de signaux de position. La logique est de faire plus lorsque le prix traverse simultanément les trois EMA et de faire moins lorsque le prix traverse simultanément les trois EMA.
Cette conception permet de réduire les faux signaux et de s’assurer que la tendance est suffisamment claire pour pouvoir entrer. En même temps, les trois cycles EMA sont bien réglés et permettent de saisir en temps opportun l’apparition d’une tendance du marché.
La stratégie utilise un système de stop-loss adaptatif basé sur l’ATR et le maximum de rétractation. Il calcule en temps réel les fluctuations de prix et établit une ligne de stop-loss en fonction de celles-ci.
Lors d’une hausse, la ligne d’arrêt se déplace avec un nouveau sommet et a un meilleur effet de suivi. Lorsque le prix revient au bas de la zone de couverture, la ligne d’arrêt est activée et la position est fermée. Cela permet de contrôler le risque d’arrêt en fonction de la situation du marché.
La stratégie utilise un stop-loss à proportion fixe. Une fois que la position est ouverte, une ligne de stop-loss est définie à une proportion plus élevée que le prix d’entrée.
L’avantage d’un stop-loss à taux fixe est qu’il permet de prévoir un profit cible et de se retirer une fois atteint. Il permet également d’éviter le risque d’une rechute. Le stop-loss peut être ajusté en fonction des besoins.
Il est possible de combiner des indicateurs de tendance afin d’éviter les positions aveugles en cas de choc. Il est également possible d’utiliser un stop-loss mobile ou un stop-loss ratio, ce qui rend le stop-loss plus flexible. Dans l’ensemble, le jugement artificiel est toujours nécessaire pour accompagner l’utilisation de la stratégie.
La stratégie peut également être optimisée dans les domaines suivants:
L’utilisation de plus d’indicateurs pour déterminer le moment de l’entrée, tels que MACD, KD, etc., pour éviter d’être piégé dans une situation de choc.
Essayez de déplacer le frein, ou de faire des gains par rapport au frein, ce qui rend le frein plus flexible.
L’ajout d’un mécanisme de suivi à la baisse dans le mode stop-loss permet de suivre à nouveau les points bas si le prix baisse à nouveau, ce qui permet de contrôler le risque.
Adapter les paramètres du cycle EMA en fonction des caractéristiques des différentes variétés afin d’optimiser le jugement sur les tendances.
Ajout d’un module de gestion des positions permettant d’ajuster les positions individuelles en fonction du taux d’utilisation des fonds.
La stratégie de suivi de la tendance triple EMA est une stratégie de suivi de la tendance très pratique. Elle possède une forte capacité de jugement de la tendance, ainsi qu’un mécanisme d’arrêt et de perte adaptatif, qui permet de gérer automatiquement les commandes. Du point de vue de l’optimisation, le système d’arrêt et de perte peut être amélioré davantage, ce qui lui permet de s’adapter aux conditions du marché en temps réel.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
ema_1 = ema(close, input(7))
ema_2 = ema(close, input(12))
ema_3 = ema(close, input(21))
Take_profit= ((input (4))/100)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)
length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
var max = src
var min = src
var uptrend = true
var stop = 0.0
atrM = nz(atr(atrlen) * atrfactor, tr)
max := max(max, src)
min := min(min, src)
stop := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
uptrend := src - stop >= 0.0
if uptrend != nz(uptrend[1], true)
max := src
min := src
stop := uptrend ? max - atrM : min + atrM
[stop, uptrend]
[vStop, uptrend] = volStop(src, length, factor)
go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3)
closeLong = close > longTakeProfit or crossunder(close, vStop)
//Entry
strategy.entry(id="long", long = true, when = go_long and window())
//Exit
strategy.close("long", when = closeLong and window())
plot(vStop,"Vstop", color.black, linewidth=2)
plot(ema_1,"EMA Short", color.green, linewidth=1)
plot(ema_2,"EMA Mid", color.purple, linewidth=1)
plot(ema_3,"EMA Long", color.red, linewidth=1)