Strategi Stochastic & Moving Average dengan Filter Ganda

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

img

Gambaran umum

Ini adalah strategi perdagangan jangka panjang yang menggabungkan nilai-nilai osilator stokastik K dan rata-rata bergerak eksponensial dengan filter ganda. Ini mengidentifikasi peluang pembelian ketika stokastik K melintasi D dan memasuki wilayah oversold. Strategi ini menghasilkan sinyal jual ketika harga melintasi di bawah rata-rata bergerak dan stokastik K berada di atas ambang batas, menyaring kemunduran normal dari pembalikan tren. Aturan stop loss juga diterapkan.

Logika Strategi

Ide inti dari strategi ini adalah untuk menggunakan stochastic K untuk waktu sinyal masuk, dan rata-rata bergerak eksponensial untuk pemesanan keuntungan. osilator stochastic baik untuk mendeteksi situasi overbought / oversold, sementara rata-rata bergerak menentukan tren. Dengan menggabungkan keduanya, entri dibuat pada tingkat oversold, dan keuntungan ditelusuri sepanjang tren menggunakan rata-rata bergerak.

Secara khusus, strategi ini menghitung nilai-nilai K dan D stokastis 21 periode, serta EMA 38 periode. Ketika K melintasi di atas D ke zona oversold (default 25), sinyal beli dihasilkan. Ketika harga melintasi di bawah EMA dan K stokastis lebih tinggi dari ambang filter (65), pembalikan tren diasumsikan dan posisi ditutup. Aturan stop loss 13% juga diimplementasikan.

Dengan indikator ganda dan filter ganda, strategi ini secara efektif menyaring sinyal palsu. Membeli ke tingkat oversold dan mengikuti tren naik dapat menangkap keuntungan yang baik. Ini cocok untuk kepemilikan jangka menengah hingga panjang.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Stochastic K menentukan titik masuk yang baik ketika menyeberangi wilayah oversold.

  2. Filter ganda K / D silang dan harga ekstrim secara efektif menghindari sinyal palsu.

  3. Mengikuti mengambil keuntungan dengan EMA memanfaatkan sepenuhnya momentum upside.

  4. Stochastic menyaring kemunduran normal dari pembalikan saat mencatat keuntungan.

  5. Cocok untuk kepemilikan jangka menengah hingga panjang dengan profitabilitas yang baik.

Analisis Risiko

Beberapa risiko yang perlu dipertimbangkan:

  1. Risiko sistemik - pasar beruang dapat menyebabkan kerugian besar.

  2. Risiko throwback - penurunan harga sementara dapat memicu stop loss MA dini.

  3. Risiko optimasi parameter - penyesuaian parameter yang tidak tepat mempengaruhi kinerja.

  4. Risiko angsa hitam - indikator teknis gagal terhadap kejutan pasar.

Arahan Optimasi

Beberapa cara untuk mengoptimalkan strategi:

  1. Mengoptimalkan parameter indikator melalui backtesting yang ketat.

  2. Tambahkan metode stop loss lainnya seperti volatilitas atau trailing stop loss.

  3. Masukkan indikator lain seperti volume, Bollinger Bands dll.

  4. Uji periode rata-rata bergerak yang lebih pendek/panjang.

  5. Sesuaikan parameter secara dinamis berdasarkan sistem pasar.

Kesimpulan

Ini adalah strategi tren yang solid secara keseluruhan. Ini menggunakan stokastis untuk menentukan entri, moving average untuk trail exit, dan menerapkan filter ganda untuk menghindari sinyal palsu. Dengan fleksibilitas penyesuaian parameter yang luas, pemegang jangka menengah hingga panjang dan efektivitas dalam menangkap tren, ini adalah strategi perdagangan saham yang efisien.


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