Strategi ini adalah sistem mengikuti tren berdasarkan lilin Heikin-Ashi halus dan simpler moving average (SMA) crossover. Strategi ini mengidentifikasi perubahan tren melalui persimpangan lilin Heikin-Ashi halus EMA dengan SMA 44 periode untuk menangkap peluang tren utama di pasar. Strategi ini menggabungkan mekanisme manajemen posisi dinamis yang secara otomatis menutup posisi ketika harga terlalu dekat dengan rata-rata bergerak jangka panjang, menghindari risiko osilasi dalam konsolidasi pasar.
Logika inti terdiri dari tiga elemen utama: Pertama, mengubah lilin tradisional menjadi lilin Heikin-Ashi dengan menghitung rata-rata aritmatika harga terbuka, tinggi, rendah, dan dekat untuk menyaring kebisingan pasar; Kedua, menggunakan EMA 6 periode untuk meratakan Heikin-Ashi, meningkatkan keandalan sinyal lebih lanjut; Akhirnya, menggabungkan harga penutupan Heikin-Ashi yang meratakan dengan SMA 44 periode, menghasilkan sinyal panjang pada penyeberangan ke atas dan sinyal pendek pada penyeberangan ke bawah.
Strategi ini membangun sistem perdagangan trend berikut yang kuat dengan menggabungkan lilin Heikin-Ashi dengan sistem SMA. Ini memiliki mekanisme generasi sinyal yang komprehensif dan kontrol risiko yang wajar, terutama cocok untuk pasar dengan karakteristik tren yang berbeda. Efektivitas praktis strategi ini dapat ditingkatkan lebih lanjut melalui arah optimasi yang disarankan. Secara keseluruhan, ini mewakili strategi trend berikut yang dirancang dengan baik dengan logika 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)