Strategi ini dirancang berdasarkan prinsip salib emas dan salib mati dari Simple Moving Average (SMA). Strategi ini menggunakan dua SMA, yaitu SMA cepat dan SMA lambat. Ketika SMA cepat melintasi di atas SMA lambat dari bawah, sinyal beli dihasilkan. Ketika SMA cepat melintasi di bawah SMA lambat dari atas, sinyal jual dihasilkan.
Strategi ini terutama bergantung pada dua garis indikator SMA. SMA cepat memiliki periode yang lebih pendek dan dapat menangkap perubahan harga lebih cepat. SMA lambat memiliki periode yang lebih lama dan dapat menyaring beberapa kebisingan. Ketika SMA cepat melintasi di atas SMA lambat dari bawah, itu menunjukkan bahwa kecepatan kenaikan jangka pendek lebih cepat dan menghasilkan sinyal beli. Ketika SMA cepat melintasi di bawah SMA lambat dari atas, itu menunjukkan bahwa kecepatan penurunan jangka pendek lebih cepat dan menghasilkan sinyal jual.
Dengan menetapkan parameter periode SMA yang berbeda, parameter strategi dapat disesuaikan untuk menyesuaikan diri dengan lingkungan pasar yang berbeda. Pada saat yang sama, strategi juga memungkinkan pengaturan rentang waktu backtesting untuk menguji parameter strategi pada data historis.
Untuk mengatasi risiko di atas, langkah-langkah berikut dapat diambil:
Ini adalah strategi tren berikut yang khas. Dengan menerapkan prinsip crossover rata-rata bergerak ganda yang sederhana, dapat memperoleh hasil pelacakan yang baik ketika parameter ditetapkan dengan tepat. Namun, SMA itu sendiri memiliki efek keterlambatan tertentu dan tidak dapat menentukan momentum tren. Oleh karena itu, dalam aplikasi yang sebenarnya, alat bantu lainnya perlu diperkenalkan untuk membentuk kombinasi indikator, dan dilengkapi dengan pengoptimalan parameter otomatis dan sarana pengendalian risiko, untuk membuat strategi secara konsisten menguntungkan.
/*backtest start: 2023-12-17 00:00:00 end: 2023-12-18 19:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD') strategy(title="SMA Cross Entry & Exit Strategy", overlay=true) // Credit goes to this developer for the "Date Range Code" // https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/ // === GENERAL INPUTS === // short ma maFastSource = input(defval = open, title = "Fast MA Source") maFastLength = input(defval = 36, title = "Fast MA Period", minval = 1) // long ma maSlowSource = input(defval = open , title = "Slow MA Source") maSlowLength = input(defval = 46, title = "Slow MA Period", minval = 1) // === SERIES SETUP === // a couple of ma's.. maFast = sma(maFastSource, maFastLength) maSlow = sma(maSlowSource, maSlowLength) // === PLOTTING === fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30) slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" // === LOGIC === //enterLong = crossover(maFast, maSlow) //exitLong = crossover(maSlow, maFast) enterLong = crossover(maSlow, maFast) exitLong = crossover(maFast, maSlow) // Entry // strategy.entry(id="Long Entry", long=true, when=window() and enterLong) strategy.entry(id="Short Entry", long=false, when=window() and exitLong) // === FILL ==== fill(fast, slow, color = maFast > maSlow ? green : red)