
Strategi ini, dengan menghitung perubahan volume transaksi, untuk menilai konversi dalam siklus multi-ruang, termasuk dalam kategori strategi harga-dari-kuantitas. Strategi ini menggabungkan indikator dinamika volume transaksi dan pita Brin dari harga untuk menilai efek utama dari perubahan volume transaksi terhadap harga, untuk menangkap titik-titik perubahan tren.
Perhitungan perubahan tingkat perubahan volume transaksi ((perubahan tingkat perubahan indikator perbedaan volume transaksi), yang diperoleh berdasarkan indikator dinamika volume transaksi nresult ≠
Untuk nresult, perhitungkan pita Brin, dan dapatkan bbr yang mewakili perbedaan standar momentum volume transaksi.
Untuk harga penutupan menghitung Brin band, dan mendapatkan bbr1 yang mewakili perbedaan harga standar.
HIST, yaitu selisih standar volume transaksi dikurangi selisih standar harga, digunakan sebagai indikator akhir.
Ketika hist di atas memakai 0 sebagai titik masuk kepala kosong, di bawah memakai 0 sebagai titik masuk kepala banyak.
Strategi ini memperbesar efek terdepan dari perubahan volume transaksi terhadap harga dengan menghitung tingkat perubahan volume transaksi. Ketika volume transaksi berbalik dan harga belum berbalik, hist akan naik atau turun hingga 0, menghasilkan sinyal perdagangan. Ini dapat menentukan titik balik tren harga lebih awal.
Strategi ini didasarkan pada perubahan volume transaksi yang berbeda dari strategi kuantitatif, yang dapat mencerminkan tren harga di awal titik balik.
Perhitungan perubahan tingkat perubahan volume transaksi, memperbesar efek kepemimpinan perubahan volume transaksi terhadap harga, dan meningkatkan efektivitas transaksi.
Blinking Band yang menggabungkan indikator momentum volume dan indikator harga, membuat sinyal perdagangan lebih dapat diandalkan.
Proses Hist data dengan tiga kali pengolahan indeks, membuat sinyal lebih akurat dan halus.
Mengatur over-buy over-sell line, dan bekerja sama dengan long-term stop loss limit price list, dapat secara efektif mengendalikan risiko.
Ada banyak parameter yang dapat disesuaikan, seperti panjang pita Brin, perkalian perbedaan standar, parameter smoothing data hist, dan sebagainya, yang dapat dioptimalkan secara strategis.
Data volume transaksi tidak selalu mencerminkan transaksi pasar yang sebenarnya dan dapat dimanipulasi.
Perbedaan harga tidak selalu berkelanjutan, dan harga mungkin terjadi dalam situasi yang tidak dapat diubah.
Setting parameter yang tidak tepat dapat menyebabkan perdagangan yang sering atau sinyal yang tidak benar.
Perhatikan sinyal palsu untuk menghindari jumlah yang tidak normal.
Untuk menghindari hal ini, Anda harus berhati-hati dengan sinyal pembalikan yang terjadi pada saat tren kuat.
Hal ini dapat dilakukan dengan mengoptimalkan parameter, filter dalam kombinasi dengan indikator lainnya, dan mengatur stop loss untuk memastikan risiko dapat dikendalikan.
Optimalkan parameter Brin untuk membuat sinyal lebih stabil.
Untuk menghindari perdagangan berlawanan arah dengan menggunakan indikator tren, filter sinyal.
Menambahkan konfirmasi indikator lain, seperti MACD, untuk mencegah sinyal palsu.
Menggunakan teknologi AI untuk mengoptimalkan parameter secara adaptif.
Menambahkan modul penyesuaian dinamis stop loss dan stop loss, dan mengoptimalkan manajemen dana.
Dengan kombinasi pembelajaran mesin, penilaian kuantitatif dari tingkat keberhasilan dapat meningkatkan kualitas sinyal.
Strategi ini dengan menghitung tingkat perubahan volume transaksi, memperbesar efek utama dari perubahan volume transaksi terhadap harga, dapat menentukan perubahan tren harga lebih awal. Dengan poin, memiliki keandalan dan akurasi yang lebih tinggi dibandingkan dengan indikator volume transaksi tunggal. Namun, juga perlu memperhatikan risiko manipulasi volume transaksi dan harga yang berada di belakang terobosan, dengan cara pengoptimalan parameter, penyaringan parameter, dan lain-lain untuk mengendalikan risiko di masa depan.
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 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/
// © tathal and special thanks to oakwhiz for his porting of my custom volume indicator
//@version=5
strategy('Volume Difference Delta Cycle Oscillator', 'VDDC Osc', default_qty_type=strategy.percent_of_equity, default_qty_value=100, max_bars_back=5000)
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31)
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12)
startYear = input.int(title='Start Year', defval=2010, minval=1800, maxval=2100)
endDate = input.int(title='End Date', defval=31, minval=1, maxval=31)
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12)
endYear = input.int(title='End Year', defval=2021, minval=1800, maxval=2100)
// Normalize Function
normalize(_src, _min, _max) =>
// Normalizes series with unknown min/max using historical min/max.
// _src : series to rescale.
// _min, _min: min/max values of rescaled series.
var _historicMin = 10e10
var _historicMax = -10e10
_historicMin := math.min(nz(_src, _historicMin), _historicMin)
_historicMax := math.max(nz(_src, _historicMax), _historicMax)
_min + (_max - _min) * (_src - _historicMin) / math.max(_historicMax - _historicMin, 10e-10)
// STEP 2:
// Look if the close time of the current bar
// falls inside the date range
inDateRange = true
// Stop loss & Take Profit Section
l_sl_inp = input(2.0, title='Long Stop Loss %') / 100
l_tp_inp = input(4.0, title='Long Take Profit %') / 100
l_stop_level = strategy.position_avg_price * (1 - l_sl_inp)
l_take_level = strategy.position_avg_price * (1 + l_tp_inp)
s_sl_inp = input(2.0, title='Short Stop Loss %') / 100
s_tp_inp = input(4.0, title='Short Take Profit %') / 100
s_stop_level = strategy.position_avg_price * (1 + s_sl_inp)
s_take_level = strategy.position_avg_price * (1 - s_tp_inp)
src = close
// Volume Differnce Indicator Delta
float change_src = ta.change(src)
float i_obv = ta.cum(change_src > 0 ? volume : change_src < 0 ? -volume : 0 * volume)
float i_pvt = ta.pvt
float result = ta.change(i_obv - i_pvt)
float nresult = ta.ema(normalize(result, -1, 1), 20)
// Volume Differnce Indicator Delta %B
length = input.int(20, minval=1, title='Volume Bands Length')
mult = input.float(2.0, minval=0.001, maxval=50, title='Volume Bands StdDev')
basis = ta.ema(nresult, length)
dev = mult * ta.stdev(nresult, length)
upper = basis + dev
lower = basis - dev
bbr = (nresult - lower) / (upper - lower)
// Normal %B, Based on close
l1 = input.int(20, minval=1, title='Bollinger Bands Length')
src2 = close
mult1 = input.float(2.0, minval=0.001, maxval=50, title='Bollinger Bands StdDev')
basis1 = ta.sma(src2, l1)
dev1 = mult1 * ta.stdev(src2, l1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1
bbr1 = (src - lower1) / (upper1 - lower1)
/// Final Output Line
hist = ta.ema(ta.ema(ta.ema(bbr1 - bbr, input(2, title='Hist Smoothing Factor #1')), input(2, title='Hist Smoothing Factor #2')), input(2, title='Hist Smoothing Factor #3'))
/// Overbought / Oversold Line Creation
oversold = input(-.1)
overbought = input(.4)
hline(oversold, linewidth=2, color=color.new(#81c784, 62))
hline(overbought, linewidth=2, color=color.new(#c2185b, 38))
/// Long & Short Conditions
short = hist > overbought
long = hist < oversold
/// Colors & Plotting
histColor = hist >= 0 ? hist[1] < hist ? #26A69A : #B2DFDB : hist[1] < hist ? #FFCDD2 : #EF5350
plot(hist, title='Histogram', style=plot.style_columns, color=color.new(histColor, 0))
CrossBgColor = long ? color.new(#81c784, 62) : short ? color.new(#c2185b, 38) : na
bgcolor(color.new(CrossBgColor, 90))
/// Strategy Methodology
if inDateRange
strategy.entry('long', strategy.long, when=long, stop=l_stop_level, limit=l_take_level)
if inDateRange and strategy.position_size > 0
strategy.close_all(when=short)
if inDateRange
strategy.entry('short', strategy.short, when=short, stop=s_stop_level, limit=s_take_level)
if inDateRange and strategy.position_size < 0
strategy.close_all(when=long)