La estrategia de precio de cierre de Harami es una estrategia de negociación cuantitativa basada en patrones de velas.
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
Cuando el cuerpo es mayor que la mitad de la línea de stop loss, se activa el stop loss.
Las principales ventajas de la estrategia de precio de cierre de Harami son las siguientes:
También existen algunos riesgos para esta estrategia:
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.
La estrategia de precio de cierre de Harami también puede mejorarse en los siguientes aspectos:
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()