Стратегия закрытия цены Harami - это количественная стратегия торговли, основанная на моделях свечей.
Основная логика заключается в следующем: когда текущая свеча - красная свеча, а предыдущая - зеленая свеча, и самая низкая цена текущей свечи выше, чем самая низкая цена предыдущей свечи, самая высокая цена текущей свечи ниже, чем самая высокая цена предыдущей свечи, образуется шаблон
Среднее значение тела свечи используется в качестве линии стоп-лосса.
Основными преимуществами стратегии закрытия цены Harami являются:
Эта стратегия также сопряжена с некоторыми рисками:
Для смягчения этих рисков рекомендуется использовать в сочетании с объемом торговли, скользящими средними и другими техническими показателями более всеобъемлющие оценки рыночных тенденций.
Стратегия закрытия цены Harami также может быть улучшена в следующих аспектах:
Стратегия Harami заключения цены легко понять и реализовать для генерации определенных сигналов покупки и продажи на основе моделей свечей. Но она также имеет некоторые ограничения, такие как генерация ложных сигналов и слепота. Эти проблемы также указывают на направления для дальнейшей оптимизации, путем применения более комплексных суждений с объемами торговли, нескольких временных рамок и других технических индикаторов. Это может значительно повысить эффективность стратегии.
/*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()