Cette stratégie calcule les rails intermédiaires, supérieurs et inférieurs du canal de Keltner. Elle remplit la couleur SOUS les rails intermédiaires et inférieurs. Après avoir déterminé la direction du canal, elle traverse et achète et vend. C'est une sorte de stratégie de suivi des tendances.
L'indicateur de base est le canal de Keltner. Le rail du milieu du canal est la moyenne mobile pondérée sur N jours du prix typique (prix le plus élevé + prix le plus bas + prix de clôture) /3. Les lignes supérieures et inférieures du canal sont respectivement une moyenne mobile pondérée sur N jours distante de la ligne du milieu du canal.
Plus précisément, la stratégie juge principalement si le prix traverse le rail supérieur ou le rail inférieur, et prend des décisions longues ou courtes avec le rail du milieu comme limite.
En général, cette stratégie est relativement simple et directe, et c'est une stratégie de percée de prix commune. L'avantage est que l'idée est claire et facile à comprendre et à mettre en œuvre, ce qui convient aux débutants à apprendre. Mais il y a aussi certaines limitations. Elle est sensible aux paramètres, les résultats sont inégaux et nécessitent des tests et une optimisation répétés. Si elle peut être combinée avec des indicateurs de jugement plus complexes, elle peut former une stratégie de trading plus puissante.
/*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)