Estratégia de compra da caixa de Darvas

Autora:ChaoZhang, Data: 2024-01-29 09:53:55
Tags:

img

Resumo

A Estratégia de Compra da Caixa Darvas é uma versão modificada da Estratégia da Caixa Darvas que só é longa durante um mercado de alta.

Estratégia lógica

Esta estratégia é baseada na teoria da caixa de Darvas. A teoria da caixa de Darvas acredita que quando o preço sai da caixa após uma consolidação, é um bom sinal de entrada longa. Esta estratégia identifica entradas longas com base nesta teoria.

Especificamente, a estratégia primeiro calcula a menor baixa nos últimos 5 dias para traçar a faixa inferior da caixa. Em seguida, calcula a maior alta nos últimos 5 dias para traçar a faixa superior. Quando o preço de fechamento quebra acima da faixa superior, ele sinaliza que a tendência se tornou alta e vai longo no preço de fechamento.

Depois de ir longo, a estratégia define o stop loss perto da banda inferior da caixa, e o take profit em 5 vezes o tamanho do stop loss.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Usando a teoria da caixa para identificar as entradas longas de fuga pode efetivamente filtrar algum ruído.

  2. Apenas fazer longs no sinal claro de ruptura evita muitos negócios desnecessários aleatórios.

  3. Ter stop loss e take profit predefinidos pode controlar bem o risco.

  4. Só a compra de breakouts durante um mercado de alta evita riscos de mercados agitados e de baixa.

Análise de riscos

Há também alguns riscos com esta estratégia:

  1. A teoria da caixa não é perfeita, a ruptura não garante mais alta.

  2. O valor da posição em risco deve ser calculado em função da posição em risco.

  3. Não há mecanismo de saída, a detenção a longo prazo pode ser arriscada.

  4. Os parâmetros podem precisar de ajustamentos para diferentes mercados.

Alguns métodos para otimizar e melhorar com base nos riscos:

  1. Combine com mais indicadores para confirmar a fiabilidade dos sinais de ruptura.

  2. Considere esperar por um novo teste ou uma segunda fuga para confirmação antes de entrar.

  3. Adicione stop loss para bloquear os lucros.

  4. Teste e otimize os parâmetros utilizando diferentes dados de mercado.

Orientações de otimização

Algumas direcções em que esta estratégia pode ser melhorada:

  1. Otimizar o parâmetro da caixa, testar se diferentes parâmetros do dia podem obter melhores resultados.

  2. Adicionar indicadores de filtragem para garantir a compra numa tendência ascendente, por exemplo combinando com médias móveis.

  3. Otimizar o stop loss e tirar lucro para diferentes mercados.

  4. Adicione stop loss para seguir os lucros.

  5. Adicione sinais de saída para tirar lucro quando houver um recuo.

Conclusão

A estratégia de compra da caixa Darvas é uma estratégia simples, mas eficaz, de busca de tendências, baseada na teoria de Darvas. Ela só se aplica a sinais de compra claros para evitar negócios aleatórios desnecessários.


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

//@version=4
strategy("Darvas Box Strategy - Buy Only", overlay=true)

start_date = timestamp(2023, 10, 15, 0, 0)

boxp = input(5, "BOX LENGTH")

LL = lowest(low, boxp)
k1 = highest(high, boxp)
k2 = highest(high, boxp - 1)
k3 = highest(high, boxp - 2)

NH = valuewhen(high > k1[1], high, 0)
box1 = k3 < k2
TopBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, NH, 0)
BottomBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, LL, 0)

plot(TopBox, linewidth=2, color=color.green, title="TopBox")
plot(BottomBox, linewidth=2, color=color.red, title="BottomBox")

// Define entry conditions
enterLong = crossover(close, TopBox)

// Define exit conditions
exitLong = false  // No specific exit condition mentioned in the original script

// Define stop loss level
stopLoss = BottomBox

// Define take profit level (2 times the stop loss)
takeProfit = stopLoss * 5

// Execute buy trade and set stop loss and take profit
strategy.entry("Buy", strategy.long, when = enterLong)
strategy.exit("Exit", "Buy", stop = stopLoss, limit = takeProfit)

// Plot buy signal arrow
plotshape(enterLong, title = "Buy Signal", style = shape.labelup, location = location.belowbar, color = color.green)

// Plot stop loss level
plot(stopLoss, linewidth=2, color=color.red, title="Stop Loss Level")

// Plot take profit level
plot(takeProfit, linewidth=2, color=color.rgb(19, 202, 111), title="Take Profit Level")

// Hide sell signal arrow
plotshape(false, title = "Sell Signal", style = shape.labeldown, location = location.abovebar, color = color.red, transp = 100)

Mais.