Основная логика этой стратегии основана на каналах ATR. Индикатор ATR может эффективно отражать волатильность рынка и движения цен и обычно используется для определения уровней стоп-лосса и прибыли. Стратегия сначала рассчитывает линию SMA за n периодов (по умолчанию 150), затем использует значение и коэффициент ATR для определения верхних и нижних диапазонов канала. Конкретные формулы:
Когда цена прорывается выше верхней полосы, это указывает на начало трендового канала и восходящего импульса, поэтому занимается длинная позиция. Когда цена прорывается ниже нижней полосы, это сигнализирует о начале переворота, поэтому принимается короткая позиция. Выходы происходят, когда цена пересекает обратно ниже линии SMA, закрывая все длинные, или пересекает обратно выше линии SMA, закрывая все короткие.
Параметры могут быть оптимизированы для максимального захвата движений цен вверх и вниз для получения прибыли от трендовой торговли.
Торги с прорывом в канале склонны к потерям в ключевых точках переворота, если прорыв окажется ложным.
У SMA есть системный риск отставания рыночных поворотов.
Постоянные короткие потери в бычьих рыночных тенденциях и долгосрочные потери в понижающих тенденциях медвежьих рынков.
Возможные решения:
Регулируйте частоту торговли или добавляйте фильтры, чтобы избежать потерь от ложных прорывов.
Добавьте перекрестное подтверждение с MACD, KDJ, чтобы избежать риска системного отставания SMA.
Оптимизировать период и коэффициент ATR для обеспечения разумного диапазона каналов.
Определить общий рыночный режим для тенденции предвзятости.
Некоторые способы улучшения этой стратегии:
Добавить дополнительные индикаторные фильтры для уменьшения ложных вырывов, используя MACD, KDJ и т.д. для подтверждения сигналов.
Оптимизировать период ATR и коэффициент канала, чтобы соответствовать текущим условиям волатильности рынка посредством обширного обратного тестирования.
Быстро сокращайте убытки, когда цена отклоняется от базовой линии SMA.
Включите анализ тенденции более высоких временных рамок для определения тенденции быка / медведя для направления прорыва. Например, используйте еженедельный для определения общей тенденции для ежедневных записей прорыва.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © omererkan //@version=5 strategy(title="ATR Channel Breakout") smaLength = input.int(150, title="SMA Length") atrLength = input.int(30, title="ATR Length") ubOffset = input.float(4, title="Upperband Offset", step=0.50) lbOffset = input.float(4, title="Lowerband Offset", step=0.50) smaValue = ta.sma(close, smaLength) atrValue = ta.atr(atrLength) upperBand = smaValue + (ubOffset * atrValue) lowerBand = smaValue - (lbOffset * atrValue) plot(smaValue, title="SMA", color=color.orange) plot(upperBand, title="UB", color=color.green, linewidth=2) plot(lowerBand, title="LB", color=color.red, linewidth=2) enterLong = ta.crossover(close, upperBand) exitLong = ta.crossunder(close, smaValue) enterShort = ta.crossunder(close, lowerBand) exitShort = ta.crossover(close, smaValue) if enterLong strategy.entry("Long", strategy.long) if enterShort strategy.entry("Short", strategy.short) if exitLong strategy.close("Long", "Close Long") if exitShort strategy.close("Short", "Close Short")