Эта стратегия объединяет индикатор стоп-лосса Chande Kroll и индикатор среднего направленного движения (ADX) для реализации относительно простой стратегии следующего тренду.
Стратегия сначала рассчитывает длинную стоп-длинную и короткую стоп-короткие линии стоп-лосса Чанде Кролла. Длинная линия рассчитывается на основе самой высокой цены за прошлые п периоды. Короткая линия рассчитывается на основе самой низкой цены за прошлые п периоды. Самая высокая точка длинных и коротких линий за прошлые q периоды затем используется как текущие длинные и короткие линии стоп-лосса. Это отфильтровывает краткосрочные колебания цен и только запускает стоп-лосс в точках обратного тренда.
Когда цена закрытия пересекает верхнюю точку короткой линии stop_short, генерируется длинный сигнал.
Кроме того, индикатор ADX используется для оценки силы тренда. Только когда ADX превышает порог, сигнал стоп-лосса запускает вход.
Стратегия сочетает в себе преимущества индикаторов тренда и индикаторов стоп-лосса. Она может своевременно улавливать обратные тенденции, избегая сбоев на недирекционных рынках. Оптимизация параметров стоп-лосса Чанде Кролла может сгладить фильтрацию и обеспечить стоп-лосс только в точках обратного тренда. Индикатор ADX обеспечивает вход только тогда, когда тенденция значительна, избегая сбоев стоп-лосса во время консолидации рынка.
Если порог ADX установлен слишком высоко, возможности входа могут быть упущены в начале трендов, когда значения ADX все еще низкие.
Стоп-лосс-точки, которые слишком близки, также могут вызывать частое открытие и закрытие стратегических позиций. Это увеличит затраты на торговлю и скольжение. Стоп-лосс-точки должны быть разумно настроены, чтобы дать некоторое пространство для тенденций.
Подумайте о том, чтобы позволить сигналам стоп-лосса активироваться только тогда, когда ADX превышает порог. Это может улучшить надежность времени входа. Другие индикаторы тренда также могут быть объединены для конъюнктивных условий, таких как сочетание значений ADX с уклонами EMA.
Линии стоп-лосса также могут быть динамически скорректированы на основе ATR, позволяя более широкие остановки при увеличении волатильности рынка, чтобы избежать чрезмерной чувствительности.
Стратегия объединяет сильные стороны стоп-лосса Chande Kroll и индикаторов ADX для создания относительно простой и практичной следующей стратегии тренда. Благодаря оптимизации параметров можно еще больше улучшить стабильность и рентабельность стратегии.
/*backtest start: 2022-10-30 00:00:00 end: 2023-06-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title = "Chande Kroll Stop", overlay=true) p = input.int(10, minval=1) x = input.int(1, minval=1) q = input.int(9, minval=1) first_high_stop = ta.highest(high, p) - x * ta.atr(p) first_low_stop = ta.lowest(low, p) + x * ta.atr(p) stop_short = ta.highest(first_high_stop, q) stop_long = ta.lowest(first_low_stop, q) plot(stop_long, color=color.blue) plot(stop_short, color=color.orange) adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") ADX_sig = input.int(20, title="minimum ADX threshold for signal") dirmov(len) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(plusDM, len) / truerange) minus = fixnan(100 * ta.rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) if ta.crossunder(close, stop_long) and sig>ADX_sig strategy.entry("long", strategy.long) if ta.crossover(close, stop_short) and sig>ADX_sig strategy.entry("short", strategy.short)