یہ حکمت عملی حجم اور قیمت کے فرق کی حکمت عملیوں سے تعلق رکھنے والی حجم میں تبدیلی کی شرح کا حساب لگاتے ہوئے بیل اور ریچھ کے دوروں کی تبدیلی کا جائزہ لیتی ہے۔ یہ حجم کے رفتار اشارے اور قیمت کے بولنگر بینڈ کو یکجا کرتی ہے تاکہ قیمت پر حجم میں تبدیلی کا اہم اثر طے کیا جاسکے اور رجحانات کے موڑ کے مقامات کو پکڑا جاسکے۔
حجم تبدیلی کی تبدیلی کی شرح کا حساب لگائیں (حجم فرق اشارے کی تبدیلی کی شرح) ، حجم رفتار پر مبنی اشارے کے نتیجے کو حاصل کرنے کے لئے.
نتائج کے بولنگر بینڈ کا حساب لگائیں تاکہ bbr حاصل کیا جاسکے جو حجم کی رفتار کے معیاری انحراف کی نمائندگی کرتا ہے۔
قیمت کے معیاری انحراف کی نمائندگی کرنے والے bbr1 حاصل کرنے کے لئے قریبی قیمت کے بولنگر بینڈ کا حساب لگائیں.
ان دونوں کے درمیان فرق کا حساب لگائیں، جو حجم کی رفتار کے معیاری انحراف کو قیمت کے معیاری انحراف کو کم کر کے، حتمی اشارے کے طور پر ہے.
جب ہسٹ 0 سے اوپر جاتا ہے تو یہ مختصر انٹری سگنل ہے، اور جب 0 سے نیچے گزرتا ہے تو یہ طویل انٹری سگنل ہے.
حجم کی تبدیلی کی شرح کا حساب لگاتے ہوئے ، قیمت پر حجم کی تبدیلی کے اہم اثر کو تقویت ملی ہے۔ جب قیمت ابھی تک الٹ نہیں ہوئی ہے جب حجم الٹ جاتا ہے تو ، ہسٹ 0 سے اوپر یا نیچے عبور کرے گا ، جس سے تجارتی سگنل پیدا ہوتے ہیں۔ یہ قیمت کے رجحانات کے موڑ کے مقامات کی پیش گوئی کرسکتا ہے۔
یہ حکمت عملی حجم اور قیمت میں تغیر کی حکمت عملی ہے جو حجم میں تبدیلی کی شرح پر مبنی ہے ، جو قیمتوں کے رجحانات کے اہم نکات کو پہلے سے ظاہر کرسکتی ہے۔
حجم کی تبدیلی کی شرح کے حساب سے قیمت پر حجم کی تبدیلی کے اہم اثر کو تقویت ملتی ہے ، جس کے نتیجے میں بہتر تجارتی کارکردگی ہوتی ہے۔
قیمت کے بولنگر بینڈ کے ساتھ حجم کی رفتار کے اشارے کا امتزاج ٹریڈنگ سگنل کو زیادہ قابل اعتماد بناتا ہے۔
ہسٹ ڈیٹا پر ٹرپل ایکسپونینشل ہموار کرنے کا استعمال سگنل کو زیادہ درست اور ہموار بناتا ہے۔
زیادہ خریدے گئے / زیادہ فروخت شدہ لائنوں اور طویل / مختصر سٹاپ نقصان / منافع لینے کے احکامات کو مؤثر طریقے سے خطرات کو کنٹرول کرنے میں مدد ملتی ہے.
بہت سے حسب ضرورت پیرامیٹرز جیسے بولنگر بینڈ کی لمبائی، معیاری انحراف ضرب اور ہسٹ ہموار کرنے والے عوامل حکمت عملی کو بہتر بناتے ہیں۔
حجم کے اعداد و شمار مارکیٹ ٹریڈنگ کو صحیح طور پر ظاہر نہیں کرسکتے ہیں اور ان میں ہیرا پھیری ہوسکتی ہے۔
حجم کی قیمتوں میں فرق برقرار نہیں رہ سکتا اور قیمتوں میں تبدیلی کے بغیر خرابی ہوسکتی ہے۔
پیرامیٹر کی غلط ترتیبات سے زیادہ تجارت یا غلط سگنل پیدا ہوسکتے ہیں۔
غیر معمولی حجم کے اعداد و شمار سے غلط سگنل سے خبردار رہیں.
جب رجحان مضبوط ہو تو الٹی سگنل سے گریز کیا جانا چاہئے۔
خطرات کو پیرامیٹرز کو بہتر بنانے، دیگر فلٹرز کو شامل کرنے، اور سٹاپ نقصان / منافع لینے کی ترتیب سے کم کیا جا سکتا ہے.
زیادہ مستحکم سگنل کے لئے بولنگر بینڈ پیرامیٹرز کو بہتر بنائیں.
رجحان کے خلاف تجارت سے بچنے کے لئے رجحان فلٹر شامل کریں.
سگنل کی تصدیق کے لئے MACD جیسے دیگر اشارے شامل کریں.
اے آئی کا استعمال پیرامیٹرز کو خود بخود بہتر بنانے کے لیے کریں۔
خطرہ مینجمنٹ کو بہتر بنانے کے لئے متحرک سٹاپ نقصان / منافع لے لو شامل کریں.
اعلی سگنل کے معیار کے لئے حجم-قیمت کے فرق کی کامیابی کی شرح کا تعین کرنے کے لئے مشین لرننگ کا اطلاق کریں۔
یہ حکمت عملی حجم کی تبدیلی کی شرح کے حساب سے قیمت پر حجم کی تبدیلی کے اہم اثر کو بڑھا دیتی ہے ، جس سے رجحان کے موڑ کے مقامات کا ابتدائی پتہ چلتا ہے۔ سنگل حجم اشارے کے مقابلے میں ، اس میں زیادہ وشوسنییتا اور درستگی ہے۔ لیکن حجم میں ہیرا پھیری اور تغیرات کی خرابی جیسے خطرات سے پیرامیٹر کی اصلاح ، اشارے کے فلٹرز وغیرہ کے ذریعے بچنا چاہئے۔ مستقبل میں ، اے آئی کو موافقت پذیر پیرامیٹر کی اصلاح کے لئے فائدہ اٹھایا جاسکتا ہے تاکہ حکمت عملی کے استحکام اور منافع کو مزید بہتر بنایا جاسکے۔
/*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)