A estratégia de preço de fechamento Harami é uma estratégia quantitativa de negociação baseada em padrões de velas.
A lógica central é: quando o candelabro atual é uma vela vermelha e o anterior é uma vela verde, e o preço mais baixo da vela atual é maior do que o preço mais baixo da vela anterior, o preço mais alto da vela atual é menor do que o preço mais alto da vela anterior, o padrão
A média do corpo da vela é usada como uma linha de stop loss.
As principais vantagens da estratégia de preço de fechamento da Harami são:
Há também alguns riscos para esta estratégia:
Para mitigar estes riscos, é recomendável combinar com o volume de negociação, as médias móveis e outros indicadores técnicos, para fazer julgamentos mais abrangentes sobre as tendências do mercado.
A estratégia do preço de encerramento da Harami pode também ser melhorada pelos seguintes aspectos:
A estratégia de preço de fechamento Harami é fácil de entender e implementar para gerar certos sinais de compra e venda com base em padrões de velas. Mas também tem algumas limitações, como gerar sinais falsos e cegueira. Estes problemas também apontam para direções para melhorias adicionais, aplicando julgamentos mais abrangentes com volumes de negociação, vários prazos e outros indicadores técnicos. Isso pode melhorar muito a eficácia da estratégia.
/*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()