Estrategia de reversión de la baja Harami

El autor:¿ Qué pasa?, Fecha: 2023-11-23 11:47:10
Las etiquetas:

img

Resumen general

La Estrategia de reversión de Harami bajista identifica patrones de reversión de Harami bajistas en los gráficos de velas y los negocia automáticamente.

Estrategia lógica

El indicador de reconocimiento de patrones básico de esta estrategia es: el cierre de la primera vela es una vela alcista larga y el cierre de la segunda vela está dentro del cuerpo de la primera vela, formando una vela bajista. Esto indica un patrón de reversión de Harami bajista potencial. Cuando se forma este patrón, la estrategia se corta.

La lógica específica es:

  1. Calcular si el tamaño del cuerpo de la primera vela ABS ((Close1 - Open1) es mayor que el tamaño del cuerpo mínimo establecido
  2. Compruebe si la primera vela es alcista Cerrar1 > Abrir1
  3. Compruebe si la vela actual es bajista Abrir > Cerrar
  4. Compruebe si el candels abierto actual es menor o igual al cierre anterior Abierto <= Cierre1
  5. Compruebe si anterior velas abierto es menor o igual a la actual velas cierre abierto1 <= Cierre
  6. Compruebe si el cuerpo de la vela actual es menor que el cuerpo anterior
  7. Si todas las condiciones pasan, se ha formado un Harami Bearish y la estrategia es corta.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Utiliza la fuerte señal de reversión bajista de Harami para una mayor probabilidad de ganancia
  2. Los resultados de los extensos datos de backtest son positivos
  3. Lógica simple y clara que es fácil de entender y optimizar
  4. Las pérdidas de detención y las pérdidas de toma de ganancias personalizadas para el control del riesgo

Análisis de riesgos

También hay algunos riesgos:

  1. El mercado puede tener falsas rupturas que conducen a posiciones perdedoras, puede ampliar el stop loss o añadir filtros.
  2. La alta volatilidad puede desencadenar un stop loss prematuro.
  3. Los datos de backtest insuficientes pueden no reflejar las condiciones reales del mercado.

Direcciones de optimización

La estrategia puede optimizarse aún más en los siguientes ámbitos:

  1. Añadir volumen, MACD y otros filtros para mejorar la calidad de la señal
  2. Optimizar las estrategias de stop loss y take profit, ajustar los niveles dinámicamente
  3. Aumentar la eficiencia de la tenencia de posiciones, combinar con la tendencia y otros factores para reducir las operaciones ineficaces
  4. Prueba diferentes productos de negociación para encontrar alternativas de menor volatilidad

Conclusión

La Estrategia de reversión de la prueba de retroceso de Harami bajista tiene una lógica clara, fácil de entender, buenos resultados de la prueba de retroceso y riesgos controlables. Tiene espacio para ajustes y optimizaciones de operaciones en vivo.


/*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))


Más.