
اس حکمت عملی کا نام پرائیس چینل وی ڈبلیو اے پی ٹریڈنگ اسٹریٹیجی ہے۔ یہ ایک قیمت چینل پر مبنی حکمت عملی ہے جس میں وی ڈبلیو اے پی کی تجارت کی جاتی ہے۔ اس حکمت عملی کا بنیادی خیال یہ ہے کہ: قیمت چینل کے اندر ، وی ڈبلیو اے پی اشارے کی اوسط لائن اور اس کے اوپر اور نیچے کی طرف مڑنے والی چینل لائن کا استعمال خرید و فروخت کے لئے کیا جائے۔ جب چینل لائن کو توڑنے کے بعد ، فکسڈ پوزیشنوں پر کل اثاثوں کے فیصد کے مطابق پوزیشن کھولی جائے۔
یہ حکمت عملی VWAP اشارے کے ذریعہ موجودہ قیمتوں کی اوسط سودے بازی کی قیمت کا حساب لگاتی ہے۔ VWAP قیمت کی نمائندگی کرتا ہے اوسط قیمت ، سودے کی رقم اور سودے کی مقدار کا تناسب ہے۔ VWAP اشارے موجودہ قیمت اور تاریخی سودے بازی کی اوسط قیمت سے انحراف کی عکاسی کرتا ہے۔
حکمت عملی VWAP اشارے کی اوسط لائن اور اس کی انحراف کی راہ کی لائن کا استعمال کرتی ہے۔ انحراف کی راہ کی لائن کا تناسب پیرامیٹرز ٹب longlevel1 ٹب اور shortlevel1 ٹب کے ذریعہ طے کیا گیا ہے۔ جب قیمت اوپر کی انحراف کی راہ کی لائن کو توڑتی ہے تو ، پیرامیٹرز ٹب lotsizelong ٹب کی پوزیشن فی صد کے مطابق زیادہ کھلے اور جب قیمت نیچے کی انحراف کی راہ کی لائن کو توڑتی ہے تو ، پیرامیٹرز ٹب lotsizeshort ٹب کی پوزیشن فی صد کے مطابق کھلے۔ جب قیمت VWAP لائن کی اوسط کے قریب واپس آجاتی ہے تو ، صفائی کا انتخاب کریں۔
اس حکمت عملی میں پیرامیٹرز کی ترتیب مکمل طور پر چینل ٹریڈنگ کی سوچ کی عکاسی کرتی ہے۔ صارف اپنی ترجیحات کے مطابق چینل کی چوڑائی اور پوزیشن تناسب کے سائز کو ایڈجسٹ کرسکتا ہے ، جس سے مختلف سطحوں پر تجارت کی فریکوئنسی حاصل ہوسکتی ہے۔
اس تجارتی حکمت عملی کے کچھ فوائد ہیں:
چونکہ وی ڈبلیو اے پی اشارے قیمتوں کی اوسط سطح کی اچھی طرح سے عکاسی کرتا ہے ، لہذا اس کی چینل لائن کی بنیاد پر تجارت کرنے سے ، قیمت کے مرکزی مرکز کو مؤثر طریقے سے مقفل کیا جاسکتا ہے ، اور قلیل مدتی اتار چڑھاؤ کی حد سے بچایا جاسکتا ہے۔ اس کے ساتھ ہی ، مختلف پیرامیٹرز چینلز کا استعمال کرتے ہوئے ، بیچوں میں ذخیرہ کرنے سے ، خطرہ کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے ، تاکہ ایک طرفہ خطرے سے ذخیرہ اندوزی کو روک دیا جاسکے۔ آخر میں ، بروقت اسٹاپ اپ کے ذریعہ وی ڈبلیو اے پی کی اوسط لائن کے قریب خالی پوزیشن میں واپس آنے سے ، قیمتوں میں الٹ جانے سے ہونے والے نقصان کو کم کیا جاسکتا ہے۔
اس حکمت عملی کے کچھ خطرات بھی ہیں جن کے بارے میں آگاہ ہونا ضروری ہے:
وی ڈبلیو اے پی اشارے ہائی فریکوئینسی ٹریڈنگ اتار چڑھاؤ کے لئے حساس نہیں ہے ، اگر قیمت میں انتہائی اچھال یا قلیل مدتی غیر معمولی صورتحال کا سامنا کرنا پڑتا ہے تو ، پھر بھی غیر ضروری تجارتی سگنل اور نقصانات کا سبب بنے گا۔ مزید برآں ، اگر چینل پیرامیٹرز کو بہت زیادہ نرمی سے ترتیب دیا گیا ہے تو ، قیمت کی دخول غیر موثر سگنل کی تشکیل میں آسان ہے۔ آخر میں ، اگر واپسی کے آپریشن کی فلیٹ رینج پوزیشن بہت وسیع ترتیب دی گئی ہے تو ، بہترین اسٹاپ ٹائمنگ سے محروم ہوسکتے ہیں اور نقصان کو روک سکتے ہیں۔
اس کا علاج معقول اندازہ لگانے والے پیرامیٹرز کی ترتیب ، مناسب طریقے سے چینل پیرامیٹرز کو ایڈجسٹ کرنا ہے۔ قیمت کی غیر معمولی قیمتوں کا تعین کرنے کے لئے دوسرے اشارے کے ساتھ مل کر ، اندھے تعاقب سے بچنے کے لئے۔ آخر میں مختلف سطحوں کے چینل اور واپسی کی حد کے پیرامیٹرز کی اصلاح کا جائزہ لیں ، تاکہ بہتر روک تھام کا اثر حاصل کیا جاسکے۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
مزید پرتوں کی راہداری لائنوں کو شامل کیا جاسکتا ہے ، اور زیادہ مستحکم تجارتی اثر کے ل combination مجموعہ پیرامیٹرز کو بہتر بنایا جاسکتا ہے۔ اس کے علاوہ ، تجارتی حجم کے فیصلے کے قواعد شامل کیے جاسکتے ہیں ، تاکہ قیمتوں میں غیر موثر اچھال سے تجارتی نقصان کو روکا جاسکے۔ آخر میں ، اسٹاپ نقصان کے قواعد بھی مرتب کیے جاسکتے ہیں ، جب پوزیشن کی نقصان کی ایک خاص تناسب تک پہنچ جاتی ہے تو نقصان کی جگہ سے دور ہوجائیں ، اور خطرے کو مؤثر طریقے سے کنٹرول کریں۔
اس حکمت عملی میں وی ڈبلیو اے پی اشارے اور قیمت چینل کا امتزاج کیا گیا ہے ، جس سے نسبتا stable مستحکم تجارت کی حکمت عملی حاصل ہوتی ہے۔ حکمت عملی کے پیرامیٹرز کی ترتیب لچکدار ہے ، اور صارف اپنی ترجیحات کے مطابق اسے ایڈجسٹ کرسکتا ہے۔ یہ حکمت عملی قدر کی مرکزی سمت کا مؤثر انداز میں فیصلہ کرسکتی ہے ، پیرامیٹرز کے مجموعے اور بیچوں میں ذخیرہ کرنے کے ذریعے مستحکم منافع بخش اثر حاصل کرسکتی ہے۔ اگرچہ اس حکمت عملی میں کچھ بہتری کی گنجائش بھی ہے ، لیکن مجموعی طور پر یہ ایک قابل عمل مقدار کی تجارت کی حکمت عملی ہے۔
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "VWAP Bands Backtest", shorttitle = "VWAP Bands Backtest", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
lotsizelong = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot long, %")
lotsizeshort = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot short, %")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
shortlevel1 = input(1.0, title = "Short line 1")
longlevel1 = input(-1.0, title = "Long line 1")
needoffset = input(true, title = "Offset")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
truetime = true
//VWAP
ma = vwap(hlc3)
//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
shortline1 = short1? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
//Lines
colorlong1 = long1 ? color.lime : na
colorshort1 = short1 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
//Trading
lotlong = 0.0
lotshort = 0.0
lotlong := size == 0 ? (strategy.equity / close) * (lotsizelong / 100) : lotlong[1]
lotshort := size == 0 ? (strategy.equity / close) * (lotsizeshort / 100) : lotshort[1]
if ma > 0
if lotlong > 0
lotslong = 0.0
lotslong := strategy.position_size > 0 ? round(strategy.position_size / lotlong) : 0.0
strategy.entry("L1", strategy.long, lotlong, limit = longline1, when = (lotslong == 0 and long1 and truetime))
if lotshort > 0
lotsshort = 0.0
lotsshort := strategy.position_size < 0 ? round(strategy.position_size / lotshort) : 0.0
strategy.entry("S1", strategy.short, lotshort, limit = shortline1, when = (lotsshort == 0 and short1 and truetime))
if strategy.position_size > 0
strategy.exit("TPL", "L1", limit = ma)
if strategy.position_size < 0
strategy.exit("TPS", "S1", limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("L1")
strategy.cancel("S1")
strategy.cancel("TPL")
strategy.cancel("TPS")