
Chiến lược này là một hệ thống theo dõi xu hướng dựa trên đường K của Heikin-Ashi. Bằng cách xử lý trung bình di chuyển chỉ số kép của đường K truyền thống, nó làm giảm tiếng ồn thị trường hiệu quả và cung cấp tín hiệu xu hướng rõ ràng hơn. Chiến lược chỉ hoạt động theo nhiều cách, giữ vị trí trong xu hướng tăng và xem xét vị trí bằng phẳng trong xu hướng giảm, thu được lợi nhuận từ thị trường bằng cách nắm bắt xu hướng hiệu quả.
Logic cốt lõi của chiến lược bao gồm các bước chính sau:
Chiến lược này xây dựng một hệ thống theo dõi xu hướng vững chắc bằng cách xử lý trơn kép và đường K của Huế Giang, được cải tiến. Chiến lược được thiết kế đơn giản, dễ hiểu và thực hiện, đồng thời cung cấp nhiều hướng tối ưu hóa để thích ứng với các môi trường thị trường khác nhau. Mặc dù có một số rủi ro bị tụt hậu và rút lui, nhưng thông qua các biện pháp quản lý vốn và kiểm soát rủi ro hợp lý, chiến lược này có thể cung cấp cho nhà đầu tư một công cụ theo dõi xu hướng đáng tin cậy.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Smoothed Heiken Ashi Strategy Long Only", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input.int(10, title="EMA Length")
len2 = input.int(10, title="Smoothing Length")
start_date = input(defval=timestamp("2020-01-01"), title="Backtest Start Date")
o = ta.ema(open, len)
c = ta.ema(close, len)
h = ta.ema(high, len)
l = ta.ema(low, len)
haclose = (o + h + l + c) / 4
var float haopen = na
haopen := na(haopen[1]) ? (o + c) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = math.max(h, math.max(haopen, haclose))
halow = math.min(l, math.min(haopen, haclose))
o2 = ta.ema(haopen, len2)
c2 = ta.ema(haclose, len2)
h2 = ta.ema(hahigh, len2)
l2 = ta.ema(halow, len2)
col = o2 > c2 ? color.red : color.lime
// Plot candles without visible wicks
plotcandle(o2, o2, c2, c2, title="Heikin Smoothed", color=col, wickcolor=color.new(col, 100))
// Delayed Buy and Sell signals
colorChange = col != col[1]
buySignal = colorChange[1] and col[1] == color.lime
sellSignal = colorChange[1] and col[1] == color.red
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Strategy entry and exit
if (true)
if (buySignal)
strategy.entry("Long", strategy.long)
if (sellSignal)
strategy.close("Long")
// Add a vertical line at the start date
// if (time == start_date)
// line.new(x1=bar_index, y1=low, x2=bar_index, y2=high, color=color.blue, width=2)
// Alert conditions
alertcondition(colorChange[1], title="Color Change Alert", message="Heiken Ashi Candle Color Changed")
alertcondition(buySignal, title="Buy Signal Alert", message="Buy Signal: Color changed from Red to Green")
alertcondition(sellSignal, title="Sell Signal Alert", message="Sell Signal: Color changed from Green to Red")