Strategi Perdagangan Stochastic Purata

Penulis:ChaoZhang, Tarikh: 2023-10-26 16:20:33
Tag:

img

Ringkasan

Strategi ini adalah berdasarkan pada Oscillator Stochastic Purata untuk penilaian isyarat perdagangan dan tergolong dalam strategi trend berikut. Ia mengira nilai purata bergerak %K dan %D dari Oscillator Stochastic Purata. Apabila salib emas berlaku, pergi panjang. Apabila salib kematian berlaku, pergi pendek. Ia adalah strategi trend berikut yang tipikal.

Logika Strategi

  1. Mengira nilai %K dan %D dari Oscillator Stochastic Purata. %K adalah purata bergerak nilai rawak yang dikira berdasarkan harga penutupan dalam tempoh tertentu, yang mencerminkan kedudukan relatif harga semasa kepada harga tertinggi dan terendah dalam tempoh tertentu. %D adalah purata bergerak %K yang digunakan untuk mengesahkan trend.

  2. Purata bergerak yang lancar secara eksponensial (EMA) digunakan untuk masing-masing %K dan %D untuk mendapatkan nilai purata _avg_k dan _avg_d dari Osilator Stochastic Purata.

  3. Menentukan isyarat perdagangan:

    • Isyarat beli: apabila _avg_k melintasi _avg_d dan _avg_d < 20, pergi panjang.

    • Isyarat jual: apabila _avg_k melintasi di bawah _avg_d dan _avg_d > 80, pergi pendek.

  4. Pengurusan kedudukan:

    • Stop loss panjang: tutup panjang apabila _avg_d > 80

    • Stop loss pendek: tutup pendek apabila _avg_d < 20

  5. Ijinkan maksimum 3 perintah dalam arah yang sama, yang merupakan strategi piramid.

Kelebihan

  1. Menggunakan purata bergerak berganda untuk menentukan salib emas dan salib kematian dapat menapis pecah palsu dengan berkesan dan meningkatkan kualiti isyarat.

  2. Menggunakan Oscillator Stochastic Purata dapat dengan berkesan mengesan trend harga.

  3. Menggabungkan zon overbought dan oversold membantu mengelakkan perdagangan yang kerap di pasaran terhad julat.

  4. Membolehkan piramid boleh mendapatkan lebih banyak keuntungan dalam pasaran tren.

  5. Strategi stop loss mengawal kerugian tunggal.

Risiko

  1. Strategi perdagangan purata bergerak berganda cenderung menghasilkan perdagangan yang kerap, yang akan menjejaskan keuntungan jika kos transaksi terlalu tinggi.

  2. Menggunakan titik stop loss tetap boleh menghentikan kerugian terlalu awal keluar dari trend.

  3. Terlalu banyak piramida boleh memperbesar kerugian.

  4. Ia tidak dapat menentukan titik pembalikan trend dengan berkesan dan boleh membawa kepada kerugian besar apabila trend berbalik.

  5. Tempoh parameter perlu dioptimumkan kerana tempoh yang berbeza boleh membawa kepada hasil yang sangat berbeza.

Pengoptimuman

  1. Pertimbangkan untuk memperkenalkan penunjuk penilaian trend untuk mengelakkan perdagangan kontra trend.

  2. Sesuaikan titik stop loss secara dinamik untuk menyesuaikan trend dengan lebih baik.

  3. Mengoptimumkan strategi piramida, contohnya, meningkatkan saiz kedudukan secara progresif.

  4. Masukkan penunjuk lain untuk menilai pembalikan trend dan keluar keuntungan awal.

  5. Pengoptimuman parameter ujian secara berasingan untuk produk yang berbeza untuk meningkatkan kebolehsesuaian.

Ringkasan

Ringkasnya, ini adalah strategi trend berikut yang tipikal. Ia menggunakan Oscillator Stochastic Purata untuk menentukan arah trend dan piramid apabila trend berlaku. Kelebihannya adalah keupayaan penjejakan yang kuat yang sesuai untuk pasaran trend. Tetapi penting untuk mengelakkan perdagangan kontra trend. Pengoptimuman lanjut boleh dilakukan dengan memperkenalkan penilaian trend, mengoptimumkan strategi stop loss, mengawal masa piramida, dll. Dengan pemilihan parameter yang betul, hasil penjejakan yang baik dapat dicapai.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//1. AVG Stochastic Calculate
//1.1 AVG %K is calculated by apply EMA with smooth K period on Average of Original Stochastic %k & %d
//+ avg_k=ema((%k+%d)/2,smoothK)
//1.2 AVG %D is calculated by apply EMA with %d period on AVG %K
//+ avg_d=ema(avg_k,periodD)
//2. Parameter
//+ %K Length: 21
//+ %K Smoothing: 3
//+ %D Smoothing: 3
//+ Symbol: BTC/USDT
//+ Timeframe: M30
//+ Pyramiding: Maximum 3 orders at the same direction.
//3. Signal
//3.1 Buy Signal
//+ Entry: AVG %K crossover AVG %D and AVG %D < 20
//+ Exit: AVG %D > 80 
//3.2 Sell Signal
//+ Entry: AVG %K crossunder AVG %D and AVG %D > 80
//+ Exit: AVG %D < 20 
strategy(title="AVG Stochastic Strategy [M30 Backtesting]", overlay=true, pyramiding=3)
periodK = input.int(21, title="%K Length", minval=1)
smoothK = input.int(3, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
_avg_k=ta.ema(math.avg(k,d),smoothK)
_avg_d=ta.ema(_avg_k,periodD)
up=
   _avg_k[1]<_avg_d[1]
   and _avg_k>_avg_d
   and _avg_d<20
dn=
   _avg_k[1]>_avg_d[1]
   and _avg_k<_avg_d
   and _avg_d>80
var arr_val=0
if up
    arr_val:=1
    strategy.entry("Long", strategy.long)
if dn
    arr_val:=-1
    strategy.entry("Short", strategy.short)
if up[1] or dn[1]
    arr_val:=0
plotarrow(arr_val,title="Signal",colorup=color.green,colordown=color.red)
if _avg_d>80 
    strategy.close("Long")
if _avg_d<20 
    strategy.close("Short")
//EOF

Lebih lanjut