Strategi ini menggunakan sistem rata-rata bergerak ganda untuk penentuan tren dan keputusan perdagangan, memanfaatkan posisi relatif rata-rata bergerak eksponensial cepat dan lambat (EMA) pada titik waktu tertentu untuk mengidentifikasi awal, kelanjutan, atau penghentian tren.
Inti dari strategi ini didasarkan pada dua EMA dengan periode yang berbeda untuk penentuan tren. EMA cepat (periode default 10) lebih sensitif terhadap perubahan harga, mampu menangkap pergerakan pasar dengan cepat; EMA lambat (periode default 50) mencerminkan tren jangka panjang. Strategi ini memeriksa hubungan posisi antara kedua garis ini pada waktu tertentu setiap hari perdagangan (default 9:00), menggunakan sinyal silang EMA untuk menentukan arah tren pasar dan melaksanakan perdagangan. Posisi panjang dimasukkan ketika EMA cepat melintasi di atas EMA lambat, menunjukkan penguatan momentum naik, sementara posisi pendek dimasukkan ketika EMA cepat melintasi di bawah EMA lambat, menunjukkan penguatan momentum turun.
Strategi ini mencapai sistem perdagangan yang sederhana namun efektif mengikuti tren dengan menggabungkan sistem EMA ganda dengan mekanisme pemeriksaan waktu tetap. Kekuatannya terletak pada logika yang jelas dan otomatisasi yang tinggi, meskipun menghadapi keterbatasan dari keterlambatan rata-rata bergerak dan waktu masuk tetap. Masih ada ruang yang signifikan untuk perbaikan melalui pengenalan indikator teknis tambahan, pengoptimalan mekanisme seleksi parameter, dan langkah-langkah pengendalian risiko yang ditingkatkan. Secara keseluruhan, ini merupakan kerangka dasar strategi praktis yang dapat disempurnakan dan dioptimalkan sesuai dengan persyaratan tertentu.
/*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")