Ceci est un article optimisé pour le référencement sur la stratégie Keltner Channel Stop Loss Take Profit:
La stratégie Keltner Channel Stop Loss Take Profit optimise les décisions de trading basées sur l'analyse Keltner Channel en incorporant des règles de stop loss et de take profit. Elle surveille la relation de prix avec les bandes supérieures et inférieures du canal, entre dans des trades longs ou courts sur les ruptures et équilibre le risque et la récompense en fonction des niveaux optimaux de stop loss et de take profit.
Calculer les bandes médiane, supérieure et inférieure du canal de Keltner.
Considérez les opportunités longues lorsque le prix touche la bande supérieure et les opportunités courtes lorsque le prix touche la bande inférieure.
Entrez des positions longues sur les écarts de bande supérieure et des positions courtes sur les écarts de bande inférieure.
Fixer un objectif de prise de profit à un certain pourcentage au-dessus du prix d'entrée et un objectif de stop loss à un certain pourcentage au-dessous du prix d'entrée.
L'avantage de cette stratégie est l'introduction de règles de stop loss et de prise de profit pour réduire les pertes à temps lorsque la tendance va mal, et prendre des bénéfices avant la fin de la vague.
Les paramètres peuvent être optimisés pour différents actifs afin d'obtenir le meilleur équilibre risque-rendement.
Le canal Keltner détermine la direction de la tendance
Arrêter la perte et prendre profit optimise la récompense
L'entrée et la sortie lisses empêchent les fausses ruptures
Paramètres flexibles pour les ajustements
Combinable avec d'autres indicateurs
Les ratios stop-loss et take profit doivent être augmentés
Certains risques de stop loss demeurent
Les canaux peuvent être brisés avec des pertes.
Les petites pertes de stop provoquent des arrêts fréquents
La stratégie Keltner Stop Loss Take Profit Optimise le trading traditionnel en contrôlant les risques tout en suivant la tendance.
/*backtest start: 2023-08-15 00:00:00 end: 2023-08-23 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Optimized Keltner Channels Strategy for BTC", overlay=true) length = input(9, minval=1) mult = input(1.0, "Multiplier") src = input(close, title="Source") exp = input(true, "Use Exponential MA") BandsStyle = input("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style") atrlength = input(18, "ATR Length") sl = input(defval=22, minval=0, title="Stop Loss (%)") tp = input(defval=21, minval=0, title="Take Profit (%)") esma(source, length)=> s = sma(source, length) e = ema(source, length) exp ? e : s ma = esma(src, length) rangema = BandsStyle == "True Range" ? rma(tr(true), length) : BandsStyle == "Average True Range" ? atr(atrlength) : rma(high - low, length) upper = ma + rangema * mult lower = ma - rangema * mult c = color.blue u = plot(upper, color=color.green, title="Upper") plot(ma, color=#0094FF, title="Basis") l = plot(lower, color=color.red, title="Lower") fill(u, l, color=#0094FF, transp=95, title="Background") crossUpper = crossover(src, upper) crossLower = crossunder(src, lower) bprice = 0.0 bprice := crossUpper ? close+syminfo.mintick : nz(bprice[1]) sprice = 0.0 sprice := crossLower ? close-syminfo.mintick : nz(sprice[1]) crossBcond = false crossBcond := crossUpper ? true : na(crossBcond[1]) ? false : crossBcond[1] crossScond = false crossScond := crossLower ? true : na(crossScond[1]) ? false : crossScond[1] cancelBcond = crossBcond and (src < ma or high >= bprice ) cancelScond = crossScond and (src > ma or low <= sprice ) if (cancelBcond) strategy.cancel("KltChLE") if (crossUpper) strategy.entry("KltChLE", strategy.long, stop=bprice, comment="Long") if (cancelScond) strategy.cancel("KltChSE") if (crossLower) strategy.entry("KltChSE", strategy.short, stop=sprice, comment="Short") strategy.exit("long exit", "KltChLE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick) strategy.exit("Short exit", "KltChSE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick) plot(bprice, color=color.green) plot(sprice, color=color.red)