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