Chiến lược này dựa trên một chỉ số duy nhất - Smoothed Heikin-Ashi, để thực hiện xu hướng đơn giản sau các hoạt động mua và bán. Nó xác định hướng xu hướng thông qua chỉ số Smoothed Heikin-Ashi và xác định thời gian vào kết hợp với các mô hình nến lịch sử, để có được lợi nhuận.
Chiến lược tính toán trung bình động của giá mở, cao, thấp và đóng để xây dựng Smoothed Heikin-Ashi.
Điều kiện mua: Các thanh hiện tại đóng > các thanh trước đóng, các thanh trước đóng > 2 thanh trước đây đóng, 3 thanh gần đây tăng.
Điều kiện bán: Các thanh hiện tại đóng cửa < các thanh trước đóng cửa, các thanh trước đóng cửa < 2 thanh trước đây đóng cửa, 3 thanh gần đây giảm.
Cả hai điều kiện mua và bán đều yêu cầu tín hiệu mới nhất là 0 hoặc tín hiệu ngược lại, để tránh giao dịch theo cùng một hướng liên tiếp.
Có thể cải thiện bằng cách kết hợp các chỉ số khác cho xu hướng dài hạn, tối ưu hóa chiến lược dừng lỗ, chú ý đến thị trường tổng thể v.v.
Chiến lược này sử dụng khả năng theo dõi xu hướng của Heikin-Ashi và kết hợp các mẫu nến để xác định thời gian nhập cảnh, trong khi kiểm soát tần suất giao dịch thông qua lọc các tín hiệu trùng lặp.
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Masoud Abdoli //Heikin Ashi Smoothed Buy & Sell Strategy Rev.4 //Date: 01-Oct-2021 //@version=4 strategy(title="Abdoli's Heikin Ashi Smoothed Buy & Sell Strategy Rev.4", shorttitle="Heikin-Ashi Smoothed Rev.4", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) MaPeriod = input (title="Moving Average Period?", type=input.integer, defval=65, minval=5, maxval=100, step=5) maOpen = ema(open , MaPeriod) maHigh = ema(high , MaPeriod) maLow = ema(low , MaPeriod) maClose = ema(close, MaPeriod) haClose = (maOpen+maHigh+maLow+maClose)/4 haOpen = 0.0 haOpen:= na(haOpen[1]) ? (maOpen[1]+maClose[1])/2 : (haOpen[1]+haClose[1])/2 haHigh = max(maHigh, max(haClose, haOpen)) haLow = min(maLow , max(haClose, haOpen)) plotcandle(haOpen, haHigh, haLow, haClose, title="heikin-Ashi smoothed", color=haOpen>haClose ? color.orange : color.blue) B0 = haClose - haOpen B1 = haClose[1] - haOpen[1] B2 = haClose[2] - haOpen[2] BuyCondition = B0 > 0.0 and B1 > 0.0 and B2 > 0.0 and haClose > haClose[1] and haClose[1] > haClose[2] SellCondition= B0 < 0.0 and B1 < 0.0 and B2 < 0.0 and haClose < haClose[1] and haClose[1] < haClose[2] last_signal = 0 Buy_final = BuyCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) ==-1) Sell_final = SellCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1) last_signal := Buy_final ? 1 : Sell_final ? -1 : last_signal[1] plotshape(Buy_final , style=shape.labelup , location=location.belowbar, color=color.blue, title="Buy label" , text="BUY" , textcolor=color.white) plotshape(Sell_final, style=shape.labeldown, location=location.abovebar, color=color.red , title="Sell label", text="SELL", textcolor=color.white) strategy.entry("Buy", strategy.long, when=Buy_final) strategy.close("Buy", when=Sell_final)