ADX Фильтрованный Chande Kroll Стоп-Лос Тренд Следующая стратегия

Автор:Чао Чжан, Дата: 2023-11-06 14:52:27
Тэги:

img

Обзор

Эта стратегия объединяет индикатор стоп-лосса 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)

Больше