
Chiến lược phản hồi Harami ngược của thị trường gấu được thực hiện bằng cách xác định hình dạng Harami ngược của thị trường gấu trong biểu đồ. Khi xác định hình dạng Harami ngược của thị trường gấu, chiến lược này sẽ vào vị trí khấu trừ; khi dừng lỗ hoặc dừng lại, vị trí thanh toán.
Các chỉ số nhận dạng cốt lõi của chiến lược này là: đường K trước là đường dài, đường K thứ hai là giá đóng cửa được chứa trong thực thể đường K trước, và là đường âm, có thể tạo ra hình dạng Harami đảo ngược thị trường gấu. Khi phù hợp với hình dạng này, chiến lược sẽ vào vị trí làm giảm.
Lý do của việc này là:
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Chiến lược này cũng có thể được tối ưu hóa bằng cách:
Chiến lược phản hồi Harami của thị trường chứng khoán có logic rõ ràng, dễ hiểu và tối ưu hóa, kết quả phản hồi tốt hơn. Rủi ro có thể kiểm soát được, có không gian điều chỉnh thực tế. Nhìn chung, tín hiệu giao dịch được hình thành từ chiến lược này là đáng tin cậy hơn, đáng để kiểm tra thực tế và tối ưu hóa hơn nữa.
/*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))