Количественная торговая стратегия, основанная на прорыве канала ATR


Дата создания: 2024-01-23 12:00:04 Последнее изменение: 2024-01-23 12:00:04
Копировать: 0 Количество просмотров: 879
1
Подписаться
1617
Подписчики

Количественная торговая стратегия, основанная на прорыве канала ATR

Обзор

Эта стратегия основана на вычислении средней реальной волновой величины (ATR) для торговли по каналам. В частности, вычисляется средняя линия SMA определенного периода, а затем используется значение ATR для определения находящейся вверх или вниз линии каналов, сделанной при прорыве цены вверх по каналу, сделанной при попадании цены вниз по каналу, и сделанной при попадании цены вниз по каналу.

Стратегический принцип

Центральная логика стратегии основана на средней реальной волновой amplitude (ATR) канала. ATR индикатор может эффективно отражать волатильность рынка и движение цен на акции, обычно используется для определения стоп-линий и целевых прибылей.

Верхняя полоса = средняя линия SMA + значение ATR × коэффициент верховой полосы (по умолчанию 4) Нижняя полоса = средняя линия SMA - значение ATR × коэффициент нижней полосы (по умолчанию 4)

Когда цена акций начинает входить в трендовый канал, это означает, что цена акций будет продолжать расти, и тогда делается больше; когда цена акций падает, это означает, что цена акций начинает падать в обратном направлении, и тогда делается пустота. Уравнительный сигнал означает, что, когда цена акций снова падает над средней величиной SMA, все пустые позиции уравняются; когда цена акций снова пробивает среднюю величину SMA, все пустые позиции уравняются.

Стратегические преимущества

  1. Использование средней реальной длины ATR в качестве ориентира для диапазона каналов позволяет более точно улавливать рыночные колебания. ATR может эффективно измерять волатильность рынка, что позволяет установить более подходящий диапазон каналов.

  2. Средняя линия SMA + канал ATR, двойная фильтрация обеспечивает более надежный торговый сигнал. Торговый сигнал подается только тогда, когда цена прорывает канал, чтобы избежать ненужных ложных сигналов.

  3. С помощью оптимизации параметров можно максимально использовать возможности роста и падения цен на акции, чтобы извлечь выгоду из тенденций. Ширина канала и периодичность могут быть настроены на оптимизацию.

  4. Стратегическая логика проста, понятна и легко реализуема.

  5. Включает в себя многооборотную стратегию торговли, которая позволяет получать прибыль от роста и падения цен на акции.

Анализ рисков

  1. Прорыв в канале может привести к убыткам в ключевых точках. Если прорыв является ложным прорывом, то в краткосрочной перспективе может быть большой убыток.

  2. Средняя SMA имеет высокий системный риск и не может своевременно отражать изменения рынка. Цены, возможно, уже вступили в нисходящую тенденцию, но средняя SMA еще не перевернулась.

  3. Неправильная настройка ATR и коэффициентных параметров может повлиять на рациональность диапазона каналов.

  4. В условиях многоходового “бычьего” рынка, поток “белой” торговли будет сохраняться в убытке. Напротив, в условиях многоходового “медвежьего” рынка, поток “белой” торговли будет сохраняться в убытке.

Решения, связанные с риском:

  1. Подходящая корректировка частоты торгов, снижающая риск ложных прорывов. Или установление второго уровня фильтрации, чтобы избежать потерь в ключевых точках.

  2. В сочетании с другими показателями, такими как MACD, KDJ и т. Д., для двойного подтверждения SMA, чтобы избежать системного риска.

  3. Оптимизируйте параметры, выберите подходящий цикл ATR и коэффициент пропуска, чтобы обеспечить разумный диапазон пропуска.

  4. В зависимости от структуры рынка на большом уровне, выберите направление торговли трендом. Бычий рынок делает больше, медвежий рынок делает меньше.

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих направлениях:

  1. Добавление фильтров для других технических показателей, чтобы избежать ложного прорыва. Можно одновременно с прорывом прохода обнаружить сигналы MACD, KDJ и других показателей, сделать многоуровневую подтверждение.

  2. Оптимизация ATR и параметров коэффициента канала, чтобы привести диапазон канала в соответствие с текущим состоянием рынка. Это требует большого количества обратной связи и оптимизации, чтобы определить оптимальную комбинацию параметров.

  3. Добавление автоматической стратегии стоп-лосса для контроля за максимальным риском потери в одной сделке.

  4. Можно своевременно остановить, когда тренд отклоняется. Например, остановить, когда цена отходит от средней линии SMA выше определенного диапазона.

  5. В сочетании с более крупным уровнем рыночной структуры аналитического показателя, различать много свободных рынков делать прорывные сделки в соответствующем направлении. Например, определить тенденцию на уровне круговой линии, а затем совершить прорывные сделки в течение дня.

Подвести итог

Эта стратегия основана на двухполосной форме SMA Average Line + ATR Channel, в которой при прорыве ценового канала осуществляется торговля в соответствующем направлении. Это типичная стратегия прорыва канала. Преимущества заключаются в двойной фильтрации показателей, а сигналы прорыва относительно надежны; недостатком является риск наличия некоторой степени ложного прорыва.

Исходный код стратегии
/*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")