متحرک خرید و فروخت حجم بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-26 11:15:31
ٹیگز:

img

جائزہ

یہ حکمت عملی اعلی امکان کے رجحان سے باخبر رہنے کے ل weekly ہفتہ وار وی ڈبلیو اے پی اور فلٹرنگ کے لئے بولنگر بینڈ کے ساتھ مل کر ، اپنی مرضی کے مطابق ٹائم فریم خرید و فروخت کے حجم کے ذریعے طویل اور مختصر طے کرتی ہے۔ یہ یکطرفہ خطرے کو مؤثر طریقے سے کنٹرول کرنے کے لئے متحرک منافع لینے اور نقصان کو روکنے کا طریقہ کار بھی متعارف کراتی ہے۔

حکمت عملی کا اصول

  1. اپنی مرضی کے مطابق ٹائم فریم کے اندر خرید و فروخت کے حجم کے اشارے کا حساب لگائیں
  • BV: کم قیمت پر خریدنے کی وجہ سے خریدنے کا حجم
  • ایس وی: فروخت کا حجم، اعلی نقطہ پر فروخت کی وجہ سے
  1. پروسیسنگ خرید و فروخت کا حجم
  • 20 پیریڈ ای ایم اے کی طرف سے ہموار
  • پروسیس شدہ خرید و فروخت کے حجم کو مثبت اور منفی میں الگ کریں
  1. جج اشارے کی سمت
  • 0 سے زیادہ تیزی ہے، 0 سے کم کمی ہے
  1. ہفتہ وار VWAP اور بولنگر بینڈ کے ساتھ مل کر اختلاف کا تعین کریں
  • قیمت VWAP اور اشارے سے اوپر تیزی سے طویل سگنل ہے
  • VWAP اور اشارے کے نیچے قیمت کم سگنل ہے
  1. متحرک منافع اور سٹاپ نقصان
  • روزانہ اے ٹی آر کی بنیاد پر منافع لینے اور نقصان روکنے کا مقررہ فیصد

فوائد

  1. خرید و فروخت کا حجم مارکیٹ کی حقیقی رفتار کی عکاسی کرتا ہے، رجحانات کی ممکنہ توانائی کو پکڑتا ہے
  2. ہفتہ وار وی ڈبلیو اے پی طویل مدتی ٹرینڈ سمت کا فیصلہ کرتا ہے، بولنگر بینڈ بریک آؤٹ سگنل کا تعین کرتے ہیں
  3. متحرک اے ٹی آر سیٹ منافع اور سٹاپ نقصان لیتے ہیں، منافع کو زیادہ سے زیادہ مقفل کرتے ہیں اور اوور ٹوننگ سے بچتے ہیں

خطرات

  1. خریدنے اور فروخت کے حجم کے اعداد و شمار میں کچھ غلطیاں ہیں، غلط فیصلے کا سبب بن سکتی ہیں
  2. ایک اشارے کے ساتھ مل کر فیصلہ کرنے سے غلط سگنل پیدا ہوتے ہیں
  3. غلط بولنگر بینڈز پیرامیٹر کی ترتیبات درست بریکآؤٹس کو محدود کرتی ہیں

اصلاح کی ہدایات

  1. متعدد ٹائم فریم خریدنے اور فروخت کے حجم کے اشارے کے ساتھ بہتر بنائیں
  2. فلٹرنگ کے لئے تجارتی حجم اور دیگر معاون اشارے شامل کریں
  3. بریک آؤٹ کی کارکردگی کو بہتر بنانے کے لئے بولنگر بینڈ پیرامیٹرز کو متحرک طور پر ایڈجسٹ کریں

نتیجہ

یہ حکمت عملی خرید و فروخت کے حجم کی پیش گوئی کا مکمل استعمال کرتی ہے ، جس سے VWAP اور بولنگر بینڈ کے ذریعہ اعلی احتمال کے سگنل پیدا ہوتے ہیں ، جبکہ متحرک منافع اور اسٹاپ نقصان کے ذریعہ خطرہ کو مؤثر طریقے سے کنٹرول کیا جاتا ہے۔ جیسا کہ پیرامیٹرز اور قوانین کو بہتر بنایا جاتا رہتا ہے ، کارکردگی میں مزید نمایاں ہونے کی توقع ہے۔


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 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/
// © original author ceyhun
//@ exlux99 update

//@version=5
strategy('Buying Selling Volume Strategy', format=format.volume, precision=0, overlay=false)

weekly_vwap = request.security(syminfo.tickerid, "W", ta.vwap(hlc3))

vi = false
customTimeframe = input.timeframe("60", group="Entry Settings")

allow_long = input.bool(true, group="Entry Settings")
allow_short = input.bool(false, group="Entry Settings")

xVolume = request.security(syminfo.tickerid, customTimeframe, volume)
xHigh = request.security(syminfo.tickerid, customTimeframe, high)
xLow = request.security(syminfo.tickerid, customTimeframe, low)
xClose = request.security(syminfo.tickerid, customTimeframe, close)

BV = xHigh == xLow ? 0 : xVolume * (xClose - xLow) / (xHigh - xLow)
SV = xHigh == xLow ? 0 : xVolume * (xHigh - xClose) / (xHigh - xLow)

vol = xVolume > 0 ? xVolume : 1
TP = BV + SV
BPV = BV / TP * vol
SPV = SV / TP * vol
TPV = BPV + SPV

tavol20 = request.security(syminfo.tickerid, customTimeframe, ta.ema(vol, 20))
tabv20= request.security(syminfo.tickerid, customTimeframe, ta.ema(BV, 20))
tasv20= request.security(syminfo.tickerid, customTimeframe, ta.ema(SV, 20))
VN = vol / tavol20
BPN = BV / tabv20 * VN * 100
SPN = SV / tasv20 * VN * 100
TPN = BPN + SPN

xbvp = request.security(syminfo.tickerid, customTimeframe,-math.abs(BPV))
xbpn = request.security(syminfo.tickerid, customTimeframe,-math.abs(BPN))
xspv = request.security(syminfo.tickerid, customTimeframe,-math.abs(SPV))
xspn = request.security(syminfo.tickerid, customTimeframe,-math.abs(SPN))

BPc1 = BPV > SPV ? BPV : xbvp
BPc2 = BPN > SPN ? BPN : xbpn
SPc1 = SPV > BPV ? SPV : xspv
SPc2 = SPN > BPN ? SPN : xspn
BPcon = vi ? BPc2 : BPc1
SPcon = vi ? SPc2 : SPc1


minus = BPcon + SPcon
plot(minus, color = BPcon > SPcon  ? color.green : color.red , style=plot.style_columns) 

length = input.int(20, minval=1, group="Volatility Settings")
src = minus//input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev", group="Volatility Settings")
xtasma = request.security(syminfo.tickerid, customTimeframe, ta.sma(src, length))
xstdev = request.security(syminfo.tickerid, customTimeframe, ta.stdev(src, length))
basis = xtasma
dev = mult * xstdev
upper = basis + dev
lower = basis - dev
plot(basis, "Basis", color=#FF6D00, offset = 0)
p1 = plot(upper, "Upper", color=#2962FF, offset = 0)
p2 = plot(lower, "Lower", color=#2962FF, offset = 0)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

// Original a
longOriginal = minus > upper and BPcon > SPcon and close > weekly_vwap
shortOriginal = minus > upper and BPcon < SPcon and close< weekly_vwap



high_daily = request.security(syminfo.tickerid, "D", high)
low_daily  = request.security(syminfo.tickerid, "D", low)
close_daily = request.security(syminfo.tickerid, "D", close)

true_range = math.max(high_daily - low_daily, math.abs(high_daily - close_daily[1]), math.abs(low_daily - close_daily[1]))
atr_range = ta.sma(true_range*100/request.security(syminfo.tickerid, "D", close), 14)

ProfitTarget_Percent_long = input.float(100.0, title='TP Multiplier for Long entries ', step=0.5, step=0.5, group='Dynamic Risk Management')
Profit_Ticks_long = close + (close * (atr_range * ProfitTarget_Percent_long))/100
LossTarget_Percent_long = input.float(1.0, title='SL Multiplier for Long entries', step=0.5, group='Dynamic Risk Management')
Loss_Ticks_long = close - (close * (atr_range * LossTarget_Percent_long ))/100

ProfitTarget_Percent_short = input.float(100.0, title='TP Multiplier for Short entries ', step=0.5, step=0.5, group='Dynamic Risk Management')
Profit_Ticks_short = close - (close * (atr_range*ProfitTarget_Percent_short))/100
LossTarget_Percent_short = input.float(5.0, title='SL Multiplier for Short entries', step=0.5, group='Dynamic Risk Management')
Loss_Ticks_short = close + (close * (atr_range*LossTarget_Percent_short))/100



var longOpened_original = false
var int timeOfBuyLong = na
var float tpLong_long_original = na
var float slLong_long_original = na
long_entryx = longOriginal

longEntry_original = long_entryx and not longOpened_original 


if longEntry_original
    longOpened_original := true
    tpLong_long_original := Profit_Ticks_long
    slLong_long_original := Loss_Ticks_long
    timeOfBuyLong := time
    //lowest_low_var_sl := lowest_low

     
tpLong_trigger = longOpened_original[1] and ((close > tpLong_long_original) or (high > tpLong_long_original)) //or high > lowest_low_var_tp
slLong_Trigger = longOpened_original[1] and ((close < slLong_long_original) or (low < slLong_long_original)) //or low < lowest_low_var_sl

longExitSignal_original =   shortOriginal or tpLong_trigger or slLong_Trigger 


if(longExitSignal_original)
    longOpened_original := false
    tpLong_long_original := na
    slLong_long_original := na


if(allow_long)
    strategy.entry("long", strategy.long, when=longOriginal) 
    strategy.close("long", when= longExitSignal_original) //or shortNew

if(allow_short)
    strategy.entry("short", strategy.short, when=shortOriginal ) 
    strategy.close("short", when= longOriginal) //or shortNew



مزید