Estrategia de precios de cierre de Harami

El autor:¿ Qué pasa?, Fecha: 2023-11-28 16:50:34
Las etiquetas:

img

Resumen general

La estrategia de precio de cierre de Harami es una estrategia de negociación cuantitativa basada en patrones de velas.

Estrategia lógica

La lógica básica es: cuando el candelero actual es una vela roja y el anterior es una vela verde, y el precio más bajo de la vela actual es más alto que el precio más bajo de la vela anterior, el precio más alto de la vela actual es más bajo que el precio más alto de la vela anterior, se forma el patrón Harami. Esto significa que el impulso de la tendencia alcista está perdiendo fuerza y es una señal para vender. Por el contrario, un patrón Harami con dos velas invertidas constituye una señal de compra.

Cuando el cuerpo es mayor que la mitad de la línea de stop loss, se activa el stop loss.

Análisis de ventajas

Las principales ventajas de la estrategia de precio de cierre de Harami son las siguientes:

  1. Un juicio simple y razonable basado en patrones de candelabro, fácil de entender e implementar.
  2. Cuando el rango ascendente se reduce para formar un patrón Harami, el impulso alcista está perdiendo fuerza y es un buen punto de venta.
  3. Existe un mecanismo de stop loss claro para controlar los riesgos.

Análisis de riesgos

También existen algunos riesgos para esta estrategia:

  1. Baja frecuencia de monitoreo, puede perder los mejores puntos de entrada y salida.
  2. Las velas bullish/bearish falsas pueden generar señales erróneas.
  3. Los juicios se basan únicamente en patrones de candelabro sin considerar otros indicadores técnicos y fundamentos, lo que conduce a cierta ceguera.

Para mitigar estos riesgos, se recomienda combinar con el volumen de operaciones, las medias móviles y otros indicadores técnicos, para hacer juicios más completos sobre las tendencias del mercado.

Direcciones de optimización

La estrategia de precio de cierre de Harami también puede mejorarse en los siguientes aspectos:

  1. Añadir verificaciones de la condición del volumen de operaciones.
  2. Ajuste dinámico de los criterios de suspensión de pérdidas basado en la volatilidad del mercado y la preferencia de riesgo.
  3. Análisis de marcos de tiempo múltiples: Identificación de puntos de venta cerca de los niveles de soporte clave en marcos de tiempo más altos cuando se forman patrones de Harami.
  4. Combinar otros indicadores técnicos como las medias móviles para determinar las tendencias generales del mercado o los indicadores principales para pronosticar los puntos de entrada y salida.

Resumen de las actividades

La estrategia de precio de cierre de Harami es fácil de entender e implementar para generar ciertas señales de compra y venta basadas en patrones de velas. Pero también tiene algunas limitaciones como generar señales falsas y ceguera. Estos problemas también apuntan a direcciones para nuevas optimizaciones, aplicando juicios más completos con volúmenes de negociación, marcos de tiempo múltiples y otros indicadores técnicos. Esto puede mejorar enormemente la eficacia de la estrategia.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Harami Strategy v1.0", shorttitle = "Harami str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == 1 and bar[1] == -1 and min > min[1] and max < max[1]
dn = bar == -1 and bar[1] == 1 and min > min[1] and max < max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Más.