Ini adalah trend mengikuti strategi perdagangan berdasarkan penunjuk osilator jumlah yang diubah suai. Ia menggunakan purata bergerak jumlah untuk mengenal pasti isyarat jumlah yang meningkat dan menentukan entri atau keluar. Sementara itu, ia menggabungkan penilaian trend harga untuk mengelakkan isyarat yang salah semasa turun naik harga.
Risiko boleh dikurangkan dengan menyesuaikan parameter, mengoptimumkan pengiraan penunjuk, dan menggabungkan pengesahan lain.
Strategi ini menggunakan pengayun jumlah yang dipertingkatkan dengan trend harga untuk menentukan entri dan keluar dengan dua nilai ambang kerugian berhenti. Ia adalah sistem trend berikut yang stabil dengan ruang pengoptimuman dalam penyesuaian parameter, penapisan isyarat dan strategi kerugian berhenti. Secara keseluruhan ia mempunyai nilai praktikal yang bernilai penyelidikan dan pengoptimuman lanjut.
/*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")