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