Strategi ini menggunakan penyeberangan dua rata-rata bergerak dengan periode yang berbeda untuk menghasilkan sinyal perdagangan. Ini termasuk dalam strategi mengikuti tren. Strategi ini menangkap peluang tren dengan menggunakan sinyal ketika MA periode yang lebih pendek melintasi MA periode yang lebih lama.
Strategi ini menggunakan MA jangka pendek 9 periode (SMA) dan MA jangka panjang 50 periode (LMA). Ketika SMA melintasi LMA, sinyal beli dihasilkan. Ketika SMA melintasi di bawah LMA, sinyal jual dihasilkan.
Strategi ini juga menggabungkan indikator RSI untuk mengukur kekuatan tren. Sinyal perdagangan hanya dihasilkan ketika RSI berada di atas ambang batas (default 55).
Strategi ini diperdagangkan 30% dari total modal setiap kali, dengan hanya satu posisi terbuka pada suatu waktu.
Risiko dapat dikurangi melalui optimasi parameter, menggunakan indikator lain, manajemen modal yang ketat, dan stop loss.
Strategi ini menangkap peluang tren menggunakan sistem crossover MA sederhana. Parameter default dioptimalkan dengan pengembalian yang stabil, cocok untuk perdagangan algoritmik. Perbaikan lebih lanjut dapat dilakukan dengan menambahkan indikator lain, mengoptimalkan parameter, dan menerapkan stop loss. Secara keseluruhan, ini adalah strategi tren yang efektif untuk mengikuti tren pasar menggunakan sinyal crossover.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © relevantLeader16058 //@version=4 strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" //MA inputs and calculations inlong=input(50, title='MA long period') inshort=input(9, title='MA short period') MAlong = sma(close, inlong) MAshort= sma(close, inshort) // RSI inputs and calculations lengthRSI = (14) RSI = rsi(close, lengthRSI) RSI_Signal = input(55, title = 'RSI Trigger', minval=1) //Entry and Exit bullish = crossover(MAshort, MAlong) bearish = crossunder(MAshort, MAlong) strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window()) strategy.close(id="long", when = bearish and window()) plot(MAshort, color=color.purple, linewidth=2) plot(MAlong, color=color.red, linewidth=2)