Strategi ini didasarkan pada persilangan rata-rata bergerak jangka panjang dan jangka pendek dari volume perdagangan. Ini menggunakan EMA dari periode yang berbeda untuk menghitung tren jangka panjang dan jangka pendek dari volume perdagangan, dan membangun osilator berdasarkan perbedaan mereka.
Indikator inti dari strategi ini adalah Volume Oscillator. Ini mencerminkan tren perubahan volume perdagangan dengan menghitung perbedaan antara Rata-rata Bergerak Eksponensial jangka panjang dan jangka pendek. Rumus konkretnya adalah:
Volume Oscillator = (ShortEMA - LongEMA) / LongEMA * 100
Di sini ShortEMA dan LongEMA mengacu pada EMA jangka pendek dan jangka panjang masing-masing. Ketika ShortEMA melintasi LongEMA, indikator berubah menjadi positif, yang menyiratkan volume perdagangan yang berkembang. Ketika ShortEMA melintasi di bawah LongEMA, indikator berubah menjadi negatif, yang menyiratkan volume perdagangan yang berkontraksi.
Setelah menghitung osilator, strategi ini menggunakan penyeberangan dengan tingkat nol untuk menghasilkan sinyal perdagangan. Ini menjadi panjang ketika osilator berubah dari negatif menjadi positif, yaitu melintasi di atas tingkat nol, dan menjadi pendek ketika berubah dari positif ke negatif, yaitu melintasi di bawah tingkat nol. Ini mencerminkan konversi momentum volume perdagangan.
Selain itu, strategi ini juga menggabungkan harga tinggi dan rendah sebelumnya untuk menentukan arah tertentu. yaitu ketika osilator melintasi di atas tingkat nol, jika harga tinggi sebelumnya lebih besar dari nilai absolut harga rendah sebelumnya, itu menyiratkan sinyal panjang, jika tidak sinyal pendek. Fitur ini membantu menilai kekuatan ekspansi volume.
Strategi ini memiliki keuntungan berikut:
Menggunakan volume perdagangan sebagai indikator dasar dapat secara efektif menentukan kesediaan peserta pasar dan sangat praktis.
Menggabungkan EMA jangka panjang dan jangka pendek dapat menangkap tren jangka menengah dan jangka panjang dan momentum jangka pendek secara bersamaan.
Sinyal penyeberangan yang terbentuk oleh indikator dan tingkat nol sederhana dan jelas untuk pengambilan keputusan.
Menambahkan puncak dan terendah sebelumnya untuk menentukan arah dapat memanfaatkan ukuran momentum volume perdagangan.
Logika strategi sederhana, parameter fleksibel untuk penyesuaian dan memiliki kemampuan adaptasi yang relatif kuat.
Beberapa risiko dari strategi ini harus dicatat:
Indikator volume dapat dipengaruhi oleh kegagalan pasar yang salah, menghasilkan sinyal yang salah.
Dalam pasar yang terikat rentang, penyeberangan volume dapat sering terjadi.
Tingkat tertinggi dan terendah sebelumnya hanya mencerminkan ekspansi terbaru dan tidak dapat menentukan keberlanjutan.
Parameter membutuhkan optimasi terpisah untuk produk dan periode waktu yang berbeda.
Indikator volume bereaksi lambat terhadap perdagangan algoritmik frekuensi tinggi, mungkin kehilangan waktu masuk terbaik.
Strategi dapat dioptimalkan dalam aspek berikut:
Menambahkan filter untuk menghindari sinyal palsu, misalnya konfirmasi dengan indikator harga.
Mengoptimalkan periode EMA jangka panjang dan jangka pendek agar sesuai dengan karakteristik produk yang berbeda.
Menetapkan parameter periode untuk tertinggi dan terendah sebelumnya untuk menggunakan harga maksimum dan minimum periode.
Mendefinisikan rentang untuk area pembalikan indikator daripada satu level untuk menghindari perdagangan yang berlebihan.
Menambahkan strategi stop loss untuk mengendalikan kerugian tunggal.
Menggabungkan indikator berbasis volume lainnya seperti VRP.
Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.
Secara singkat, strategi crossover rata-rata bergerak jangka pendek menggunakan fitur pembalikan volume dengan baik dan memiliki kekuatan penilaian yang kuat pada tahap awal tren. Menambahkan puncak dan terendah sebelumnya untuk menentukan arah membuat keputusan perdagangan lebih akurat. Pengendalian risiko juga penting untuk mencegah kerugian dari sinyal palsu. Strategi ini memiliki ruang besar untuk optimasi, dalam aspek seperti penyesuaian parameter dan menggabungkan indikator, untuk memperpendek keterlambatan perdagangan dan waktu reaksi terhadap perubahan pasar.
/*backtest start: 2022-12-05 00:00:00 end: 2023-03-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("SB_Volume_oscillator_Prev_high_low", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) shortlen = input(5, minval=1) longlen = input(10, minval=1) short = ema(volume, shortlen) long = ema(volume, longlen) osc = 100 * (short - long) / long //hline(0, title="Zero") //plot(osc) zero=input(0.0) low_val=input(0.0) high_val=input(0.0) prev_high_val=input(0.0) prev_low_val=input(0.0) where=input(0) where:=nz(where[1]) low_val:=nz(low_val[1]) high_val:=nz(high_val[1]) prev_high_val:=nz(prev_high_val[1]) prev_low_val:=nz(prev_low_val[1]) if(crossover(osc,zero)) high_val:=osc where:=1 prev_low_val:=low_val low_val:=osc if(crossunder(osc,zero)) low_val:=osc where:=-1 prev_high_val:=high_val high_val:=osc if(where==1) if(high_val<osc) high_val:=osc if(where==-1) if(low_val>osc) low_val:=osc if (crossover(osc,zero)) if(prev_high_val<=abs(prev_low_val)) strategy.entry("My Long Entry Id", strategy.long) if(prev_high_val>abs(prev_low_val)) strategy.entry("My Short Entry Id", strategy.short) if (crossunder(osc,zero)) if(prev_high_val<=abs(prev_low_val)) strategy.entry("My Long Entry Id", strategy.long) if(prev_high_val>abs(prev_low_val)) strategy.entry("My Short Entry Id", strategy.short)