Strategi Stochastic & Moving Average dengan Penapis Ganda

Penulis:ChaoZhang, Tarikh: 2024-02-02 11:28:58
Tag:

img

Ringkasan

Ini adalah strategi perdagangan jangka panjang yang menggabungkan nilai-nilai osilator stokastik K dan purata bergerak eksponensial dengan penapis berganda. Ia mengenal pasti peluang membeli apabila stokastik K melintasi D dan memasuki wilayah oversold. Strategi ini menghasilkan isyarat jual apabila harga melintasi di bawah purata bergerak dan stokastik K berada di atas ambang, menapis kemunduran normal dari pembalikan trend. Peraturan stop loss juga dilaksanakan.

Logika Strategi

Idea utama strategi ini adalah menggunakan K stokastik untuk isyarat kemasukan masa, dan purata bergerak eksponensial untuk membuat keuntungan. Osilator stokastik baik untuk mengesan situasi overbought / oversold, sementara purata bergerak menentukan trend. Dengan menggabungkan kedua-duanya, entri dibuat pada tahap oversold, dan keuntungan diikuti sepanjang trend menggunakan purata bergerak.

Secara khusus, strategi ini mengira nilai K dan D stokastis 21 tempoh, serta EMA 38 tempoh. Apabila K melintasi di atas D ke dalam zon oversold (default 25), isyarat beli dihasilkan. Apabila harga melintasi di bawah EMA dan K stokastis lebih tinggi daripada ambang penapis (65), pembalikan trend dianggap dan kedudukan ditutup. Peraturan stop loss 13% juga dilaksanakan.

Dengan penunjuk berganda dan penapis berganda, strategi ini berkesan menapis isyarat palsu. Membeli ke tahap oversold dan mengikuti aliran naik boleh menangkap keuntungan yang baik. Ia sesuai untuk pegangan jangka sederhana hingga panjang.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Stochastic K menentukan titik masuk yang baik apabila melintasi wilayah yang terlalu banyak dijual.

  2. Penapis berganda silang K / D dan harga melampau berkesan mengelakkan isyarat palsu.

  3. Mengikuti mengambil keuntungan dengan EMA menggunakan sepenuhnya momentum menaik.

  4. Stochastic menapis kemunduran normal daripada pembalikan ketika membuat akaun keuntungan.

  5. Sesuai untuk pegangan jangka sederhana hingga panjang dengan keuntungan yang baik.

Analisis Risiko

Beberapa risiko yang perlu dipertimbangkan:

  1. Risiko sistemik - pasaran beruang boleh menyebabkan kerugian besar.

  2. Risiko penarikan balik - penarikan balik harga sementara boleh mencetuskan stop loss MA secara awal.

  3. Risiko pengoptimuman parameter - penyesuaian parameter yang tidak sesuai mempengaruhi prestasi.

  4. Risiko angsa hitam - penunjuk teknikal gagal terhadap kejutan pasaran.

Arahan pengoptimuman

Beberapa cara untuk mengoptimumkan strategi:

  1. Mengoptimumkan parameter penunjuk melalui pengujian balik yang ketat.

  2. Tambah kaedah stop loss lain seperti turun naik atau stop loss yang tertinggal.

  3. Menggabungkan penunjuk lain seperti jumlah, Bollinger Bands dan lain-lain

  4. Uji tempoh purata bergerak yang lebih pendek/panjang.

  5. Sesuaikan parameter secara dinamik berdasarkan rejimen pasaran.

Kesimpulan

Ini adalah strategi trend berikut yang kukuh secara keseluruhan. Ia menggunakan stokastik untuk menentukan kemasukan, purata bergerak untuk jejak keluar, dan melaksanakan penapis berganda untuk mengelakkan isyarat palsu. Dengan fleksibiliti penyesuaian parameter yang banyak, pegangan jangka sederhana hingga panjang dan keberkesanan dalam menangkap trend, ini adalah strategi perdagangan saham yang cekap.


/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// English version
strategy(title='Stochastic & MA',  overlay=false)
// INPUTS : all default value have already been optimized
length = input.int(21, 'period', minval=1)
lossp = input.int(13, 'stop loss %', minval=2, step=1)
leverage = input.int(1, 'leverage', minval=1, step=1)
// leverage has been introduced for modifying stop loss levels for financial instruments with leverage, like ETF 
n = input(2, 'n days ago')
filtro = input.int(65, 'k filter for throwbacks', minval=20, step=1)
OverSold = input.int(25, 'Oversold value', minval=5, step=5)
// Building indicators
smoothK = input.int(6, 'k', minval=1)
smoothD = input.int(4, 'd', minval=1)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
//Empowerment: introducing EMA
sma_period = input.int(38, 'periodo Sma', minval=1)
emaf = ta.ema(close, sma_period)
//ENTRY condition and order
// First of all, it's better not trade shares with a quaterly loss or with a bad surprise towards to analysts' expectations or ipevaluated (P/E > 50), but on your choice
// You entry when Stochastic's K is higher than D in Oversold area (you may personalize), applying the condition that today's close should be higher than one of n-days ago (default of the day before yesterday or 2 candles ago)
entry1 = k > d and k <= OverSold and close >= close[n]
strategy.entry('Long', strategy.long, comment='k basso', when=entry1)
//EXIT CONDITIONS
//  1) close crosses under exponential movinig average with filter that k >= fixed level (65), in order to distinguish a violent movement of prices with a possibile beginning of a trend from an almost exhausted "ordinary" throwback
// 2) fixed stop loss on percentage
exit1 = ta.crossunder(close, emaf) and k >= filtro
losspel = strategy.position_avg_price * (1 - lossp / 100 * leverage)
exit2 = close < losspel
strategy.close('Long', when=exit1, comment='sma')
strategy.close('Long', when=exit2, comment='stop loss')
// plotting indicators (add Ema on your choice)
plot(k, color=color.new(color.blue, 0), linewidth=1, title='k Stoch')
plot(d, color=color.new(color.red, 0), linewidth=1, title='d stoch signal')
plot(OverSold, title='Oversold', color=color.new(color.aqua, 0))
plot(filtro, color=color.new(color.gray, 0), title='k-filter for ema')





Lebih lanjut