Estratégia de reversão da lacuna

Autora:ChaoZhang, Data: 2023-09-19 16:19:51
Tags:

Resumo

Quando a vela atual abre abaixo do fechamento anterior e termina no dia com um fechamento maior do que o aberto, a estratégia entra em longo no dia seguinte.

Princípio da estratégia

  1. Verificar se ocorre uma lacuna para baixo, ou seja, a abertura atual abaixo do fechamento anterior.

  2. Se for desligado, observe se o fechamento da corrente está acima da abertura, indicando uma inversão para cima.

  3. Se estiverem preenchidas as condições de reversão da diferença, negociar no dia seguinte ou fechar no dia seguinte.

  4. Defina um stop loss final em uma percentagem, por exemplo, 5%, após a entrada.

  5. Quando o preço cai para atingir o stop loss, a posição é fechada.

Análise das vantagens

Principais vantagens desta estratégia:

  1. Captura oportunidades de negociação de reversão de padrões de gap down.

  2. O padrão de reversão de alta probabilidade alinha-se com o alternar medo/ganância.

  3. Trailing stop bloqueia os lucros sem necessidade de monitoramento manual.

  4. Configurações flexíveis para a entrada e para a suspensão das perdas, de acordo com as existências individuais.

  5. Execução automatizada e fácil backtesting/otimização.

Análise de riscos

Principais riscos desta estratégia:

  1. Podem ocorrer reversões falhadas, necessitam de verificação de padrão.

  2. Stop loss de grande porte propensos a serem retirados levando a perdas amplificadas.

  3. A má selecção das unidades populacionais pode levar a reversões duras.

  4. Os dados insuficientes dos backtests conduzem a riscos de sobreajuste.

  5. A execução é diferente entre backtest e live.

Soluções:

  1. Otimizar o nível de stop loss e a percentagem de perda máxima por transação.

  2. Analise a tendência geral do mercado para evitar o excesso de existências.

  3. Verifique as alterações de padrão e volume.

  4. Expandir o tamanho da amostra para testes de retorno, simular negociação ao vivo.

Orientações de otimização

Algumas formas de melhorar a estratégia:

  1. Adicionar um filtro de tendência para evitar entradas de contra-tendência.

  2. Ajuste dinâmico da percentagem de stop loss para proteger os lucros.

  3. Considere adicionar filtro de tempo para negociar em datas específicas.

  4. Avaliar a força do padrão para dimensionamento de posição.

  5. Teste diferentes períodos de espera para encontrar pontos de saída ideais.

Resumo

A estratégia de reversão de diferença capitaliza padrões de reversão de alta probabilidade. Paradas efetivamente controlam o risco, mas cuidado com falsos saltos e mudanças nas condições do mercado.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 1m
basePeriod: 1m
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/
// © RolandoSantos

//@version=2

strategy(title="Gap Down reversal strat", overlay=true, pyramiding=1, default_qty_type =  strategy.cash, default_qty_value = 10000, initial_capital = 10000 )

/// Start date

startDate = input(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", defval=2009, minval=1800, maxval=2100)


// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0))

// STEP 1:
// Configure trail stop level with input options (optional)
longTrailPerc = input(title="Trail Long Loss (%)",
     type=float, minval=0.0, step=0.1, defval=5.0) * 0.01


// Calculate trading conditions
gap_d_r = open < close[1] and close > open


// Plot Shapes
plotshape(gap_d_r, style=shape.triangleup, location=location.belowbar)
///plotshape(gap_u_r, style=shape.triangledown, location=location.abovebar)

///// Use Low, or close/////

//hlco = input(title="Stop Modifier", defval="close", options=["open", "high", "low"])


// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0   ///, shortStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0


// Plot stop loss values for confirmation
plot(series=(strategy.position_size > 0) ? longStopPrice : na,
     color=red, style=circles,
     linewidth=1, title="Long Trail Stop")


// Submit entry orders
if (afterStartDate and gap_d_r)
    strategy.entry(id="EL", long=true)


// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="Stop out", stop=longStopPrice)















Mais.