Strategi ini menggunakan sistem purata bergerak berganda untuk penentuan trend dan keputusan perdagangan, menggunakan kedudukan relatif purata bergerak eksponensial pantas dan perlahan (EMA) pada titik masa tertentu untuk mengenal pasti permulaan, kesinambungan, atau penamatan trend. Strategi ini memeriksa hubungan antara EMA pantas dan perlahan pada masa tetap setiap hari, menubuhkan kedudukan panjang apabila garis pantas berada di atas garis perlahan dan kedudukan pendek apabila ia berada di bawah.
Inti strategi ini adalah berdasarkan dua EMA dengan tempoh yang berbeza untuk penentuan trend. EMA pantas (periode lalai 10) lebih sensitif terhadap perubahan harga, mampu menangkap pergerakan pasaran dengan cepat; EMA perlahan (periode lalai 50) mencerminkan trend jangka panjang. Strategi ini memeriksa hubungan kedudukan antara kedua-dua garis ini pada waktu tertentu setiap hari dagangan (default 9:00), menggunakan isyarat silang EMA untuk menentukan arah trend pasaran dan melaksanakan dagangan. Posisi panjang dimasukkan apabila EMA pantas melintasi di atas EMA perlahan, menunjukkan penguatan momentum menaik, sementara kedudukan pendek dimasukkan apabila EMA pantas melintasi di bawah EMA perlahan, menunjukkan penguatan momentum menurun.
Strategi ini mencapai sistem perdagangan trend yang mudah namun berkesan dengan menggabungkan sistem EMA berganda dengan mekanisme pemeriksaan masa tetap. Kekuatannya terletak pada logik yang jelas dan automasi yang tinggi, walaupun ia menghadapi batasan dari kelewatan purata bergerak dan masa kemasukan tetap. Masih ada ruang yang signifikan untuk peningkatan melalui pengenalan penunjuk teknikal tambahan, pengoptimuman mekanisme pemilihan parameter, dan langkah kawalan risiko yang ditingkatkan. Secara keseluruhan, ini mewakili kerangka strategi asas praktikal yang dapat disempurnakan dan dioptimumkan mengikut keperluan 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")