Momentum Moving Average Reversal Strategi

Penulis:ChaoZhang, Tanggal: 2024-02-19 14:59:10
Tag:

img

Gambaran umum

Ide inti dari strategi ini adalah untuk menggabungkan indikator RSI dan moving average untuk menemukan peluang untuk pembalikan harga saham dan mencapai pembelian rendah dan penjualan tinggi. Ketika indikator RSI menunjukkan bahwa saham terlalu laris dan rata-rata bergerak jangka pendek melintasi di bawah harga, itu berfungsi sebagai sinyal beli. Setelah mengatur stop loss dan mengambil keuntungan, tunggu sampai harga berbalik ke atas.

Prinsip Strategi

Strategi ini terutama menggunakan indikator RSI untuk menilai kondisi oversold dan overbought, dan salib emas dan salib mati dari rata-rata bergerak untuk menentukan tren harga. Secara khusus, indikator RSI dapat secara efektif menilai apakah saham oversold atau overbought. Ketika RSI di bawah 30, itu berada dalam kisaran oversold. Dan ketika rata-rata bergerak jangka pendek (disetel menjadi 9 hari dalam strategi ini) melintasi di bawah harga, itu berarti harga jatuh.

Jadi ketika indikator RSI berada di bawah 40, mendekati keadaan oversold, dan rata-rata bergerak 9 hari melintasi di bawah harga, itu dapat dinilai sebagai waktu yang mungkin untuk harga saham untuk membalik, pergi panjang untuk membeli.

Analisis Keuntungan

Strategi ini menggabungkan indikator RSI dan moving average, yang dapat secara efektif menentukan waktu pembelian. Dibandingkan dengan penilaian tunggal oversold, penilaian kondisi tambahan dari moving average menghindari fluktuasi di area oversold. Pengaturan stop loss dan take profit fleksibel dan dapat bervariasi dari orang ke orang.

Analisis Risiko

Strategi ini bergantung pada pengaturan parameter seperti ambang penilaian RSI, jendela waktu rata-rata bergerak, dll. Parameter yang berbeda dapat menyebabkan hasil yang berbeda. Dan dalam kondisi pasar tertentu, stop loss masih mungkin.

Selain itu, biaya transaksi juga akan memiliki dampak tertentu pada keuntungan.

Arah Optimalisasi

Pertimbangkan untuk menyesuaikan parameter rata-rata bergerak secara dinamis, memilih parameter yang berbeda untuk siklus yang berbeda; atau memperkenalkan indikator lain untuk menilai, seperti KDJ, MACD, dll, untuk membentuk penilaian yang komprehensif berdasarkan beberapa kondisi.

Hal ini juga mungkin untuk membangun volume perdagangan atau modul manajemen modal untuk mengontrol proporsi dana yang ditempati oleh perdagangan tunggal dan mengurangi dampak dari kerugian tunggal.

Ringkasan

Secara umum, strategi ini menggunakan indikator RSI dan rata-rata bergerak untuk menentukan waktu beli dan dapat secara efektif menentukan pembalikan harga. Membeli di oversold dan mengunci keuntungan dengan stop loss dan mengambil keuntungan dapat menghasilkan hasil yang baik. Untuk optimasi di masa depan, perlu dipertimbangkan untuk memasukkan lebih banyak Indikator atau menambahkan modul perdagangan / manajemen dana tambahan untuk membuat strategi lebih kuat.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 30m
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/
// © Coinrule

//@version=4
strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//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()  => true

//MA inputs and calculations
inshort=input(9, title='MA short period')
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)

//Entry 
strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window())

//Exit
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01
longTakePerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01
longSL  = strategy.position_avg_price * (1 - longLossPerc)
longTP  = strategy.position_avg_price * (1 + longTakePerc)
if (strategy.position_size > 0 and window())
    strategy.exit(id="TP/SL", stop=longSL, limit=longTP)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90)  
plot(MAshort, color=color.purple, linewidth=4)



Lebih banyak