Strategi Pembalikan Rata-rata Pergerakan Momentum


Tanggal Pembuatan: 2024-02-19 14:59:10 Akhirnya memodifikasi: 2024-02-19 14:59:10
menyalin: 4 Jumlah klik: 622
1
fokus pada
1617
Pengikut

Strategi Pembalikan Rata-rata Pergerakan Momentum

Ringkasan

Gagasan inti dari strategi ini adalah menggabungkan indikator RSI dan rata-rata bergerak, mencari peluang untuk membalikkan harga saham, dan mencapai harga jual rendah. Ketika indikator RSI menunjukkan saham berada dalam keadaan oversold, dan harga melewati di bawah rata-rata bergerak jangka pendek, sebagai sinyal beli; setelah mengatur stop loss dan stop loss, tunggu harga untuk membalikkan naik.

Prinsip Strategi

Strategi ini terutama menggunakan indikator RSI untuk menilai oversold overbought, dan moving average untuk menilai tren harga. Secara khusus, indikator RSI dapat secara efektif menentukan apakah saham oversold atau overbought. Ketika RSI di bawah 30, berada dalam kisaran oversold.

Oleh karena itu, ketika RSI berada di bawah 40, yang mendekati kondisi oversold, dan harga berada di bawah Moving Average pada hari ke-9, dapat dianggap sebagai saat harga saham mungkin berbalik, melakukan pembelian lebih banyak. Kemudian mengatur stop loss dan stop stop exit, menunggu harga saham berbalik ke atas dan kemudian melakukan hedging untuk mendapatkan keuntungan.

Analisis Keunggulan

Strategi ini menggabungkan indikator RSI dan Moving Average untuk secara efektif menentukan kapan tepat untuk membeli. Dibandingkan dengan penilaian oversold secara tunggal, meningkatkan penentuan kondisional dari Moving Average untuk menghindari pergerakan zona oversold. Pengaturan stop loss fleksibel dan dapat bervariasi dari orang ke orang.

Analisis risiko

Strategi ini bergantung pada pengaturan parameter, seperti RSI judgment threshold, moving average time window, dan lain-lain. Parameter yang berbeda dapat menghasilkan hasil yang berbeda.

Selain itu, biaya transaksi juga akan berdampak pada keuntungan. Anda dapat mempertimbangkan untuk menambahkan volume transaksi atau modul pengelolaan dana untuk mengoptimalkan.

Arah optimasi

Anda dapat mempertimbangkan untuk menyesuaikan parameter rata-rata bergerak secara dinamis, memilih parameter yang berbeda untuk periode yang berbeda; atau memperkenalkan penilaian indikator lain, seperti KDJ, MACD, dan lain-lain, untuk membentuk penilaian komprehensif bermacam-macam kondisi.

Selain itu, Anda juga dapat membangun volume transaksi atau modul manajemen dana untuk mengontrol persentase modal yang digunakan dalam satu transaksi, mengurangi dampak kerugian tunggal.

Meringkaskan

Secara keseluruhan, strategi ini menggunakan indikator RSI dan Moving Average untuk menentukan kapan tepat waktu untuk membeli, dapat secara efektif menilai harga berbalik, membeli saat oversold, dan mendapatkan tingkat keberhasilan yang lebih tinggi. Tergabung dengan Stop Loss Stop untuk mengunci keuntungan, dapat memperoleh efek yang lebih baik.

Kode Sumber Strategi
/*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)