Стратегия Keltner Channel Stop Loss Take Profit

Автор:Чао Чжан, Дата: 15 сентября 2023 14:41:46
Тэги:

Это оптимизированная для SEO статья о стратегии Keltner Channel Stop Loss Take Profit:

Обзор стратегии

Стратегия Keltner Channel Stop Loss Take Profit оптимизирует торговые решения на основе анализа Keltner Channel путем включения правил стоп-лосса и тока прибыли.

Логика стратегии

  1. Вычислить средние, верхние и нижние полосы Келтнерского канала.

  2. Рассмотрим длинные возможности, когда цена достигает верхней полосы, и короткие возможности, когда цена достигает нижней полосы.

  3. Введите длинные сделки на верхних прорывах, и введите короткие сделки на нижних прорывах.

  4. Установите цель получения прибыли на определенном процентном уровне выше входной цены и цель остановки убытков на определенном процентном уровне ниже входной цены.

Преимущество этой стратегии заключается в внедрении правил остановки потерь и получения прибыли для сокращения потерь вовремя, когда тренд идет не так, и получения прибыли до окончания волны.

Параметры могут быть оптимизированы для различных активов для достижения наилучшего баланса риска и прибыли.

Преимущества стратегии

  • Канал Келтнера определяет направление тренда

  • Стоп-потеря и получение прибыли оптимизируют вознаграждение

  • Гладкий вход и выход предотвращает ложные перерывы

  • Гибкие параметры для корректировки

  • Сочетается с другими показателями

Предупреждения о риске

  • Стоп-лосс и коэффициент прибыли должны быть увеличены

  • Некоторые риски остаются

  • Канал может разорваться с потерями.

  • Небольшая потеря стопа вызывает частые остановки

Заключение

Стратегия Keltner Channel Stop Loss Take Profit оптимизирует традиционную торговую систему путем контроля рисков при одновременном следовании тренду. Отличные результаты стратегии могут быть достигнуты за счет обширного обратного тестирования и настройки параметров. Стратегия стоит глубокого исследования и живых испытаний для постепенного улучшения стабильности.


/*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)

Больше