Chiến lược giá đóng Harami là một chiến lược giao dịch định lượng dựa trên các mô hình nến.
Lý thuyết cốt lõi là: Khi ngọn nến hiện tại là một ngọn nến màu đỏ và ngọn nến trước đó là một ngọn nến màu xanh lá cây, và giá thấp nhất của nến hiện tại cao hơn giá thấp nhất của nến trước đó, giá cao nhất của nến hiện tại thấp hơn giá cao nhất của nến trước đó, mô hình
Khi cơ thể lớn hơn một nửa đường stop loss, stop loss được kích hoạt.
Những lợi thế chính của chiến lược giá đóng Harami là:
Ngoài ra còn có một số rủi ro cho chiến lược này:
Để giảm thiểu những rủi ro này, kết hợp với khối lượng giao dịch, đường trung bình động và các chỉ số kỹ thuật khác được khuyến cáo, để đưa ra những đánh giá toàn diện hơn về xu hướng thị trường.
Chiến lược giá đóng cửa Harami cũng có thể được cải thiện từ các khía cạnh sau:
Chiến lược giá đóng Harami dễ hiểu và thực hiện để tạo ra các tín hiệu mua và bán nhất định dựa trên các mẫu nến. Nhưng nó cũng có một số hạn chế như tạo ra các tín hiệu sai và mù. Những vấn đề này cũng chỉ ra các hướng cho việc tối ưu hóa hơn nữa, bằng cách áp dụng các phán đoán toàn diện hơn với khối lượng giao dịch, nhiều khung thời gian và các chỉ số kỹ thuật khác. Điều này có thể cải thiện đáng kể hiệu quả của chiến lược.
/*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()