
La stratégie est basée sur le calcul du milieu, du haut et du bas des canaux Keltner, avec les couleurs de remplissage ABOVE et ABOVE. Après avoir jugé la direction des canaux, on effectue des achats et des ventes de rupture.
L’indicateur central est le canal de Keltner. La trajectoire du canal est la moyenne mobile pondérée de N jours de prix typiques (prix plus haut + prix plus bas + prix de clôture) / 3. La trajectoire du canal est la moyenne mobile pondérée de N jours de tranches de transactions séparées de la trajectoire du canal.
En particulier, la stratégie consiste à déterminer si le prix a franchi la trajectoire ascendante ou descendante, en utilisant la trajectoire intermédiaire pour prendre des décisions à plusieurs têtes ou à vide. Si le prix de clôture est supérieur à la trajectoire ascendante, faites plus; si le prix de clôture est inférieur à la trajectoire descendante, faites vide.
Cette stratégie est généralement simple et directe. Elle fait partie des stratégies de prix les plus courantes. Elle a l’avantage d’être clairement pensée, facile à comprendre et adaptée aux débutants.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © WMX_Q_System_Trading
//@version=3
strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true)
useTrueRange = input(true)
length = input(20, minval=5)
mult = input(2.618, minval=0.1)
mah =ema(ema( ema(high, length),length),length)
mal =ema(ema( ema(low, length),length),length)
range = useTrueRange ? tr : high - low
rangema =ema(ema( ema(range, length),length),length)
upper = mah + rangema * mult
lower = mal - rangema * mult
ma=(upper+lower)/2
uc = red
lc=green
u = plot(upper, color=uc, title="Upper")
basis=plot(ma, color=yellow, title="Basis")
l = plot(lower, color=lc, title="Lower")
fill(u, basis, color=uc, transp=95)
fill(l, basis, color=lc, transp=95)
strategy.entry("Long", strategy.long, stop = upper, when = strategy.position_size <= 0 and close >upper)
strategy.entry("Short", strategy.short, stop = lower, when = strategy.position_size >= 0 and close<lower)
if strategy.position_size > 0
strategy.exit("Stop Long", "Long", stop = ma)
if strategy.position_size < 0
strategy.exit("Stop Short", "Short", stop = ma)