Strategi pembalikan purata bergerak

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

img

Ringkasan

Idea utama strategi ini adalah untuk menggabungkan penunjuk RSI dan purata bergerak untuk mencari peluang untuk pembalikan harga saham dan mencapai membeli rendah dan menjual tinggi. Apabila penunjuk RSI menunjukkan bahawa stok terlalu dijual dan purata bergerak jangka pendek melintasi di bawah harga, ia berfungsi sebagai isyarat beli. Selepas menetapkan stop loss dan mengambil keuntungan, tunggu harga berbalik ke atas.

Prinsip Strategi

Strategi ini menggunakan penunjuk RSI untuk menilai keadaan oversold dan overbought, dan salib emas dan salib mati purata bergerak untuk menentukan trend harga. Khususnya, penunjuk RSI dapat menilai dengan berkesan sama ada saham oversold atau overbought. Apabila RSI berada di bawah 30, ia berada dalam julat oversold. Dan apabila purata bergerak jangka pendek (ditentukan kepada 9 hari dalam strategi ini) melintasi di bawah harga, ia bermakna harga jatuh.

Jadi apabila penunjuk RSI di bawah 40, mendekati keadaan oversold, dan purata bergerak 9 hari melintasi di bawah harga, ia boleh dinilai sebagai masa yang mungkin untuk harga saham untuk membalikkan, pergi lama untuk membeli. kemudian tetapkan stop loss dan mengambil keuntungan untuk keluar, menunggu harga saham untuk membalikkan ke atas sebelum menjual untuk mengambil keuntungan.

Analisis Kelebihan

Strategi ini menggabungkan penunjuk RSI dan purata bergerak, yang dapat menentukan masa pembelian dengan berkesan. Berbanding dengan satu penghakiman oversold, penghakiman syarat tambahan purata bergerak mengelakkan turun naik di kawasan oversold. Tetapan stop loss dan mengambil keuntungan adalah fleksibel dan boleh berbeza dari orang ke orang.

Analisis Risiko

Strategi ini bergantung pada tetapan parameter seperti ambang penilaian RSI, tingkap masa purata bergerak, dll. Parameter yang berbeza boleh membawa kepada hasil yang berbeza.

Di samping itu, yuran urus niaga juga akan mempunyai kesan tertentu terhadap keuntungan.

Arah pengoptimuman

Pertimbangkan untuk menyesuaikan parameter purata bergerak secara dinamik, memilih parameter yang berbeza untuk kitaran yang berbeza; atau memperkenalkan penunjuk lain untuk menilai, seperti KDJ, MACD, dan lain-lain, untuk membentuk penilaian komprehensif berdasarkan pelbagai keadaan.

Ia juga mungkin untuk menubuhkan jumlah dagangan atau modul pengurusan modal untuk mengawal bahagian dana yang diduduki oleh perdagangan tunggal dan mengurangkan kesan kerugian tunggal.

Ringkasan

Secara amnya, strategi ini menggunakan penunjuk RSI dan purata bergerak untuk menentukan masa beli dan dapat menentukan pembalikan harga dengan berkesan. Membeli terlalu banyak dan mengunci keuntungan dengan stop loss dan mengambil keuntungan dapat menghasilkan hasil yang baik. Untuk pengoptimuman masa depan, perlu mempertimbangkan memasukkan lebih banyak Penunjuk atau menambah modul perdagangan / pengurusan dana tambahan untuk menjadikan strategi lebih mantap.


/*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 lanjut