Estratégia de negociação quantitativa baseada na reversão da média móvel do canal ATR


Data de criação: 2023-12-11 15:38:25 última modificação: 2023-12-11 15:38:25
cópia: 2 Cliques: 457
1
focar em
1166
Seguidores

Estratégia de negociação quantitativa baseada na reversão da média móvel do canal ATR

Visão geral

A estratégia é uma estratégia de apenas fazer mais, que utiliza a quebra do preço no limite inferior do canal ATR para determinar o momento de entrada e a saída com a linha média do canal ATR ou o limite superior do canal ATR como parada. Ao mesmo tempo, ele também usa o ATR para calcular o preço de parada. A estratégia é adequada para fazer operações de linha curta rápida.

Princípio da estratégia

Quando o preço cai abaixo do limite inferior do canal ATR, indica uma queda anormal do preço. Nesse momento, a estratégia faz uma entrada adicional no momento em que a próxima linha K é aberta. O preço de parada é o preço de entrada menos o coeficiente de parada do ATR multiplicado por ATR. O preço de parada é a linha média do canal ATR ou o limite do canal ATR, se o preço de fechamento do canal K atual for inferior ao mínimo da linha K anterior, o mínimo da linha K anterior será o preço de parada.

Em particular, a estratégia inclui principalmente a seguinte lógica:

  1. Calcule a mediana do ATR e do ATR
  2. Determine as condições de filtragem de tempo
  3. Quando o preço está abaixo do limite inferior do canal ATR, a marcação pode ser feita para mais entrada
  4. Quando a próxima linha K começar, faça mais entradas.
  5. Registro do preço de entrada
  6. Calculando o preço de parada
  7. Cessação de posição quando o preço está acima da linha média do canal ATR ou do limite superior do canal ATR
  8. Quando o preço está abaixo do preço de stop loss, o stop loss sai

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Utilização do canal ATR para determinar entrada e parada, com maior confiabilidade
  2. O jogador deve entrar no jogo apenas depois de uma queda anormal para evitar a subida.
  3. As regras de parada de prejuízos são rigorosas e os riscos são controlados
  4. Para negociações rápidas e curtas, sem a necessidade de manter posições por um longo período
  5. Regras simples e fáceis de entender, implementar e otimizar

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. As taxas de transação e os riscos de deslizamento associados a transações frequentes
  2. Pode ocorrer uma sequência de acionamentos de parada
  3. Optimização inadequada de parâmetros pode afetar a eficácia da política
  4. Quando os preços dos indicadores são muito flutuantes, o stop loss pode ser excessivo

Pode-se reduzir o risco acima por meio de métodos como ajustar o ciclo ATR, reduzir o coeficiente de parada. Também é importante escolher um corretor com taxas de negociação mais baixas.

Direção de otimização

A estratégia também pode ser melhorada em:

  1. Adição de filtros para outros indicadores para evitar a perda do melhor momento de entrada
  2. Optimizar os parâmetros do ciclo ATR
  3. Considerações sobre o mecanismo de readmissão
  4. Ajuste dinâmico do limiar de perda
  5. Adição de regras de avaliação de tendências para evitar a entrada de contrastes

Resumir

A estratégia, em geral, é uma estratégia de inversão de linha de equilíbrio de breakout de linha curta simples e prática. Ela tem regras de entrada claras, mecanismos de stop loss rigorosos e uma forma perfeita de parar. Ao mesmo tempo, também oferece algum espaço de otimização de ajustes de parâmetros.

Código-fonte da estratégia
/*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)