Strategi Perdagangan Mengikuti Tren Berdasarkan Osilator Volume


Tanggal Pembuatan: 2024-01-29 15:04:18 Akhirnya memodifikasi: 2024-01-29 15:04:18
menyalin: 0 Jumlah klik: 760
1
fokus pada
1617
Pengikut

Strategi Perdagangan Mengikuti Tren Berdasarkan Osilator Volume

Ringkasan

Strategi ini adalah strategi pelacakan tren untuk melakukan perdagangan berdasarkan indikator osilator volume transaksi yang dimodifikasi. Ini menggunakan garis rata-rata volume transaksi, mengidentifikasi sinyal yang meningkatkan volume transaksi, sehingga menilai masuk atau keluar dari posisi.

Prinsip Strategi

  1. Perhitungkan volume rata-rata volume, panjangnya adalah volume panjang, melakukan volume rata-rata panjang halus.
  2. Ketika volume naik melebihi threshold, maka akan ada sinyal beli. Jika volume turun melebihi threshold, maka akan ada sinyal jual.
  3. Untuk menghindari kesalahan, hanya jika dibandingkan dengan harga penutupan dari garis akar K dari arah sebelumnya, operasi beli dilakukan ketika tren harga naik. Operasi jual dilakukan ketika tren harga turun.
  4. Setting two thresholds threshold and threshold2 ≠ threshold digunakan untuk menghasilkan trading Signal, threshold2 digunakan untuk menghentikan kerugian ≠
  5. Logika penutupan gudang melalui mesin status untuk mengelola pesanan.

Analisis Keunggulan

  1. Dengan menggunakan indikator volume transaksi, dapat menangkap perubahan di pasar dan meningkatkan akurasi sinyal.
  2. Pengertian ini dapat digabungkan dengan penilaian tren harga untuk menghindari sinyal yang salah saat harga bergejolak.
  3. Menggunakan dua nilai terendah untuk membuka dan menghentikan posisi, Anda dapat mengontrol risiko dengan lebih baik.

Analisis risiko

  1. Indikator volume transaksi sendiri akan mengalami keterlambatan dan mungkin akan melewatkan titik pivot harga.
  2. Setting parameter yang salah dapat menyebabkan frekuensi transaksi yang terlalu tinggi atau sinyal yang terlambat.
  3. Stop loss dapat diatasi dalam skenario peningkatan volume transaksi.

Risiko ini dapat dikontrol dengan menyesuaikan parameter, mengoptimalkan cara menghitung indikator, dan mengkonfirmasi kombinasi dengan indikator lainnya.

Arah optimasi

  1. Anda dapat mempertimbangkan untuk mengoptimalkan parameter indikator secara otomatis sesuai dengan kondisi pasar.
  2. Indeks volatilitas harga dapat dikombinasikan dengan indikator lain untuk lebih memverifikasi sinyal dan meningkatkan akurasi.
  3. Penelitian dapat dilakukan untuk menerapkan model pembelajaran mesin pada penilaian sinyal, menggunakan penilaian model untuk meningkatkan akurasi.

Meringkaskan

Strategi ini menggunakan penggetar volume transaksi yang disempurnakan, membantu menilai tren harga, dan menetapkan dua titik terendah untuk membuka posisi dan menghentikan kerugian, secara keseluruhan merupakan strategi pelacakan tren yang lebih stabil. Ruang optimasi terutama dalam penyesuaian parameter, penyaringan sinyal, dan strategi stop loss. Secara keseluruhan, strategi ini memiliki nilai praktis tertentu dan layak untuk dioptimalkan.

Kode Sumber Strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy('Volume Advanced', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Start Month"), input(17, "Start Day"), 0, 0)
end    = timestamp(input(9999, "End Year"),   input(1, "End Month"),   input(1, "End Day"),   0, 0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)

source = close 
vol_length  = input(34, title = "Volume - Length")
vol_smooth  = input(200,title = "Volume - Smoothing")
volriselen  = input(21,  title = "Volume - Risinglength")
volfalllen  = input(13, title = "Volume - Fallinglength")
threshold   = input(1,"threshold")
threshold2  = input(1.2,step=0.1, title="Threshold 2")
direction = input(13,"amount of bars")


volsum  = sum(volume, vol_length) / (sum(volume, vol_smooth) / (vol_smooth / vol_length))


LongEntry  = (rising(volsum, volriselen) or crossover (volsum, threshold)) and close > close[direction]
ShortEntry = (rising(volsum, volriselen) or crossover (volsum, threshold)) and close < close[direction]
LongExit1  = falling (volsum,volfalllen)
ShortExit1 = falling (volsum,volfalllen)
LongExit2= (crossover(volsum, threshold2) and close < close[direction])


_state = 0
_prev = nz(_state[1])
_state := _prev

if _prev == 0
    if LongEntry
        _state := 1
        _state
    if ShortEntry
        _state := 2
        _state
if _prev == 1
    if ShortEntry or LongExit1
        _state := 0
        _state
if _prev == 2
    if LongEntry or ShortExit1
        _state := 0
        _state

_bLongEntry = _state == 1 
_bLongClose = _state == 0 

long_condition = _bLongEntry and close > close[direction]
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition =  _bLongClose or LongExit2
strategy.close('BUY', when=short_condition)

plot(volsum,      color = color.green,    title="Vol_Sum")
plot(threshold, color = color.fuchsia, transp=50, title="Threshold")
plot(threshold2, color=color.white, transp = 50, title="Threshold 2")