Osilator Stokastik Intraday dengan Strategi Crossover Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-10-27 17:00:04
Tag:

img

Ringkasan

Strategi ini menggabungkan silang purata bergerak ganda dan osilator Stochastic untuk mengenal pasti peluang pembalikan trend untuk perdagangan jangka pendek yang cekap. Ia pergi pendek apabila harga memasuki rantau overbought dan pergi panjang apabila harga memasuki rantau oversold, untuk menangkap pembalikan trend jangka sederhana.

Logika Strategi

Strategi ini berdasarkan gabungan crossover purata bergerak berganda dan osilator Stochastic.

crossover purata bergerak berganda terdiri daripada purata bergerak pantas, purata bergerak perlahan dan purata bergerak ultra lambat. apabila MA pantas melintasi di atas MA perlahan, ia adalah isyarat beli. apabila MA pantas melintasi di bawah MA perlahan, ia adalah isyarat jual. crossover MA ganda boleh mengenal pasti titik pembalikan trend jangka menengah.

Osilator Stochastic mengandungi nilai %K dan %D. %K menunjukkan di mana penutupan semasa adalah relatif kepada harga tertinggi dan terendah N hari yang lalu. %D adalah purata bergerak mudah M-hari %K. Nilai di atas 80 bermaksud tahap overbought dan nilai di bawah 20 bermaksud tahap oversold. Osilator Stochastic dapat mengenal pasti zon overbought / oversold jangka pendek.

Strategi ini menggabungkan crossover MA berganda dan osilator Stochastic. Ia mencari isyarat pembalikan trend dari crossover MA berganda apabila Stochastic menunjukkan tahap overbought / oversold. Ini bertujuan untuk menangkap pembalikan trend jangka pendek.

Analisis Kelebihan

Kelebihan strategi ini:

  1. Menggabungkan crossover MA berganda dan osilator Stochastic untuk mengenal pasti pembalikan trend jangka sederhana dan jangka pendek.

  2. Menggunakan isyarat overbought/oversold Stochastic untuk memilih perdagangan pembalikan silang MA berganda yang lebih berkesan.

  3. Peraturan perdagangan yang jelas mudah dilaksanakan.

  4. Parameter masa perdagangan dan bulan yang boleh diselaraskan sesuai untuk produk dan tempoh masa yang berbeza.

  5. Hentikan kerugian untuk mengawal risiko.

Analisis Risiko

Risiko strategi ini:

  1. Double MA mungkin mempunyai pecah palsu. Stochastic mungkin mempunyai perbezaan bull / bear yang tidak sah, yang membawa kepada isyarat perdagangan yang salah. Parameter tune halus atau tambahkan penunjuk lain untuk pengesahan combo.

  2. Berasaskan hanya pada penunjuk teknikal tanpa mengambil kira asas. Mungkin gagal pada peristiwa ekonomi utama. Tambah kawalan risiko peristiwa ekonomi.

  3. Sukar untuk menentukan masa pembalikan MA yang tepat, mungkin mempunyai masalah berhenti terlalu ketat atau terlalu luas.

  4. Tetapan parameter yang tidak betul boleh menyebabkan perdagangan berlebihan atau kualiti isyarat yang buruk.

  5. Hanya sesuai untuk perdagangan jangka pendek, tidak memegang jangka panjang.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji lebih banyak gabungan penunjuk seperti KDJ, MACD dan lain-lain untuk meningkatkan kesahihan isyarat.

  2. Tambah analisis jumlah dagangan untuk mengelakkan pecah palsu.

  3. Mengoptimumkan parameter MA berganda untuk mengenal pasti titik pembalikan yang lebih tepat.

  4. Mengoptimumkan strategi stop loss untuk mengurangkan peluang untuk dihentikan.

  5. Tambah modul kawalan risiko peristiwa ekonomi untuk mengelakkan kesan daripada peristiwa besar.

  6. Gunakan teknik pembelajaran mesin untuk mengoptimumkan parameter secara automatik untuk kebolehsesuaian yang lebih baik.

  7. Ujian semula pada lebih banyak produk dan jangka masa untuk mencari aplikasi terbaik.

Kesimpulan

Strategi ini berdagang pada titik pembalikan trend jangka menengah yang dikenal pasti oleh persimpangan MA berganda dan perbezaan banteng / beruang Stochastic. Berbanding dengan menggunakan satu petunjuk, ia dapat meningkatkan keuntungan perdagangan dengan peraturan yang jelas. Tetapi ia juga mempunyai risiko yang memerlukan parameter dan pengoptimuman stop loss, dan lebih banyak penapis dan kawalan risiko. Secara keseluruhan, ia adalah strategi perdagangan jangka pendek yang boleh dipercayai, frekuensi sederhana.


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

//@version=3
strategy(title="Intraday Stochiastic Strategy", shorttitle="Intraday Stochiastic Strategy", overlay=true, initial_capital = 1000)
//WORKS FOR BTCUSD M30
//OBVERVED GOOD PERFORMANCES FOR SELL MODE M15 : US30USD / UK100GBP / JP225USD / SPX500USD / BCOUSD / EURGBP
//Best Forex Hours are 7-21
//0 is Long Position
//1 is Short Position
//2 No position
mode=input(1, maxval=2, title="Mode")
lossLimit=input(10000, maxval=10000, title="Loss Limit")
hourStart=input(2, maxval=24, title="Hour Start")
hourStop=input(13, maxval=24, title="Hour Stop")

//Month selected for back testing. 0 is maximum number of months
monthSelected = input(0, maxval=12, title="Month Selected")

/////////////////////////////////////////////////

fast = 20, slow = 50, ultraSlow = 200
fastMA = sma(close, fast)
slowMA = sma(close, slow)
ultraSlowMA = sma(close, ultraSlow)

colorFast = red
colorSlow = black
colorUltraSlowMA = purple

if(timeframe.period == "1" or timeframe.period == "3" or timeframe.period == "5" or timeframe.period == "15" or timeframe.period == "30" or timeframe.period == "45" or timeframe.period == "60" or timeframe.period == "120" or timeframe.period == "180" or timeframe.period == "240")
    fastMA := ema(close, fast)
    slowMA := ema(close, slow)
    ultraSlowMA := ema(close, ultraSlow)
    colorFast := orange
    colorSlow := gray
    colorUltraSlowMA := blue

p1 = plot(fastMA, color=colorFast)
p2 = plot(slowMA, color=colorSlow, linewidth=2)  
p3 = plot(ultraSlowMA, color=colorUltraSlowMA, linewidth=3)

fill(p1, p2, color = fastMA > slowMA ? green : red)

////////////////////////////////////////////////

ema150 = 200
ema150MA = ema(close, ema150)

smooth = input(3, minval=1), K = input(14, minval=1), D=input(3,minval=1)
hh=highest(high,K)
ll=lowest(low,K)
k = sma((close-ll)/(hh-ll)*100, smooth)
d = sma(k, 3)
//plot(k, color=blue)
//plot(d, color=red)
//h0 = hline(80)
//h1 = hline(20)
//fill(h0, h1, color=purple, transp=95)


//plot(hour*100, color=red, linewidth=2)

stochiasticHigh = 80
stochiasticLow = 20

data = close < ema150MA and k>stochiasticHigh and d>stochiasticHigh and close>open
plotshape(data, style=shape.triangledown, location=location.belowbar, color=red)

data2 = close > ema150MA and k<stochiasticLow and d<stochiasticLow and close<open
plotshape(data2, style=shape.triangleup, location=location.abovebar, color=green)

isData = 0
isData := isData[1]

    
if(isData == 0)
    if(data)
        if(mode==1 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected)) //DOW hours : 2-13
            strategy.entry("SCALP SHORT", strategy.short)  
            isData := 1
else
    if(k<stochiasticLow and d<stochiasticLow)
        if(mode==1)
            strategy.close_all(when = true)
        isData := 0
        
isData2 = 0
isData2 := isData2[1]
    
if(isData2 == 0)
    if(data2)
        if(mode==0 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected))
            strategy.entry("SCALP LONG", strategy.long)  
            isData2 := 1
else
    if(k>stochiasticHigh and d>stochiasticHigh)
        if(mode==0)
            strategy.close_all(when = true)
        isData2 := 0

strategy.exit("STOP LOSS", "SCALP LONG", loss=lossLimit)
strategy.exit("STOP LOSS", "SCALP SHORT", loss=lossLimit) 

Lebih lanjut