Strategi ini adalah sistem mengikuti trend berdasarkan lilin Heikin-Ashi yang dilancangkan dan crossover Purata Bergerak Sederhana (SMA). Ia mengenal pasti perubahan trend melalui persimpangan lilin Heikin-Ashi yang dilancangkan oleh EMA dengan SMA 44-periode untuk menangkap peluang trend utama di pasaran. Strategi ini menggabungkan mekanisme pengurusan kedudukan dinamik yang secara automatik menutup kedudukan apabila harga terlalu dekat dengan purata bergerak jangka panjang, mengelakkan risiko goyangan dalam menyatukan pasaran.
Logik terasnya terdiri daripada tiga elemen utama: Pertama, menukar lilin tradisional menjadi lilin Heikin-Ashi dengan mengira purata aritmetik harga terbuka, tinggi, rendah, dan dekat untuk menapis bunyi bising pasaran; Kedua, menggunakan EMA 6-periode untuk meluruskan Heikin-Ashi, meningkatkan kebolehpercayaan isyarat; Akhirnya, menggabungkan harga penutupan Heikin-Ashi yang diluruskan dengan SMA 44-periode, menghasilkan isyarat panjang pada salib menaik dan isyarat pendek pada salib menurun. Konsep
Strategi ini membina sistem perdagangan trend yang kukuh dengan menggabungkan lilin Heikin-Ashi dengan sistem SMA. Ia mempunyai mekanisme penjanaan isyarat yang komprehensif dan kawalan risiko yang munasabah, terutama sesuai untuk pasaran dengan ciri trend yang berbeza. Keefektifan praktikal strategi ini dapat ditingkatkan lagi melalui arah pengoptimuman yang dicadangkan. Secara keseluruhan, ia mewakili strategi trend berikut yang dirancang dengan baik dengan logik yang jelas.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Smoothed Heikin Ashi with SMA Strategy", overlay=true) // Input parameters for SMAs s1 = input.int(11, title="Short SMA Period") s2 = input.int(44, title="Long SMA Period") noPositionThreshold = input.float(0.001, title="No Position Threshold", step=0.0001) // Calculate the original Heikin-Ashi values haClose = (open + high + low + close) / 4 var float haOpen = na haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2 haHigh = math.max(high, math.max(haOpen, haClose)) haLow = math.min(low, math.min(haOpen, haClose)) // Smoothing using exponential moving averages smoothLength = input.int(6, title="Smoothing Length") smoothedHaClose = ta.ema(haClose, smoothLength) smoothedHaOpen = ta.ema(haOpen, smoothLength) smoothedHaHigh = ta.ema(haHigh, smoothLength) smoothedHaLow = ta.ema(haLow, smoothLength) // Calculate SMAs smaShort = ta.sma(close, s1) smaLong = ta.sma(close, s2) // Plotting the smoothed Heikin-Ashi values plotcandle(smoothedHaOpen, smoothedHaHigh, smoothedHaLow, smoothedHaClose, color=(smoothedHaClose >= smoothedHaOpen ? color.green : color.red), title="Smoothed Heikin Ashi") plot(smaShort, color=color.blue, title="SMA Short") plot(smaLong, color=color.red, title="SMA Long") // Generate buy/sell signals based on SHA crossing 44 SMA longCondition = ta.crossover(smoothedHaClose, smaLong) shortCondition = ta.crossunder(smoothedHaClose, smaLong) noPositionCondition = math.abs(smoothedHaClose - smaLong) < noPositionThreshold // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (noPositionCondition and strategy.position_size != 0) strategy.close_all("No Position") // Plot buy/sell signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) plotshape(series=noPositionCondition and strategy.position_size != 0, location=location.belowbar, color=color.yellow, style=shape.labeldown, text="EXIT", size=size.small)