Береговая стратегия перехода на "харами"

Автор:Чао Чжан, Дата: 2023-11-23 11:47:10
Тэги:

img

Обзор

Стратегия медвежьего Harami Reversal Backtest идентифицирует медвежьи паттерны Harami Reversal в свечевых диаграммах и автоматически торгует ими.

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

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

Конкретная логика такова:

  1. Вычислить, если размер тела первой свечи ABS ((Close1 - Open1) больше установленного минимального размера тела
  2. Проверьте, является ли первая свеча быстрой Закрыть1 > Открыть1
  3. Проверьте, является ли текущая свеча медвежьей Открыть > Закрыть
  4. Проверьте, если текущая свечаs открыт меньше или равен предыдущей закрыть Открыть <= Закрыть1
  5. Проверьте, если предыдущая свеча открыта меньше или равна текущей свечи закрыта Open1 <= Close
  6. Проверьте, меньше ли текущее тело свечи, чем предыдущее тело Открыть - Закрыть < Закрыть1 - Открыть1
  7. Если все условия пройдут, медвежий Харами сформируется, и стратегия провалится.

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

Преимущества этой стратегии:

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

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

Существуют также некоторые риски:

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

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

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

  1. Добавление фильтров объема, MACD и других для улучшения качества сигнала
  2. Оптимизировать стратегии стоп-лосса и прибыли, динамически корректировать уровни
  3. Увеличить эффективность хранения позиций, в сочетании с тенденцией и другими факторами для уменьшения неэффективных сделок
  4. Испытать различные торговые продукты для поиска альтернатив с более низкой волатильностью

Заключение

Стратегия обратного теста "Бериш Харами" имеет четкую, понятную логику, хорошие результаты обратного теста и контролируемые риски.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-19 23:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/01/2019 
//    This is a bearish reversal pattern formed by two candlesticks in which a short 
//    real body is contained within the prior session's long real body. Usually the 
//    second real body is the opposite color of the first real body. The Harami pattern 
//    is the reverse of the Engulfing pattern. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Bearish Harami Backtest", overlay = true)
input_takeprofit = input(20, title="Take Profit pip")
input_stoploss = input(10, title="Stop Loss pip")
input_minsizebody = input(3, title="Min. Size Body pip")
barcolor(abs(close- open) >= input_minsizebody ? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? yellow :na :na : na : na : na : na)
pos = 0.0
barcolor(nz(pos[1], 0) == -1 ? red: nz(pos[1], 0) == 1 ? green : blue )
posprice = 0.0
posprice := abs( close - open) >= input_minsizebody? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? close :nz(posprice[1], 0) :nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0): nz(posprice[1], 0)
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))


Больше