
Strategi ini adalah sistem pengesanan trend berdasarkan Heikin-Ashi. Dengan menggunakan purata bergerak indeks ganda (EMA) yang halus terhadap garis K tradisional, ia dapat mengurangkan kebisingan pasaran dan memberikan isyarat trend yang lebih jelas. Strategi ini hanya beroperasi dengan beberapa cara, memegang kedudukan dalam trend menaik dan melihat posisi yang rata dalam trend menurun, dan memperoleh keuntungan pasaran dengan menangkap trend yang cekap.
Logik teras strategi merangkumi langkah utama berikut:
Strategi ini membina sistem pengesanan trend yang mantap dengan pengendalian dua kali ganda dan garis K. Strategi ini direka dengan ringkas, mudah difahami dan dilaksanakan, sambil menyediakan beberapa arah pengoptimuman untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Walaupun terdapat risiko ketinggalan dan penarikan balik, strategi ini dapat menyediakan pelabur dengan alat pengesanan trend yang boleh dipercayai melalui pengurusan dana dan langkah-langkah kawalan risiko yang munasabah.
/*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")