Strategi mengikuti tren berdasarkan deviasi standar volume


Tanggal Pembuatan: 2023-11-21 11:11:51 Akhirnya memodifikasi: 2023-11-21 11:11:51
menyalin: 0 Jumlah klik: 706
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan deviasi standar volume

Ringkasan

Strategi ini menggunakan volume transaksi bergerak dan standar deviasi untuk membangun model volume transaksi, yang dikombinasikan dengan harga moving average untuk menentukan arah tren, dan mengirimkan sinyal perdagangan jika volume transaksi normal. Strategi ini juga mengatur volume transaksi tinggi dan rendah, yang dapat menghindari sinyal yang salah jika volume transaksi tidak normal.

Prinsip Strategi

Logika inti adalah membangun model volume transaksi dan menilai tren harga.

  1. Membangun model volume transaksi
    • Perhitungan volume transaksi Moving Average dengan durasi 40 periodevavg sebagai acuan volume transaksi
    • Perhitungan volume transaksi dengan durasi 40 siklus dengan standar deviasi vsd sebagai rentang fluktuasi normal volume transaksi
    • Perhitungan volume transaksi Moving Average dengan durasi 5 periodevavgn sebagai level volume transaksi terbaru
    • Setel volume transaksi minimum lowlimit adalahvavg dikurangi 1 kali lipat vsd
    • Set uplimit maksimum untuk trading adalahvavg ditambah 2xvsd
  2. Menentukan tren harga
    • Penghitungan harga Moving Average dengan panjang 20 periode mavg sebagai indikator tren harga
  3. Menerima sinyal perdagangan
    • Ketika mavg naik melewati hari sebelumnya, lakukan lebih banyak jikavavgn lebih tinggi dari lowlimit
    • Ketika mavg di bawah melewati hari sebelumnya, melakukan shorting jikavavgn lebih tinggi dari lowlimit
    • Jika terjadi pembalikan, mavg akan mati.

Strategi ini menggabungkan model volume transaksi dan tren harga untuk menghindari pelacakan tren harga jika volume transaksi tidak normal dan dapat memfilter beberapa sinyal palsu.

Analisis Keunggulan Strategi

  1. Menggabungkan perubahan volume transaksi untuk menentukan tren harga, dapat memfilter beberapa sinyal palsu, membuat sinyal lebih dapat diandalkan
  2. Model volume transaksi dengan menggunakan standar deviasi volume transaksi untuk menghindari dampak dari perubahan volume transaksi yang ekstrem
  3. Parameter moving average dapat disesuaikan untuk menyesuaikan dengan perubahan harga dalam periode yang berbeda

Analisis Risiko Strategi

  1. Volume transaksi dan harga mungkin menyimpang dalam jangka pendek, menyebabkan kehilangan tren harga
  2. Setting parameter volume transaksi yang tidak tepat dapat menyebabkan model gagal
  3. Strategi itu sendiri tidak memiliki pengaturan stop loss yang dapat menyebabkan kerugian yang lebih besar.

Solusi untuk Mengatasi Risiko:

  1. Menyesuaikan parameter moving average, optimalkan model
  2. Termasuk Stop Loss Logic untuk mengendalikan kerugian tunggal.

Arah optimasi strategi

  1. Menambahkan lebih banyak indikator untuk menilai tren harga, membuat sinyal lebih akurat dan dapat diandalkan
  2. Menambahkan modul pembelajaran mesin, parameter berdasarkan volume transaksi dan model harga pelatihan data
  3. Menambahkan logika stop loss untuk mencegah kerugian tunggal yang terlalu besar
  4. Optimalkan logis entry untuk memastikan probabilitas yang lebih tinggi untuk menangkap tren
  5. Kombinasi dengan indikator ATR serupa untuk menyesuaikan jarak stop loss secara otomatis

Meringkaskan

Strategi ini secara keseluruhan memiliki ide yang jelas, menggunakan volume perdagangan untuk menghindari pelacakan tren palsu, sinyal masuk yang lebih andal. Namun, strategi itu sendiri sederhana, dapat diperluas dengan banyak ruang, dan dapat dioptimalkan dengan menambahkan lebih banyak indikator, pembelajaran mesin, dan modul seperti stop loss, yang dapat meningkatkan stabilitas dan kemampuan untuk menangkap tren. Strategi ini adalah strategi pelacakan tren yang khas, dan setelah dioptimalkan dapat menjadi strategi kuantitatif yang sangat praktis.

Kode Sumber Strategi
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun

//@version=4
strategy("交易量底部标准差系统", overlay=true)

options = input(1,'')
length = input(40,'')
nlow = input(5,'')
factor = input(1.0,'')

vavg = 0.0
vavgn = 0.0
vsd = 0.0
lowlimit = 0.0
uplimit = 0.0
mavg = 0.0
aror = 0.0
adjvol = 0.0
savevol = 0.0


//Find average volume, replacing bad values
adjvol := volume

if (volume != 0)
	savevol := volume
else
	savevol := savevol[1]
	adjvol := savevol


// Replace high volume days because they distort standard deviation
if (adjvol > 2 * factor * nz(vsd[1]))
	adjvol := savevol
else
	adjvol := adjvol[1]

vavg := sma(adjvol,length)
vsd := stdev(adjvol,length)
vavgn := sma(adjvol,nlow)

// Extreme volume limits
lowlimit := vavg - factor * vsd
uplimit := vavg + 2 * factor * vsd

// System rules based on moving average trend
mavg := sma(close,length/2)

// Only enter on new trend signals
if (options == 2)
	if (mavg > mavg[1] and mavg[1] <= mavg[2])
		strategy.entry("Long", strategy.long)
	if (mavg<mavg[1] and mavg[1]>=mavg[2])
		strategy.entry("Short", strategy.short)
else
	if (mavg > mavg[1] and vavgn > lowlimit)
		strategy.entry("Long", strategy.long)
	if (mavg < mavg[1] and vavgn > lowlimit)
		strategy.entry("Short", strategy.short)

// Exit on low volume
if (options != 1)
	if (mavg<mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Long")
	if (mavg>mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Short")
else
	if (mavg < mavg[1])
		strategy.close("Long")
	if (mavg > mavg[1])
		strategy.close("Short")