
Strategi ini menggunakan sistem rata-rata pergerakan ganda untuk penilaian tren dan keputusan perdagangan, dan mengidentifikasi awal, kelanjutan atau akhir tren pasar melalui hubungan posisi relatif antara rata-rata pergerakan cepat dan rata-rata pergerakan lambat pada titik waktu tertentu. Strategi ini memeriksa hubungan posisi antara EMA cepat dan EMA lambat pada waktu yang ditentukan setiap hari, menetapkan posisi panjang ketika garis cepat berada di atas garis lambat, dan menetapkan posisi pendek ketika garis cepat berada di bawah garis lambat, dengan demikian mencapai pelacakan tren perdagangan.
Inti dari strategi ini adalah membuat penilaian tren berdasarkan dua rata-rata pergerakan eksponensial (EMA) dalam periode yang berbeda. EMA cepat (periode default adalah 10) lebih sensitif terhadap perubahan harga dan dapat menangkap tren pasar lebih cepat; EMA lambat (periode default adalah 50) mencerminkan tren jangka panjang. Strategi ini memeriksa hubungan posisi dua rata-rata pergerakan pada waktu tertentu pada setiap hari perdagangan (defaultnya adalah 9:00), menentukan arah tren pasar dan melakukan perdagangan berdasarkan sinyal persilangan rata-rata pergerakan. Ketika EMA cepat melintasi ke atas EMA lambat, ini menunjukkan bahwa momentum kenaikan jangka pendek telah meningkat, dan inilah saatnya untuk memasuki pasar untuk mengambil posisi beli; ketika EMA cepat melintasi ke bawah EMA lambat, ini menunjukkan bahwa EMA pendek telah meningkat, dan inilah saatnya untuk memasuki pasar untuk mengambil posisi beli. momentum penurunan jangka panjang telah meningkat, dan inilah saatnya untuk memasuki pasar untuk melakukan aksi short.
Strategi ini mewujudkan sistem perdagangan pelacakan tren yang sederhana dan efektif dengan menggabungkan sistem rata-rata pergerakan ganda yang cepat dan lambat dengan mekanisme pemeriksaan waktu tetap. Keuntungan dari strategi ini adalah logika yang jelas dan tingkat otomatisasi yang tinggi, tetapi juga memiliki keterbatasan seperti kelambatan rata-rata bergerak dan waktu masuk yang tetap. Masih banyak ruang untuk perbaikan dalam strategi dengan memperkenalkan indikator teknis tambahan, mengoptimalkan mekanisme pemilihan parameter, dan meningkatkan langkah-langkah pengendalian risiko. Secara keseluruhan, ini adalah kerangka strategi dasar dengan nilai praktis, yang dapat ditingkatkan dan dioptimalkan lebih lanjut sesuai kebutuhan spesifik.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Daily EMA Comparison Strategy", shorttitle="Daily EMA cros Comparison", overlay=true)
//------------------------------------------------------------------------------
// Inputs
//------------------------------------------------------------------------------
fastEmaLength = input.int(10, title="Fast EMA Length", minval=1) // Fast EMA period
slowEmaLength = input.int(50, title="Slow EMA Length", minval=1) // Slow EMA period
checkHour = input.int(9, title="Check Hour (24h format)", minval=0, maxval=23) // Hour to check
checkMinute = input.int(0, title="Check Minute", minval=0, maxval=59) // Minute to check
//------------------------------------------------------------------------------
// EMA Calculation
//------------------------------------------------------------------------------
fastEMA = ta.ema(close, fastEmaLength)
slowEMA = ta.ema(close, slowEmaLength)
//------------------------------------------------------------------------------
// Time Check
//------------------------------------------------------------------------------
// Get the current bar's time in the exchange's timezone
currentTime = timestamp("GMT-0", year, month, dayofmonth, checkHour, checkMinute)
// Check if the bar's time equals or passes the daily check time
isCheckTime = (time >= currentTime and time < currentTime + 60 * 1000) // 1-minute tolerance
//------------------------------------------------------------------------------
// Entry Conditions
//------------------------------------------------------------------------------
// Buy if Fast EMA is above Slow EMA at the specified time
buyCondition = isCheckTime and fastEMA > slowEMA
// Sell if Fast EMA is below Slow EMA at the specified time
sellCondition = isCheckTime and fastEMA < slowEMA
//------------------------------------------------------------------------------
// Strategy Execution
//------------------------------------------------------------------------------
// Enter Long
if buyCondition
strategy.entry("Long", strategy.long)
// Enter Short
if sellCondition
strategy.entry("Short", strategy.short)
//------------------------------------------------------------------------------
// Plot EMAs
//------------------------------------------------------------------------------
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")