حجم توانائی سے چلنے والی حکمت عملی مارکیٹ کے شرکاء کی جذبات کی تبدیلیوں کا تجزیہ کرتی ہے۔ یہ تجارتی حجم کو تیزی سے بڑھتی ہوئی حجم اور کم ہونے والی حجم میں تقسیم کرتی ہے ، ان کے وزن میں چلنے والے اوسط کا حساب لگاتی ہے ، جب تیزی سے بڑھتی ہوئی حجم غالب ہوتی ہے تو تیزی سے سگنل پیدا کرتی ہے ، اور جب کم ہونے والی حجم غالب ہوتی ہے تو کمی کے سگنل پیدا کرتی ہے۔
حکمت عملی سب سے پہلے ہر موم بتی کی تجارت کے حجم کو بندش کی قیمت اور افتتاحی قیمت کے درمیان تعلقات کی بنیاد پر تیزی کی حجم اور bearish حجم میں تقسیم کرتی ہے۔ اگر بندش کی قیمت افتتاحی قیمت سے زیادہ ہے تو ، موم بتی کی پوری تجارت کا حجم تیزی کا حجم ہے۔ اگر بندش کی قیمت افتتاحی قیمت سے کم ہے تو ، تیزی کا حجم (اعلی ترین قیمت - افتتاحی قیمت) / (اعلی ترین قیمت - کم ترین قیمت) کے تناسب کے مطابق شمار کیا جاتا ہے ، اور باقی کمی کا حجم ہے۔
اس کے بعد یہ بالترتیب آخری این موم بتیوں کی تیزی اور کمی کے حجم کے وزن والے چلتے ہوئے اوسط کا حساب لگاتا ہے۔ اگر تیزی کے حجم کا چلتا ہوا اوسط تیزی کے حجم سے بڑا ہے ، اور ان کا فرق تیزی کے حجم سے تقسیم ایک پہلے سے طے شدہ حد سے بڑا ہے ، تو ایک تیزی کا اشارہ پیدا ہوتا ہے۔ کمی کے اشارے پیدا کرنے کا اصول اسی طرح کا ہے۔
اس میں مجموعی زونوں کی نشاندہی کرنے کے لئے اوسط تجارتی حجم کے ساتھ ایک بیس لائن بھی طے کی گئی ہے۔ اگر تیزی اور کمی کے حجم کے درمیان کوئی اہم فرق نہیں ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ مارکیٹ فی الحال مجموعی ہے۔
پیرامیٹر کی اصلاح اور دیگر اشارے کے ساتھ مل کر طریقوں سے خطرات کو کم کرنے میں مدد مل سکتی ہے۔
حجم توانائی سے چلنے والی حکمت عملی مارکیٹ کے جذبات اور رجحان کی تبدیلیوں کا تعین کرنے کے لئے تیزی اور bearish تجارتی حجم کی تقسیم کا ذہین طور پر فیصلہ کرتی ہے۔ یہ اکیلے یا دیگر حکمت عملیوں کے ساتھ مل کر استعمال کیا جاسکتا ہے۔ پیرامیٹر کی اصلاح اور اشارے کے امتزاج کے ذریعے استحکام اور منافع بخش ہونے میں مزید بہتری حاصل کی جاسکتی ہے۔
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 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/ // © Shuttle_Club //@version=5 strategy('Volume fight strategy', default_qty_type=strategy.cash, default_qty_value=10000, currency='USD', commission_value=0.04, calc_on_order_fills=false, calc_on_every_tick=false, initial_capital=10000) direction = input.string('ANY', 'Direction', options=['LONG', 'SHORT', 'ANY'], tooltip='Select the direction of trade.\n\nВыберите направление торговли.') ma = input.int(11, 'Search_range', minval=1, tooltip='The range of estimation of the predominance of bullish or bearish volume (quantity bars). The smaller the TF, the higher the range value should be used to filter out false signals.\n\nДиапазон оценки преобладания бычьего или медвежьего объема (количество баров). Чем меньше ТФ, тем выше следует использовать значение диапазона, чтобы отфильтровать ложные сигналы.') delta = input.float(15, 'Smoothing_for_flat,%', step=0.5, minval=0, tooltip='Smoothing to reduce false signals and highlight the flat zone. If you set the percentage to zero, the flat zones will not be highlighted, but there will be much more false signals, since the indicator becomes very sensitive when the smoothing percentage decreases.\n\nСглаживание для уменьшения ложных сигналов и выделения зоны флета. Если выставить процент равным нулю, то зоны флета выделяться не будут, но будет гораздо больше ложных сигналов, так как индикатор становится очень чувствительным при снижении процента сглаживания') bgshow = input.bool(true, 'Show background zones', tooltip='Show the color background of the current trading zone.\n\nПоказывать цветовой фон текущей торговой зоны.') all_signal_show = input.bool(false, 'Show each setup in zone', tooltip='Show every signals into trading zone.\n\nПоказывать каждый сигнал внутри торговой зоны.') ///// CALCULATION bull_vol = open < close ? volume : volume * (high - open) / (high - low) //determine the share of bullish volume bear_vol = open > close ? volume : volume * (open - low) / (high - low) //determine the share of bearish volume avg_bull_vol = ta.vwma(bull_vol, ma) //determine vwma avg_bear_vol = ta.vwma(bear_vol, ma) diff_vol = ta.sma(avg_bull_vol / volume - 1 - (avg_bear_vol / volume - 1), ma) //normalize and smooth the values vol_flat = math.abs(avg_bull_vol + avg_bear_vol) / 2 //determine average value for calculation flat-filter ///// SIGNALS up = int(na), up := nz(up[1]) dn = int(na), dn := nz(dn[1]) bull = avg_bull_vol > avg_bear_vol and vol_flat / avg_bull_vol < 1 - delta / 100 //determine up zones bear = avg_bull_vol < avg_bear_vol and vol_flat / avg_bear_vol < 1 - delta / 100 //determine dn zones if bull up += 1, dn := 0 dn if bear dn += 1, up := 0 up if not bull and not bear and all_signal_show up := 0, dn := 0 dn ///// PLOTTING plotshape(bull and up == 1, 'UP', location=location.bottom, style=shape.triangleup, color=color.new(color.green, 0), size=size.tiny) plotshape(bear and dn == 1, 'DN', location=location.top, style=shape.triangledown, color=color.new(color.red, 0), size=size.tiny) bgcolor(title='Trading zones', color=bgshow and avg_bull_vol > avg_bear_vol and vol_flat / avg_bull_vol < 1 - delta / 100 ? color.new(color.green, 85) : bgshow and avg_bull_vol < avg_bear_vol and vol_flat / avg_bear_vol < 1 - delta / 100 ? color.new(color.red, 85) : na) plot(diff_vol, 'Volume difference', style=plot.style_area, color=avg_bull_vol > avg_bear_vol and vol_flat / avg_bull_vol < 1 - delta / 100 ? color.new(color.green, 0) : avg_bull_vol < avg_bear_vol and vol_flat / avg_bear_vol < 1 - delta / 100 ? color.new(color.red, 0) : color.new(color.gray, 50)) strategy.close('Short', comment='close', when=bull and up == 1) strategy.close('Long', comment='close', when=bear and dn == 1) strategy.entry('Long', strategy.long, when=direction != 'SHORT' and bull and up == 1) strategy.entry('Short', strategy.short, when=direction != 'LONG' and bear and dn == 1) if bull and up==1 alert('Bullish movement! LONG trading zone', alert.freq_once_per_bar_close) if bear and dn==1 alert('Bearish movement! SHORT trading zone', alert.freq_once_per_bar_close)