Trend Mengikuti Strategi Dagangan Berdasarkan Pengayun Volume


Tarikh penciptaan: 2024-01-29 15:04:18 Akhirnya diubah suai: 2024-01-29 15:04:18
Salin: 0 Bilangan klik: 760
1
fokus pada
1617
Pengikut

Trend Mengikuti Strategi Dagangan Berdasarkan Pengayun Volume

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend yang berdagang berdasarkan petunjuk penyokong kuantiti yang diubah suai. Ia menggunakan garis purata kuantiti yang diperdagangkan, mengenal pasti isyarat yang meningkatkan kuantiti yang diperdagangkan, untuk menentukan masuk atau keluar dari kedudukan.

Prinsip Strategi

  1. Hitung jumlah vol_sum rata-rata, panjangnya adalah vol_length, dan lancarkan rata-rata panjang vol_smooth.
  2. Apabila vol_sum meningkat melebihi ambang nilai, ia menghasilkan isyarat beli, dan apabila turun melebihi ambang nilai, ia menghasilkan isyarat jual.
  3. Untuk menyaring kesilapan, hanya apabila harga penutupan garisan K akar arah yang lalu dibandingkan, operasi beli dilakukan apabila trend harga meningkat. Operasi jual dilakukan apabila trend harga menurun.
  4. Tetapkan dua nilai had threshold dan threshold2 . Threshold digunakan untuk menghasilkan perdagangan Sinyal, threshold2 digunakan untuk menghentikan kerugian .
  5. Logik pembukaan gudang untuk menguruskan pesanan melalui mesin status.

Analisis kelebihan

  1. Penggunaan petunjuk kuantiti transaksi dapat menangkap perubahan dalam pasaran dan meningkatkan ketepatan isyarat.
  2. Pengkajian trend harga ini dapat mengelakkan isyarat yang salah apabila harga bergolak.
  3. Dengan menggunakan dua nilai terhad untuk membuka dan menghentikan kedudukan, risiko dapat dikawal dengan lebih baik.

Analisis risiko

  1. Indeks kuantiti transaksi sendiri akan terlewat dan mungkin akan terlepas titik peralihan harga.
  2. Tetapan parameter yang salah boleh menyebabkan frekuensi dagangan yang terlalu tinggi atau sinyal yang terlewat.
  3. Dalam situasi peningkatan jumlah transaksi, titik hentian mungkin akan ditembusi.

Risiko ini boleh dikawal dengan menyesuaikan parameter, mengoptimumkan cara pengiraan indikator, dan mengesahkan gabungan dengan indikator lain.

Arah pengoptimuman

  1. Anda boleh mempertimbangkan untuk mengoptimumkan parameter penunjuk untuk menyesuaikan diri, menyesuaikan diri secara automatik mengikut keadaan pasaran.
  2. Ia boleh digabungkan dengan petunjuk lain, seperti indeks pergerakan harga, untuk mengesahkan isyarat lebih lanjut untuk meningkatkan ketepatan.
  3. Penyelidikan boleh digunakan untuk menggunakan model pembelajaran mesin dalam penilaian isyarat, menggunakan penilaian model untuk meningkatkan ketepatan.

ringkaskan

Strategi ini adalah strategi pengesanan trend yang lebih stabil secara keseluruhannya. Strategi ini menggunakan pendorong kuantiti transaksi yang diperbaiki, membantu menilai trend harga, menetapkan dua nilai terendah untuk membuka dan menghentikan kedudukan.

Kod 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")