Kombinasi rata-rata pergerakan superimposisi ganda Kesamaan dan perbedaan stokastik Strategi perdagangan garis K


Tanggal Pembuatan: 2023-10-27 17:00:04 Akhirnya memodifikasi: 2023-10-27 17:00:04
menyalin: 3 Jumlah klik: 615
1
fokus pada
1617
Pengikut

Kombinasi rata-rata pergerakan superimposisi ganda Kesamaan dan perbedaan stokastik Strategi perdagangan garis K

Ringkasan

Strategi ini mengidentifikasi peluang untuk membalikkan tren dengan menggunakan kombinasi indikator rata-rata dua kali lipat dan indikator stokastik. Strategi ini melakukan perdagangan short line yang efisien. Strategi ini memilih untuk melakukan shorting ketika harga memasuki area overbought dan oversold; Strategi ini memilih untuk melakukan overbought ketika harga memasuki area oversold untuk menangkap pembalikan dari tren.

Prinsip Strategi

Strategi ini didasarkan pada penggunaan kombinasi dari rata-rata ganda dan indikator Stokastik.

Rata-rata ganda terdiri dari rata-rata bergerak cepat, rata-rata bergerak lambat, dan rata-rata bergerak super lambat. Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat, dianggap sebagai sinyal beli; Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat, dianggap sebagai sinyal jual. Rata-rata ganda dapat mengidentifikasi titik balik dari tren garis tengah pendek.

Indikator Stochastic terdiri dari nilai K dan D, nilai K menunjukkan posisi harga tertinggi dan terendah saat ini dalam N hari dari harga penutupan, nilai D adalah rata-rata bergerak sederhana M hari dari nilai K. Jika nilai K dan D lebih dari 80 adalah zona overbought, dan lebih kecil dari 20 adalah zona oversold. Indikator Stochastic dapat mengidentifikasi zona overbought dan oversold jangka pendek.

Strategi ini menggunakan kombinasi dari Double Overlay Average dan Stochastic Indicator, dan ketika Stochastic Indicator menunjukkan area overbought atau oversold, treeview melihat apakah itu sesuai dengan sinyal Double Average, dan jika sesuai, pilih titik itu untuk melakukan reversal trading dengan harapan untuk menangkap titik balik dari tren garis pendek.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Kombinasi ini menggunakan rata-rata ganda dan indikator Stochastic yang dapat secara bersamaan mengidentifikasi garis tengah dan garis pendek.

  2. Dengan menggunakan sinyal overbought dan oversold dari indikator Stochastic, pilih peluang reversal rata-rata ganda yang lebih efektif.

  3. Aturan strategi perdagangan jelas dan mudah diterapkan.

  4. Waktu perdagangan yang dapat disesuaikan dan parameter bulanan, sesuai dengan varietas dan periode waktu.

  5. Pengaturan Stop Loss untuk Mengontrol Risiko

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Double overlay averages dapat menghasilkan false breakouts, dan Stochastic indicators dapat mengalami asymmetric K-line formasi yang tidak valid, yang menyebabkan kesalahan sinyal perdagangan. Parameter dapat disesuaikan sesuai, atau menambahkan indikator lain untuk verifikasi kombinasi.

  2. Hanya berdasarkan indikator teknis, tanpa mempertimbangkan faktor-faktor mendasar, mudah gagal ketika terjadi peristiwa ekonomi besar. Dapat dimasukkan dalam pengendalian risiko peristiwa ekonomi.

  3. Tidak dapat mengidentifikasi kapan tepatnya pergerakan rata-rata berbalik, mungkin terjadi masalah dengan stop loss yang terlalu kecil atau terlalu besar. Strategi stop loss harus dioptimalkan.

  4. Penetapan parameter yang tidak tepat dapat menyebabkan frekuensi transaksi yang terlalu tinggi atau sinyal yang tidak efektif. Percobaan optimasi parameter harus dilakukan untuk varietas dan periode yang berbeda.

  5. Hanya cocok untuk short line trading, tidak cocok untuk long line holding. Harus mengontrol ukuran posisi.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Uji kombinasi indikator lebih banyak, seperti KDJ, MACD, dan lain-lain, untuk meningkatkan efektivitas sinyal.

  2. Untuk menghindari terjadinya penembusan palsu, Anda dapat menggunakan analisis volume transaksi.

  3. Optimalkan parameter rata-rata ganda untuk mengidentifikasi titik balik yang lebih tepat.

  4. Optimalkan strategi stop loss untuk mengurangi kemungkinan terjadinya stop loss.

  5. Menambahkan modul pengendalian risiko insiden ekonomi untuk menghindari dampak insiden besar pada perdagangan.

  6. Menggunakan teknologi pembelajaran mesin untuk mengoptimalkan parameter secara otomatis, meningkatkan kemampuan beradaptasi parameter.

  7. Dengan melakukan retesting pada lebih banyak varietas dan siklus, untuk mencari arah aplikasi terbaik.

Meringkaskan

Strategi ini menggunakan kombinasi dari dua rata-rata overlapping dan Stochastic asynchronous K-line format, untuk mencapai tujuan perdagangan di titik balik tren garis pendek tengah. Strategi ini dapat meningkatkan profitabilitas perdagangan dibandingkan dengan penggunaan satu indikator saja, dan aturan strategi jelas dan mudah dioperasikan. Namun, strategi ini juga memiliki risiko tertentu, yang memerlukan pengoptimalan parameter dan stop loss, dan menambahkan lebih banyak indikator verifikasi dan alat kontrol risiko.

Kode Sumber Strategi
/*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)