
Strategi ini menggabungkan dua indikator teknis Moving Average dan Relative Strength Index (RSI) untuk menangkap karakteristik berkala musiman dan menghasilkan sinyal perdagangan. Keuntungan dari strategi ini adalah bahwa Anda dapat dengan sangat jelas mengidentifikasi perilaku musiman, tetapi ada risiko untuk tertipu oleh sinyal yang salah.
Strategi ini pertama-tama menghitung rata-rata bergerak untuk periode tertentu n untuk menangkap arah tren jangka menengah dan panjang harga. Kemudian menghitung RSI dari rata-rata bergerak untuk menentukan apakah saat ini berada dalam keadaan overbought atau oversold. RSI menilai sentimen pasar saat ini dengan menghitung rasio kenaikan dan penurunan dalam periode tertentu.
Ketika RSI melintasi bawah tren menghasilkan sinyal beli, yang berarti saat ini berada dalam kondisi oversold, dapat dibeli. Ketika RSI melintasi bawah tren menghasilkan sinyal jual, yang berarti saat ini berada dalam kondisi oversold, dapat dijual. Selain itu, strategi juga mengatur kisaran bulan dan tanggal, hanya untuk perdagangan antara bulan dan tanggal yang ditentukan, untuk menangkap karakteristik musiman.
Ada risiko tertipu oleh sinyal yang salah. Misalnya, pergeseran tren yang dipicu oleh kejadian luar musim yang dapat menyebabkan sinyal perdagangan yang tidak tepat. Solusinya adalah menyesuaikan rentang tanggal bulan untuk menghindari risiko kemungkinan kejadian.
Ketika terjadi pergeseran tren, bisa terjadi pergeseran antara rata-rata bergerak dan indikator RSI, yang menyebabkan sinyal perdagangan tidak konsisten. Solusinya adalah menyesuaikan parameter rata-rata bergerak dengan tepat, mempersingkat periode untuk menangkap pergeseran tren lebih cepat.
Rentang tanggal bulan yang diantisipasi dapat menyimpang dari waktu munculnya musim yang sebenarnya. Solusinya adalah menentukan parameter rentang musim yang lebih akurat berdasarkan pengujian data historis.
Sinyal perdagangan dapat mengalami false breakout. Solusinya adalah dengan mengatur kisaran interval yang lebih luas untuk menghindari tertipu oleh fluktuasi kecil.
Indikator tambahan lainnya, seperti indeks saham bergoyang ((STOCH) dan sebagainya, dapat diperkenalkan untuk mengatur kondisi penyaringan yang lebih ketat dan mengurangi sinyal yang salah.
Anda dapat menguji lebih banyak kombinasi parameter yang berbeda untuk mencari parameter optimal untuk meningkatkan efektivitas strategi. Misalnya, menyesuaikan siklus rata-rata bergerak, parameter tren atas dan bawah RSI, dll.
Metode optimasi langkah demi langkah dapat digunakan untuk mencari ruang parameter secara otomatis untuk menemukan kombinasi parameter yang optimal.
Ini memungkinkan untuk mengumpulkan lebih banyak data historis, menggunakan metode pembelajaran mesin untuk melatih dan mengoptimalkan aturan strategi.
Anda dapat mempertimbangkan untuk memasukkan strategi stop loss dan optimalisasi pengelolaan dana.
Strategi ini menggunakan indikator moving average dan RSI secara komprehensif, dan menambahkan penilaian faktor musiman, untuk membentuk tren yang lebih lengkap dan sistem identifikasi overbought dan oversold. Keuntungan dari strategi ini adalah dapat dengan jelas mengidentifikasi tren musiman, menangkap peluang perdagangan seperti itu.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = " RSI of MA Strategy ",shorttitle="MARSI Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1)
lengthofma = input(15,minval=1,title="Length of MA")
len = input(14, minval=1, title="Length")
upperband = input(70,minval=1,title='Upper Band for RSI')
lowerband = input(30,minval=1,title="Lower Band for RSI")
src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=purple)
band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=purple, transp=90)
longCond = crossover(rsi,lowerband)
shortCond = crossunder(rsi,upperband)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( longCond )
strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
strategy.cancel(id="LONG")
if ( shortCond )
strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
strategy.cancel(id="SHORT")