Estratégia de rompimento de intervalo de média móvel


Data de criação: 2023-12-12 17:38:19 última modificação: 2023-12-12 17:38:19
cópia: 0 Cliques: 715
1
focar em
1621
Seguidores

Estratégia de rompimento de intervalo de média móvel

Visão geral

A estratégia é uma estratégia de ruptura de intervalo baseada em médias móveis. Ela determina a ruptura de preço com base nas médias móveis de um determinado período e nas linhas ascendentes e descendentes definidas.

Princípio da estratégia

A estratégia tem como princípios centrais:

  1. A média móvel de um determinado período é definida como o eixo central.

  2. O intervalo de configuração acima e abaixo do eixo médio é obtido por meio do eixo médio multiplicado por uma determinada porcentagem. O eixo superior é o eixo médio multiplicado por ((100% + % de configuração) e o eixo inferior é o eixo médio multiplicado por ((100% - % de configuração)).

  3. Faça um curto-circuito quando o preço sobe e quebra a linha superior; faça um curto-circuito quando o preço desce e quebra a linha inferior.

  4. O preço do pedido é definido como o preço correspondente da linha ascendente e descendente.

  5. Quando o preço retorna ao eixo central, a posição de equilíbrio sai.

Assim, a estratégia de negociação é realizada através da captura de brechas de preços através de médias móveis e seus intervalos.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O conceito é simples, claro, fácil de entender e de implementar.

  2. Pode ser ajustado por meio de parâmetros para se adaptar a diferentes condições de mercado.

  3. O eixo central e o intervalo filtram o ruído do mercado e capturam as tendências.

  4. O risco pode ser controlado através de encomendas limitadas.

  5. O regresso ao eixo médio é interrompido para evitar perdas excessivas.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. A configuração inadequada dos parâmetros de intervalos pode causar transações frequentes ou insuficientes.

  2. A probabilidade de ocorrência de falha de ruptura é maior, podendo ocorrer perda.

  3. A linha central e o intervalo de alcance não são válidos quando a situação está em alta.

  4. Forçando a paralisação no regresso ao eixo central, pode ocorrer uma saída prematura.

Resolução:

  1. Parâmetros de otimização, seleção de períodos de média móvel apropriados e porcentagem de intervalos.

  2. Combinado com outros indicadores, evite falsas brechas.

  3. Aumentar os meios de intervenção humana

  4. A média móvel é definida com um período mais longo, com intervalos de amplificação apropriados.

Direção de otimização

A estratégia pode ser melhorada em:

  1. Aumentar as condições de stop loss, como rastrear o stop loss e evitar perdas excessivas.

  2. Adicionar filtros de indicadores, como MACD, KD, etc., para reduzir a falsa brecha.

  3. A adição de uma função de otimização automática de parâmetros, permitindo que os parâmetros sejam ajustados em tempo real de acordo com as mudanças no mercado.

  4. Aumentar as condições de abertura de posições para evitar a mera dependência de brechas.

  5. Optimizar a configuração de parâmetros de média móvel e intervalos.

Resumir

A estratégia em geral é uma estratégia de ruptura de intervalos de média móvel bastante prática. Seu conceito é simples, fácil de entender e implementar, filtrando o ruído por intervalos de intervalos, e funciona melhor em mercados com tendências mais evidentes. Mas também há alguns riscos, que precisam ser considerados para otimização de parâmetros e uso em combinação com outros indicadores.

Código-fonte da estratégia
/*backtest
start: 2023-01-01 00:00:00
end: 2023-08-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Robot WhiteBox ShiftMA", shorttitle = "Robot WhiteBox ShiftMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, title = "Length")
src = input(ohlc4, title = "Source")
shortlevel = input(10.0, title = "Short line (red)")
longlevel = input(-5.0, title = "Long line (lime)")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//SMAs
sma = sma(src, per) 
shortline = sma * ((100 + shortlevel) / 100)
longline = sma * ((100 + longlevel) / 100)
plot(shortline, linewidth = 2, color = red, title = "Short line")
plot(sma, linewidth = 2, color = blue, title = "SMA line")
plot(longline, linewidth = 2, color = lime, title = "Long line")

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[per])) and size == 0 and needlong
    strategy.entry("L", strategy.long, lot, limit = longline)
    
if (not na(close[per])) and size == 0 and needshort
    strategy.entry("S", strategy.short, lot, limit = shortline)
    
if (not na(close[per])) and size > 0 
    strategy.entry("Close", strategy.short, 0, limit = sma)
    
if (not na(close[per])) and size < 0 
    strategy.entry("Close", strategy.long, 0, limit = sma)

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()