Strategi Dagangan Bugra Berdasarkan Purata Bergerak Kinetik Berganda

Penulis:ChaoZhang, Tarikh: 2024-02-19 14:36:37
Tag:

img

Ringkasan

Strategi dagangan Bugra adalah strategi yang menggabungkan penunjuk OTT yang dibangunkan oleh guru saya yang dikasihi Anıl Özekşi dan penunjuk Wavetrend Oscillator oleh lonestar108. Ia membentuk penunjuk dagangan yang berjaya dengan mengintegrasikan kedua-dua penunjuk. Strategi ini boleh melakukan perdagangan panjang dan pendek di pasaran dua hala.

Prinsip Strategi

Strategi dagangan Bugra mula-mula mengira garisan tengah Bollinger Bands, yang merupakan garis purata bergerak MAvg. Kemudian, berdasarkan julat peratusan dan tempoh yang ditetapkan oleh pengguna, ia mengira stop loss longStop yang panjang dan stop loss shortStop yang pendek. Apabila harga memecahkan rel atas, pergi panjang. Apabila ia memecahkan rel bawah, pergi pendek. Isyarat penutupan adalah apabila harga kembali ke sekitar purata bergerak.

Secara khusus, penunjuk teras strategi ini adalah penunjuk OTT. Penunjuk OTT terdiri daripada purata bergerak dan garis sempadan. Ia menyesuaikan kedudukan garis sempadan mengikut turun naik pasaran berdasarkan algoritma tertentu. Apabila harga menembusi garis sempadan bawah OTT, pergi pendek. Apabila ia menembusi garis sempadan atas OTT, pergi panjang.

Strategi ini juga menggunakan penunjuk Wavetrend untuk menentukan arah trend harga. Jika ia dinilai sebagai trend menurun, hanya pergi pendek, tidak lama. Jika ia dinilai sebagai trend menaik, hanya pergi panjang, tidak pendek.

Analisis Kelebihan

Strategi dagangan Bugra menggabungkan kelebihan purata bergerak, Bollinger Bands dan penunjuk OTT. Ia boleh menyesuaikan kedudukan stop loss secara automatik dan mengurangkan kebarangkalian stop loss yang dicetuskan. Pada masa yang sama, dengan menggabungkan penunjuk penilaian trend, ia mengelakkan terperangkap dalam trend berayun.

Khususnya, kelebihan utama strategi ini ialah:

  1. Ia boleh menyesuaikan kedudukan stop loss secara automatik untuk mengawal risiko dengan berkesan.
  2. Penunjuk OTT boleh menentukan titik pembalikan dengan agak tepat.
  3. Dengan menggabungkan penunjuk penilaian trend, ia mengelakkan terperangkap dalam pasaran berayun.
  4. Peraturan-peraturannya agak mudah dan jelas, mudah difahami dan digunakan.

Analisis Risiko

Strategi perdagangan Bugra juga mempunyai beberapa risiko, terutamanya dalam aspek berikut:

  1. Dalam keadaan pasaran yang ganas, stop loss boleh dilanggar, menyebabkan kerugian yang lebih besar.
  2. Isyarat pembalikan yang dinilai oleh penunjuk OTT mungkin tidak tepat, dan isyarat yang rosak mungkin berlaku.
  3. Penghakiman trend juga boleh salah. Berjalan panjang dalam goyangan ke bawah akan menyebabkan kerugian.
  4. Tetapan parameter yang tidak betul juga akan menjejaskan prestasi strategi.

Tindakan balas adalah terutamanya:

  1. Luangkan julat stop loss dengan betul untuk memastikan garis stop loss tidak mudah diaktifkan.
  2. Gabungkan dengan penunjuk lain untuk menilai kebolehpercayaan isyarat OTT untuk mengelakkan isyarat palsu.
  3. Sesuai menyesuaikan parameter untuk membuat penilaian trend lebih boleh dipercayai.
  4. Mengoptimumkan parameter untuk mencari kombinasi parameter terbaik.

Arahan pengoptimuman

Masih ada ruang untuk pengoptimuman lebih lanjut strategi perdagangan purata bergerak kinetik ganda:

  1. Pertimbangkan untuk menggabungkan dengan penunjuk lain untuk meningkatkan ketepatan penilaian isyarat.
  2. Kajian algoritma stop loss adaptif supaya garis stop loss boleh diselaraskan mengikut turun naik pasaran.
  3. Tambah penunjuk jumlah dagangan untuk mengelakkan pecah palsu dengan jumlah yang rendah.
  4. Uji pelbagai jenis purata bergerak untuk mencari purata bergerak yang paling sesuai.
  5. Cuba pembelajaran mesin dan kaedah lain untuk mengoptimumkan parameter secara automatik.

Ringkasan

Strategi dagangan purata bergerak berganda mengintegrasikan kelebihan pelbagai penunjuk. Ia boleh menyesuaikan kedudukan stop loss secara automatik, menilai isyarat pembalikan, dan mengenal pasti arah trend. Ia mempunyai kelebihan seperti keupayaan kawalan risiko yang kuat dan mudah difahami dan digunakan. Tetapi ia juga mempunyai risiko seperti terperangkap dan isyarat yang tidak tepat. Strategi ini boleh dioptimumkan dengan menggabungkan dengan penunjuk lain, mempelajari algoritma adaptif, dll. Secara umum, strategi dagangan purata bergerak berganda adalah strategi dagangan pecah yang praktikal.


/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bugra trade strategy", shorttitle="Bugra trade strategy", overlay=true)

// Kullanıcı Girdileri
length = input(5, title="Period", minval=1)
percent = input(1, title="Sihirli Yüzde", type=input.float, step=0.1, minval=0)
mav = input(title="Hareketli Ortalama Türü", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"])
wt_n1 = input(10, title="Kanal Periyodu")
wt_n2 = input(21, title="Averaj Uzunluğu")
src = close

// Tarih Aralığı Girdileri
startDate = input(20200101, title="Başlangıç Tarihi (YYYYMMDD)")
endDate = input(20201231, title="Bitiş Tarihi (YYYYMMDD)")

// Tarih Filtresi Fonksiyonu
isDateInRange() => true
// Özel Fonksiyonlar
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = sum(vud1, length)
    vDD = sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    varResult = 0.0
    varResult := nz(valpha * abs(vCMO) * src + (1 - valpha * abs(vCMO)) * nz(varResult[1]))
    varResult

Wwma_Func(src, length) =>
    wwalpha = 1 / length
    wwma = 0.0
    wwma := wwalpha * src + (1 - wwalpha) * nz(wwma[1])
    wwma

Zlema_Func(src, length) =>
    zxLag = floor(length / 2)
    zxEMAData = src + (src - src[zxLag])
    zlema = ema(zxEMAData, length)
    zlema

Tsf_Func(src, length) =>
    lrc = linreg(src, length, 0)
    lrs = lrc - linreg(src, length, 1)
    tsf = lrc + lrs
    tsf

getMA(src, length) =>
    ma = mav == "SMA" ? sma(src, length) :
         mav == "EMA" ? ema(src, length) :
         mav == "WMA" ? wma(src, length) :
         mav == "TMA" ? sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) :
         mav == "VAR" ? Var_Func(src, length) :
         mav == "WWMA" ? Wwma_Func(src, length) :
         mav == "ZLEMA" ? Zlema_Func(src, length) :
         mav == "TSF" ? Tsf_Func(src, length) : na

// Strateji Hesaplamaları
MAvg = getMA(src, length)
fark = MAvg * percent * 0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop = MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop

dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT = MAvg > MT ? MT*(200+percent)/200 : MT*(200-percent)/200

plot(OTT, title="BugRA", color=color.rgb(251, 126, 9))

// Alım ve Satım Koşulları
longCondition = crossover(src, OTT) and isDateInRange()
shortCondition = crossunder(src, OTT) and isDateInRange()

// Strateji Giriş ve Çıkış Emirleri
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")


Lebih lanjut