Estratégia de reversão Harami de baixa

Autora:ChaoZhang, Data: 2023-11-23 11:47:10
Tags:

img

Resumo

A Estratégia de Reversão de Harami Bearish identifica padrões de reversão de Harami de baixa nos gráficos de velas e os negocia automaticamente.

Estratégia lógica

O principal indicador de reconhecimento de padrão desta estratégia é: o fechamento da primeira vela é uma vela alta longa e o fechamento da segunda vela está dentro do corpo da primeira vela, formando uma vela baixa.

A lógica específica é:

  1. Calcular se o tamanho do corpo da primeira vela ABS ((Close1 - Open1) é maior que o tamanho do corpo mínimo definido
  2. Verifique se a primeira vela é alta Fechar1 > Abrir1
  3. Verifique se a vela atual é baixa Abre > Feche
  4. Verifique se a atual velas aberto é menor ou igual ao fechamento anterior aberto <= fechado1
  5. Verifique se a vela anterior s aberto é menor ou igual ao fechamento da vela atual Open1 <= Close
  6. Verifique se o corpo da vela atual é menor do que o corpo anterior
  7. Se todas as condições passarem, um Harami Bearish formou-se e a estratégia falha.

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. Utiliza o forte sinal de reversão de baixa da Harami para maior probabilidade de lucro
  2. Resultados positivos dos dados de backtest extensivos
  3. Lógica simples e clara que seja fácil de entender e otimizar
  4. O valor da posição em risco deve ser calculado de acordo com o método de classificação da posição em risco.

Análise de riscos

Há também alguns riscos:

  1. O mercado pode ter falhas que levam a posições perdedoras, pode ampliar o stop loss ou adicionar filtros.
  2. A alta volatilidade pode desencadear um stop loss prematuro.
  3. Os dados de backtest insuficientes podem não refletir as condições reais do mercado.

Orientações de otimização

A estratégia pode ser ainda melhorada nos seguintes domínios:

  1. Adicionar volume, MACD e outros filtros para melhorar a qualidade do sinal
  2. Otimizar as estratégias de stop loss e take profit, ajustar os níveis dinamicamente
  3. Aumentar a eficiência da detenção de posições, combinar com a tendência e outros fatores para reduzir as operações ineficazes
  4. Teste diferentes produtos de negociação para encontrar alternativas de menor volatilidade

Conclusão

A Estratégia de Reversão de Backtest Bearish Harami tem lógica clara, fácil de entender, bons resultados de backtest e riscos controláveis.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-19 23:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/01/2019 
//    This is a bearish reversal pattern formed by two candlesticks in which a short 
//    real body is contained within the prior session's long real body. Usually the 
//    second real body is the opposite color of the first real body. The Harami pattern 
//    is the reverse of the Engulfing pattern. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Bearish Harami Backtest", overlay = true)
input_takeprofit = input(20, title="Take Profit pip")
input_stoploss = input(10, title="Stop Loss pip")
input_minsizebody = input(3, title="Min. Size Body pip")
barcolor(abs(close- open) >= input_minsizebody ? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? yellow :na :na : na : na : na : na)
pos = 0.0
barcolor(nz(pos[1], 0) == -1 ? red: nz(pos[1], 0) == 1 ? green : blue )
posprice = 0.0
posprice := abs( close - open) >= input_minsizebody? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? close :nz(posprice[1], 0) :nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0): nz(posprice[1], 0)
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))


Mais.