Стратегия закрытия цены Harami

Автор:Чао Чжан, Дата: 2023-11-28 16:50:34
Тэги:

img

Обзор

Стратегия закрытия цены Harami - это количественная стратегия торговли, основанная на моделях свечей.

Логика стратегии

Основная логика заключается в следующем: когда текущая свеча - красная свеча, а предыдущая - зеленая свеча, и самая низкая цена текущей свечи выше, чем самая низкая цена предыдущей свечи, самая высокая цена текущей свечи ниже, чем самая высокая цена предыдущей свечи, образуется шаблон Харами. Это означает, что импульс восходящего тренда теряет силу и это сигнал для продажи. Напротив, шаблон Харами с двумя перевёрнутыми свечами составляет сигнал покупки.

Среднее значение тела свечи используется в качестве линии стоп-лосса.

Анализ преимуществ

Основными преимуществами стратегии закрытия цены Harami являются:

  1. Простые и разумные суждения, основанные на моделях свечей, легко понимаемые и реализуемые.
  2. Когда восходящий диапазон сужается, образуя паттерн Harami, бычий импульс теряет силу и это хорошая точка продажи.
  3. Существует четкий механизм стоп-лосса для контроля рисков.

Анализ рисков

Эта стратегия также сопряжена с некоторыми рисками:

  1. Низкая частота мониторинга, может пропустить лучшие точки входа и выхода.
  2. Ложные бычьи/медвежие свечи могут генерировать неправильные сигналы.
  3. Суждения основаны исключительно на моделях свечей без учета других технических показателей и фундаментальных факторов, что приводит к некоторой слепоте.

Для смягчения этих рисков рекомендуется использовать в сочетании с объемом торговли, скользящими средними и другими техническими показателями более всеобъемлющие оценки рыночных тенденций.

Руководство по оптимизации

Стратегия закрытия цены Harami также может быть улучшена в следующих аспектах:

  1. Добавление проверки состояния объема торговли.
  2. Динамическая корректировка критериев стоп-лосса на основе волатильности рынка и предпочтения риска.
  3. Выявление точек продажи вблизи ключевых уровней поддержки в более высокие временные рамки, когда формируются модели Харами.
  4. Сочетание других технических показателей, таких как скользящие средние, для определения общей тенденции рынка или ведущих показателей для прогнозирования пунктов входа и выхода.

Резюме

Стратегия 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()

Больше