Количественная торговая стратегия, основанная на развороте скользящей средней канала ATR


Дата создания: 2023-12-11 15:38:25 Последнее изменение: 2023-12-11 15:38:25
Копировать: 3 Количество просмотров: 776
1
Подписаться
1621
Подписчики

Количественная торговая стратегия, основанная на развороте скользящей средней канала ATR

Обзор

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

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

Когда цена опускается ниже нижнего предела ATR-канала, это указывает на необычное падение цены. В этом случае стратегия делает дополнительный вход в следующий раз, когда открывается K-линия. Стоп-стоп является входной ценой, минус коэффициент остановки ATR, умноженный на ATR. Стоп-стоп является средней линией ATR-канала или верхней линией ATR-канала, если текущая цена закрытия K-линии ниже минимальной цены предыдущей линии K.

В частности, стратегия включает в себя следующую логику:

  1. Расчет средней линии ATR и ATR-каналов
  2. Установка условий фильтрации времени
  3. Знак может быть добавлен, когда цена ниже нижнего предела ATR-канала
  4. В следующий раз, когда начнётся игра в “K”, я буду играть в дополнительном режиме.
  5. Запись цены за вход
  6. Расчет Стоп-Лост
  7. Прямое остановка позиции, когда цена выше средней линии канала ATR или верхней границы канала ATR
  8. Стоп-стартер выходит из строя, когда цена ниже стоп-стоп

Анализ преимуществ

Эта стратегия имеет следующие преимущества:

  1. Использование каналов ATR для определения входа и остановки, более высокая надежность
  2. В этом случае, если у вас есть деньги, вы можете начать играть только после необычного падения, чтобы избежать повышения.
  3. Строгие правила по ликвидации убытков и эффективный контроль рисков
  4. Подходит для быстрой короткой торговли без длительного хранения позиций
  5. Простые и понятные правила, которые легко реализовать и оптимизировать

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

Однако эта стратегия также несет в себе некоторые риски:

  1. Сборы и риски скольжения, связанные с частыми сделками
  2. Возможна последовательная активация сбоев.
  3. Неправильная оптимизация параметров может повлиять на эффективность стратегии
  4. При значительных колебаниях цены на биржевые знаки, убытки могут быть чрезмерными

Вы можете снизить вышеупомянутый риск путем корректировки цикла ATR, сокращения коэффициента остановки и т. Д. Также важно выбрать брокера с более низкой комиссионной.

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

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

  1. Добавление фильтров для других показателей, чтобы не пропустить лучший момент входа в игру
  2. Оптимизация параметров цикла ATR
  3. Рассмотрение возможности включения в механизм реадмиссии
  4. Динамическая корректировка стоп-магнитности
  5. Присоединяйтесь к правилам определения тренда, чтобы избежать обратного входа

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

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

Исходный код стратегии
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bcullen175

//@version=5
strategy("ATR Mean Reversion", overlay=true, initial_capital=100000,default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=6E-5) // Brokers rate (ICmarkets = 6E-5)
SLx = input(1.5, "SL Multiplier", tooltip = "Multiplies ATR to widen stop on volatile assests, Higher values reduce risk:reward but increase winrate, Values below 1.2 are not reccomended")
src = input(close, title="Source")
period = input.int(10, "ATR & MA PERIOD")
plot(open+ta.atr(period))
plot(open-ta.atr(period))
plot((ta.ema(src, period)), title = "Mean", color=color.white)

i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Check filter(s)
f_dateFilter = true

atr = ta.atr(period)

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = low < (open-ta.atr(period)) and strategy.position_size == 0 and f_dateFilter
sellCondition   = (high > (ta.ema(close, period)) and strategy.position_size > 0 and close < low[1]) or high > (open+ta.atr(period))
stopDistance    = strategy.position_size > 0 ? ((buyPrice - atr)/buyPrice) : na
stopPrice       = strategy.position_size > 0 ? (buyPrice - SLx*atr): na
stopCondition   = strategy.position_size > 0 and low < stopPrice

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)