यह एक संशोधित वॉल्यूम ऑसिलेटर संकेतक के आधार पर एक ट्रेडिंग रणनीति का अनुसरण करता है। यह बढ़ते वॉल्यूम सिग्नल की पहचान करने के लिए वॉल्यूम चलती औसत का उपयोग करता है और प्रविष्टियों या निकासों को निर्धारित करता है। इस बीच, यह मूल्य उतार-चढ़ाव के दौरान गलत संकेतों से बचने के लिए मूल्य प्रवृत्ति निर्णय को शामिल करता है।
मापदंडों को समायोजित करके, संकेतक गणना को अनुकूलित करके और अन्य पुष्टिकरणों को जोड़कर जोखिमों को कम किया जा सकता है।
यह रणनीति दो स्टॉप लॉस थ्रेशोल्ड मानों के साथ प्रविष्टियों और निकासों को निर्धारित करने के लिए मूल्य प्रवृत्ति के साथ एक बेहतर वॉल्यूम ऑसिलेटर का उपयोग करती है। यह पैरामीटर ट्यूनिंग, सिग्नल फ़िल्टरिंग और स्टॉप लॉस रणनीतियों में अनुकूलन स्थान के साथ एक स्थिर प्रवृत्ति निम्नलिखित प्रणाली है। कुल मिलाकर इसमें आगे के शोध और अनुकूलन के लायक व्यावहारिक मूल्य है।
/*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")