Strategi Perdagangan Purata Pergerakan Momentum Dwi


Tarikh penciptaan: 2024-02-19 14:36:37 Akhirnya diubah suai: 2024-02-19 14:36:37
Salin: 1 Bilangan klik: 590
1
fokus pada
1617
Pengikut

Strategi Perdagangan Purata Pergerakan Momentum Dwi

Gambaran keseluruhan

Strategi dagangan linear dua dinamik adalah strategi yang menggunakan penunjuk OTT dan penunjuk osilator Wavetrend. Ia menggabungkan penunjuk OTT yang dibangunkan oleh guru Anıl Özekşi dan penunjuk osilator Wavetrend oleh lonestar108 untuk membentuk satu penunjuk perdagangan yang berjaya. Strategi ini boleh dilakukan dalam pasaran dua hala.

Prinsip Strategi

Strategi perdagangan garis lurus dua hala pertama kali mengira garis tengah Brin, iaitu rata-rata bergerak MAvg. Kemudian berdasarkan peratusan yang ditetapkan oleh pengguna dan jangka masa, mengira titik longStop dan titik shortStop. Apabila harga menembusi garis atas, lakukan lebih banyak, dan apabila ia menembusi garis bawah, kosong.

Khususnya, indikator utama strategi ini adalah indikator OTT. Indikator OTT terdiri daripada garis rata-rata dan garis sempadan, yang menyesuaikan kedudukan garis sempadan mengikut tahap turun naik pasaran berdasarkan algoritma tertentu. Apabila harga jatuh di bawah garis sempadan OTT, buat kosong; apabila harga menembusi garis sempadan OTT, buat lebih banyak.

Strategi ini juga menggunakan indikator Wavetrend untuk menentukan arah trend harga, jika ditentukan sebagai tren turun, hanya melakukan lebih banyak dan tidak melakukan lebih banyak; jika ditentukan sebagai tren naik, hanya melakukan lebih banyak dan tidak melakukan lebih banyak.

Analisis kelebihan

Strategi perdagangan linear dua dinamik menggabungkan kelebihan rata-rata bergerak, Brinband dan OTT, yang dapat menyesuaikan kedudukan hentian secara automatik, mengurangkan kebarangkalian hentian diaktifkan. Ia juga menggabungkan indikator penghakiman trend untuk mengelakkan terikat dalam tren goyah.

Secara khusus, kelebihan utama strategi ini ialah:

  1. Mengubah kedudukan stop loss secara automatik untuk mengawal risiko
  2. Indeks OTT lebih tepat dalam menentukan titik balik
  3. Meneroka pasaran yang bergolak dengan menggunakan indikator trend
  4. Peraturan-peraturan yang agak mudah dan mudah difahami

Analisis risiko

Strategi dagangan linear biner juga mempunyai risiko, terutama tertumpu pada beberapa aspek berikut:

  1. Dalam keadaan yang melampau, garis stop loss boleh ditembusi dan menyebabkan kerugian yang lebih besar.
  2. Isyarat pembalikan dalam penilaian OTT tidak semestinya tepat, mungkin berlaku isyarat kegagalan
  3. Mungkin juga berlaku kesilapan dalam penilaian trend, menyebabkan kerugian yang besar semasa turun naik.
  4. Penetapan parameter yang tidak betul juga boleh menjejaskan kesan strategi

Kaedah-kaedah utama yang boleh digunakan ialah:

  1. Melegakan stop loss dengan betul untuk memastikan bahawa garis stop loss tidak mudah diaktifkan
  2. Mengambil kira kebolehpercayaan isyarat OTT bersama-sama dengan petunjuk lain untuk mengelakkan isyarat palsu
  3. Menyesuaikan parameter dengan betul untuk membuat penilaian trend lebih dipercayai
  4. Mengoptimumkan parameter, mencari kombinasi parameter yang optimum

Arah pengoptimuman

Strategi perdagangan linear dua dinamik masih mempunyai ruang untuk pengoptimuman yang lebih lanjut:

  1. Ia boleh dipertimbangkan untuk dikombinasikan dengan petunjuk lain untuk meningkatkan ketepatan penilaian isyarat.
  2. Algoritma berhenti yang boleh disesuaikan boleh dikaji, yang membolehkan garis berhenti disesuaikan dengan tahap turun naik pasaran
  3. Menambah jumlah transaksi untuk mengelakkan penembusan palsu yang rendah
  4. Anda boleh menguji pelbagai jenis purata bergerak untuk mencari rata-rata yang paling sesuai
  5. Anda boleh mencuba kaedah pembelajaran mesin untuk mengoptimumkan parameter secara automatik.

ringkaskan

Strategi perdagangan bertaraf dua mengintegrasikan kelebihan pelbagai petunjuk, dapat menyesuaikan stop loss secara automatik, menilai isyarat pembalikan, mengenal pasti arah trend. Ia mempunyai kelebihan seperti kawalan risiko yang kuat, mudah difahami. Tetapi ada juga risiko seperti tersembunyi, isyarat tidak tepat.

Kod sumber strategi
/*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")