Estratégia de reversão da ruptura de impulso

Autora:ChaoZhang, Data: 2023-11-16 10:47:41
Tags:

img

Resumo

Trata-se de uma estratégia de negociação de curto prazo baseada na ruptura do momentum e na reversão média. Incorpora múltiplos indicadores, incluindo média móvel, padrões de velas, volume e volatilidade para identificar oportunidades direcionais com momentum de ruptura para capturar tendências de curto prazo.

Estratégia lógica

  1. Utilize a EMA de 3 dias como linha de média móvel de referência.

  2. O preço de abertura é superior ao preço OHLC do dia anterior (média dos preços de abertura, alta, baixa e fechamento).

  3. O volume é inferior ao volume do dia anterior, o que mostra um ímpeto insuficiente, o que favorece uma ruptura direcional (Cond03).

  4. O preço de fechamento rompe a faixa de preços do dia anterior.

  5. Quando estiverem preenchidas todas as 4 condições acima, vá para longo (Entradas).

  6. Regras de saída: posição fechada se as barreiras desde a entrada excederem 10 ou se o lucro máximo alcançar 5 (Saidas).

Esta estratégia combina múltiplos indicadores para determinar a direção de ruptura do mercado para capturar tendências de curto prazo.

Análise das vantagens

  1. O uso de múltiplos indicadores ajuda a filtrar falhas e a identificar falhas válidas.

  2. Impulso insuficiente favorece a ruptura direcional e a ignição da tendência, permitindo capturar oportunidades direcionais mais claras.

  3. A alta frequência de negociação é adequada para negociações de curto prazo para obter pequenos lucros rápidos.

  4. O stop loss e o take profit razoáveis permitem uma perda e um controlo de risco efetivos numa única transação.

Análise de riscos

  1. As negociações abertas simultâneas representam riscos de excesso de negociação.

  2. As definições dos parâmetros estáticos podem ser demasiado rígidas.

  3. Existe a probabilidade de falhas, o que pode levar a perdas de negócios.

  4. Concentre-se apenas em informações de curto prazo sem compreensão abrangente das principais tendências.

  5. O ponto de stop-loss pode ser muito apertado, podemos considerar alargar para 20 a 30 bares.

Orientações de otimização

  1. Incorporar a determinação de tendências para evitar a negociação contra as principais tendências.

  2. Otimizar as configurações de parâmetros. Período EMA, parâmetros de ruptura podem ser testados e otimizados para atender a diferentes condições de mercado. Parâmetros adaptativos também podem ser usados para ajustes automáticos.

  3. Melhorar as condições. Outros indicadores auxiliares como A / D, largura da banda de Bollinger, RSI podem ser adicionados para verificar a validade da quebra e reduzir as falhas.

  4. Testes de retorno extensivamente, inspecionar o desempenho sob condições de mercado extremas.

  5. Otimize os mecanismos de stop loss. Considere a perda de stop de trail, perda de stop percentual, perda de stop adaptativa, etc. para tornar as paradas mais flexíveis.

Resumo

Esta estratégia integra EMA, volume, volatilidade e outros indicadores para identificar oportunidades de curto prazo com impulso. É uma estratégia de breakout de curto prazo típica com retornos frequentes e operações ágeis para bloquear lucros rápidos. Mas se concentra demais em informações recentes sem compreensão abrangente das principais tendências. Podemos otimizá-lo incorporando fatores de tendência, otimizando parâmetros, melhorando a validade do breakout, testando condições extremas para tornar a estratégia mais robusta e adaptável.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #01 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
EmaPeriod = input(3, minval=1, title="EMA Period")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Ema = ema(close, EmaPeriod)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Ema
Cond02 = open > OHLC
Cond03 = volume <= volume[1]
Cond04 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Mais.