Type/to search
2
Follow
484
Followers
crypto market RWA کثیر اثاثہ جات متحرک وزن کی تقسیم: خطرہ برابری کی حکمت عملی
Discussions
Created 2026-04-08 16:37:16  Updated 2026-04-20 18:13:03
 0
 206

img

کریپٹو مارکیٹ حال ہی میں اچھی نہیں چل رہی ہے۔ BTC اپنی بلندیوں سے گر گیا ہے، اور altcoins کی حالت اس سے بھی بدتر ہے، بہت سے لوگ انتظار کر رہے ہیں یا مارکیٹ چھوڑ بھی رہے ہیں۔ لیکن اسی دوران، ایک اور چیز خاموشی سے گرم ہو رہی ہے — RWA، یعنی حقیقی دنیا کے اثاثوں کی ٹوکنائزیشن۔ سونا، امریکی اسٹاک، خام تیل — روایتی مارکیٹوں کے یہ اثاثے اب کریپٹو ایکسچینجز پر معاہدوں کی شکل میں ظاہر ہو رہے ہیں۔ بڑی ایکسچینجز نے بتدریج SPY (S&P 500 ETF کی نمائندگی)، XAU (سونا)، CL (خام تیل) جیسی مصنوعات متعارف کروائی ہیں، اور پہلے سے موجود BTC کے ساتھ مل کر، ایک کثیر اثاثہ جاتی تجارتی ماحول جو امریکی اسٹاک، سونا، خام تیل اور کریپٹو کرنسی کو کور کرتا ہے، پہلی بار چین پر مکمل ہوا ہے۔

اس ترتیب کو دیکھ کر میرے ذہن میں ایک خیال آیا: روایتی فنانس میں ایک بہت کلاسک طریقہ کار ہے جسے رسک پیرٹی کہتے ہیں۔ سادہ الفاظ میں — تمام انڈے ایک ٹوکری میں مت رکھیں، اور ہر ٹوکری میں کتنا رکھنا ہے اس کا فیصلہ اس ٹوکری کے خطرے کی بنیاد پر کریں۔ یہ منطق روایتی فنانس میں کئی دہائیوں سے استعمال ہو رہی ہے۔ اس بیئر مارکیٹ میں، جہاں ہر کوئی ایک اثاثے پر انحصار کیے بغیر زندہ رہنے کا طریقہ ڈھونڈ رہا ہے، اور اب کریپٹو مارکیٹ میں بالآخر ان اثاثوں کے معاہدے دستیاب ہو گئے ہیں، تو میں نے اس منطق کو یہاں منتقل کرنے کا فیصلہ کیا۔


پہلے رسک پیرٹی کو واضح کریں، پھر آگے بڑھیں

یہ بتانے سے پہلے کہ یہ کیسے کیا جائے، ضروری ہے کہ رسک پیرٹی کے ان دو الفاظ کو واضح کر دیا جائے، ورنہ آگے کی منطق کو سمجھنا مشکل ہو جائے گا۔

عام طور پر کوئی شخص اثاثے اس طرح مختص کر سکتا ہے: میں اپنے پیسوں کو چار برابر حصوں میں تقسیم کروں گا، ہر اثاثے میں 25% ڈالوں گا۔ یہ سننے میں متوازن لگتا ہے، لیکن مسئلہ یہ ہے کہ BTC ایک دن میں 10% تک اتار چڑھاؤ دکھا سکتا ہے، جبکہ سونا شاید صرف 0.5% حرکت کرے۔ اسی 25% پوزیشن کے ساتھ، BTC آپ کو سونے کے مقابلے میں بیس گنا زیادہ خطرہ دیتا ہے۔ ظاہری طور پر چار اثاثوں میں یکساں تقسیم ہے، لیکن حقیقت میں پورٹ فولیو کی قسمت تقریباً مکمل طور پر BTC پر منحصر ہے، باقی تین محض پس منظر میں ہیں۔

رسک پیرٹی کا طریقہ الٹا سوچتا ہے: رقم کو برابر تقسیم نہ کریں، بلکہ خطرے کو برابر تقسیم کریں۔ BTC کا اتار چڑھاؤ زیادہ ہے تو اسے کم رکھیں؛ سونا مستحکم ہے تو زیادہ رکھیں — لیکن یہ صرف پہلا قدم ہے۔ سب سے اہم بات یہ ہے کہ اثاثے ایک دوسرے سے آزاد نہیں ہیں؛ BTC اور امریکی اسٹاک بعض حالات میں ایک ساتھ گر سکتے ہیں۔ اگر دو اثاثے انتہائی ہم سمت ہوں، تو ان کے انفرادی اتار چڑھاؤ میں بہت فرق ہونے کے باوجود، ان کے خطرے کو برابر کرنے کا کوئی معنی نہیں۔ حقیقی رسک پیرٹی میں ہر اثاثے کے اتار چڑھاؤ اور دوسرے اثاثوں کے ساتھ اس کے تعلق کو مدنظر رکھنا ہوتا ہے، اور covariance matrix کا استعمال کرتے ہوئے ہر اثاثے کے پورٹ فولیو کے مجموعی خطرے میں حاشیوی تعاون کی پیمائش کرنی ہوتی ہے، تاکہ آخر کار ہر اثاثے کا خطرہ تعاون تقریباً برابر ہو جائے۔ اس منطق کا فائدہ یہ ہے کہ کسی ایک اثاثے کے اچانک ڈوبنے سے پورا پورٹ فولیو تباہ نہیں ہوگا۔

img

پہلے اثاثے منتخب کریں، تب ہی تنوع معنی رکھتا ہے

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

اثاثہ جاتی پول میں SPY، XAU، CL، اور BTC شامل ہیں۔ ان چار کو منتخب کرنے کی ایک منطق ہے — ان کی حرکت عام طور پر مکمل طور پر مطابقت نہیں رکھتی۔ جب معیشت اچھی ہوتی ہے تو اسٹاک بڑھتے ہیں، جب خوف و ہراس بڑھتا ہے تو سونا بڑھتا ہے، جب افراط زر کی توقعات بلند ہوتی ہیں تو خام تیل اور سونا دونوں بڑھتے ہیں، اور کریپٹو مارکیٹ کبھی اسٹاک کے ساتھ ہم سمت ہوتی ہے اور کبھی مکمل طور پر علیحدہ۔ ان کے درمیان تعلق کم ہونے کی وجہ سے، انہیں ایک ساتھ رکھنے سے خطرہ کم کرنے میں مدد ملتی ہے۔ اگر چاروں اثاثے روزانہ ایک ساتھ بڑھتے اور گرتے، تو تنوع محض ایک وہم ہوتا، اور کوئی بھی طریقہ اسے بچا نہیں سکتا۔

اثاثے منتخب کرنے کے بعد، اگلا سوال یہ ہے: ہر اثاثے میں کتنا رکھنا چاہیے؟ یہی وہ چیز ہے جس کے لیے رسک پیرٹی کو اصل میں حساب کی ضرورت ہے۔

img

ہر اثاثے میں کتنا رکھنا چاہیے اس کا حساب کیسے لگائیں

حکمت عملی کا حسابی عمل دو مراحل میں تقسیم ہے۔

پہلا مرحلہ: چار اثاثوں کا K线 ڈیٹا حاصل کریں اور انہیں ٹائم اسٹیمپ کے مطابق ہم آہنگ کریں۔ حکمت عملی 1 گھنٹے کی K线 (PERIOD_H1) کو ڈیٹا ان پٹ کے طور پر استعمال کرتی ہے۔ یہ اقدام سادہ لگتا ہے، لیکن حقیقت میں RWA معاہدہ مصنوعات میں بعض اوقات ڈیٹا کی کمی ہوتی ہے۔ اگر کسی وقت SPY کی قیمت نہ ہو، تو اس وقت کا ڈیٹا پوری طرح سے ہٹا دیا جاتا ہے، اور صرف وہی وقت رکھے جاتے ہیں جب چاروں اثاثوں کی قیمتیں موجود ہوں، پھر بعد کی حسابات کی جاتی ہیں۔

javascript
for (var k = 0; k < keys.length; k++) { var row = timeMap[keys[k]], ok = true; for (var i = 0; i < LABELS.length; i++) { if (row[LABELS[i]] === undefined) { ok = false; break; } } if (ok) timestamps.push(parseInt(keys[k])); }

ڈیٹا ہم آہنگ ہونے کے بعد، بند ہونے والی قیمتوں کی سیریز کو لوگارتھمک ریٹرن میں تبدیل کریں، یعنی ln(موجودہ قیمت / پچھلی قیمت)۔ سادہ فیصد تبدیلی کے بجائے لوگارتھمک ریٹرن استعمال کرنے کی وجہ یہ ہے کہ یہ وقتی طور پر قابل جمع ہوتا ہے — متعدد ادوار کا مجموعی لوگارتھمک ریٹرن براہ راست کل لوگارتھمک ریٹرن کے برابر ہوتا ہے، جس سے حساب آسان ہو جاتا ہے؛ دوسری بات یہ کہ اثاثوں کی قیمتوں کے جیومیٹرک براؤنین موشن کے عام مفروضے کے تحت، لوگارتھمک ریٹرن نارمل ڈسٹری بیوشن کی پیروی کرتا ہے، جو بعد میں covariance matrix کے حسابی ڈھانچے کے ساتھ مطابقت رکھتا ہے۔ یہ واضح کرنا ضروری ہے کہ کریپٹو اثاثوں کے حقیقی ریٹرن میں اکثر موٹی دم کی خصوصیت ہوتی ہے، یہ ایک ایسا مفروضاتی انحراف ہے جس پر دھیان دینا چاہیے، اور covariance matrix انتہائی مارکیٹ کے حالات میں حقیقی خطرے کو کم اندازہ لگا سکتی ہے۔

javascript
function calcLogReturns(prices) { var r = []; for (var i = 1; i < prices.length; i++) { var prev = prices[i - 1], cur = prices[i]; if (!prev || !cur || prev <= 0 || cur <= 0) { r.push(0); continue; } r.push(Math.log(cur / prev)); } return r; }

دوسرا مرحلہ: ان ریٹرن سیریز کا استعمال کرتے ہوئے covariance matrix کا حساب لگائیں۔ صرف تاریخی اوسط covariance بہت کھردرا ہوتا ہے، یہاں EWMA weighting استعمال کیا جاتا ہے — حالیہ ڈیٹا کو زیادہ وزن دیتے ہیں، تاکہ covariance matrix مارکیٹ کی حالت میں تبدیلی کو تیزی سے محسوس کر سکے۔

javascript
for (var t = T - 1; t >= 0; t--) { var w = Math.pow(lambda, T - 1 - t); c += w * (retMat[i][t] - means[i]) * (retMat[j][t] - means[j]); ws += w; } cov[i][j] = c / ws; cov[j][i] = cov[i][j];

lambda زوال کا گتانک ہے، حکمت عملی میں بطور ڈیفالٹ EWMA_LAMBDA = 0.94 استعمال کیا گیا ہے، جو RiskMetrics کے روزانہ ڈیٹا کے لیے تجرباتی سیٹنگ سے لیا گیا ہے۔ یہ نوٹ کرنا ضروری ہے کہ RiskMetrics کا 0.94 روزانہ ڈیٹا کے لیے ڈیزائن کیا گیا تھا، جبکہ حکمت عملی 1 گھنٹے کا ڈیٹا استعمال کرتی ہے، جو زیادہ فریکوئنسی ہے۔ اگر covariance matrix حالیہ تبدیلیوں کے لیے حساسیت کو روزانہ 0.94 کے برابر رکھنا چاہیں، تو نظریاتی طور پر اسے 1 کے قریب تبدیل کرنا ہوگا۔ لیکن عملی استعمال میں، 0.94 گھنٹے کی سطح پر بھی ایک قابل قبول نقطہ آغاز ہے، جو حالیہ ڈیٹا کو زیادہ وزن اور تاریخی ڈیٹا کو تیزی سے کم کرنے والی ترتیب کی نمائندگی کرتا ہے۔ اسے حقیقی بیک ٹیسٹ کے نتائج کے مطابق مزید ایڈجسٹ کیا جا سکتا ہے۔ lambda جتنا 1 کے قریب ہوگا، تاریخی ڈیٹا کا اثر اتنا ہی دیرپا رہے گا، اور covariance matrix حالیہ تبدیلیوں پر اتنی ہی سست رد عمل دکھائے گی؛ lambda جتنا چھوٹا ہوگا، حکمت عملی مارکیٹ کی حالت میں تبدیلیوں کے لیے اتنی ہی زیادہ حساس ہوگی، لیکن اس کے ساتھ قلیل مدتی شور کی وجہ سے غیر ضروری پوزیشن ایڈجسٹمنٹ کا امکان بھی بڑھ جائے گا۔

حساب کے بعد ڈائیگنل پر ایک ریگولرائزیشن اصطلاح شامل کی جاتی ہے، جس کا گتانک ڈائیگنل اوسط کے 0.1% ( eps = diagMean * 0.001 ) کے برابر ہوتا ہے۔ 0.001 کا گتانک جانچ کے بعد منتخب کیا گیا ہے، عددی طور پر matrix کی مثبت تعین کو یقینی بنانے کے لیے کافی ہے، جبکہ covariance ساخت پر اثر نہ ہونے کے برابر ہے۔ ایک آسانیاں بھی واضح کرنی ہے: EWMA covariance کے سخت طریقہ میں وزن شدہ اوسط کا استعمال کرتے ہوئے انحراف کا حساب لگانا چاہیے، لیکن کوڈ پوری نظرثانی ونڈو کے سادہ حسابی اوسط کا استعمال کرتا ہے۔ جب ریٹرن کا اوسط صفر کے قریب ہو (مالی اثاثوں کے قلیل مدتی ریٹرن کی عام حالت)، تو اس آسانی کا اثر نہ ہونے کے برابر ہوتا ہے، لیکن جب اوسط صفر سے نمایاں طور پر ہٹ جائے تو معمولی انحراف پیدا ہو سکتا ہے۔

covariance matrix حاصل کرنے کے بعد، اگلا مرحلہ حقیقی رسک پیرٹی کا حل نکالنا ہے — ایک ایسا وزن تلاش کرنا جس میں ہر اثاثے کا پورٹ فولیو کے خطرے میں تعاون تقریباً برابر ہو۔ تکرار شروع کرنے سے پہلے، حکمت عملی نے پہلے ہی مساوی اتار چڑھاؤ والے پورٹ فولیو covariance کے ذریعے ہر اثاثے کی سمت کا تعین کر لیا ہے، جس کا نتیجہ signs[] array میں محفوظ ہے ( +1 لمبی، -1 چھوٹی)۔ تکرار کا عمل پورے دوران اس پہلے سے طے شدہ مقررہ علامت کا استعمال کرتا ہے، صرف وزن کی مقدار کو ایڈجسٹ کرتا ہے، سمت کو تبدیل نہیں کرتا — یہ انجینئرنگ استحکام کے لیے کیا گیا ہے، تاکہ وزن عددی اتار چڑھاؤ کی وجہ سے بار بار سمت تبدیل نہ کرے۔

اس مسئلے کا کوئی بند شکل کا حل نہیں ہے، اس لیے تکرار کے ذریعے قریب کیا جاتا ہے۔ ہر دور میں موجودہ خطرے کے تعاون کا حساب لگائیں، ان اثاثوں کا وزن کم کریں جن کا تعاون بہت زیادہ ہے، اور ان کا وزن بڑھائیں جن کا تعاون بہت کم ہے، اس وقت تک دہرائیں جب تک تبدیلی مستحکم نہ ہو جائے۔

javascript
for (var iter = 0; iter < 2000; iter++) { var trc = riskContribs(w, scaledCov); var pv = portVol(w, scaledCov); var target = pv / n; var obj = 0; for (var i = 0; i < n; i++) { for (var j = i + 1; j < n; j++) { var d = Math.abs(trc[i]) - Math.abs(trc[j]); obj += d * d; } } if (obj < 1e-12) break; var nw = [], ns = 0; for (var i = 0; i < n; i++) { var rc = Math.abs(trc[i]); var sign = signs[i]; // پہلے سے طے شدہ فکسڈ سائن استعمال کریں var a = target / rc; var v = sign * Math.max(Math.abs(w[i]) * Math.pow(a, 0.5), 1e-6); nw.push(v); ns += Math.abs(v); } // مطلق قدر کو نارملائز کریں تاکہ ہر اثاثے کے وزن کی مطلق قدروں کا مجموعہ 1 ہو for (var i = 0; i < n; i++) w[i] = nw[i] / ns; }

کنورجنسی کا معیار تمام اثاثوں کے رسک کنٹریبیوشن کے فرق کے مربعوں کا مجموعہ 1e-12 سے کم ہونا ہے، اس صورت میں سمجھا جاتا ہے کہ اثاثوں کے رسک کنٹریبیوشن کافی قریب ہیں اور تکرار روک دی جاتی ہے۔ زیادہ سے زیادہ تکرار کی حد 2000 ہے تاکہ کوویرینس میٹرکس کی خراب حالت میں لامتناہی لوپ سے بچا جا سکے۔ عملی طور پر عام طور پر چند سو تکرار میں کنورج ہو جاتا ہے۔ اگر حد تک پہنچنے کے بعد بھی کنورج نہ ہو تو اس کا مطلب ہے کہ ان پٹ ڈیٹا یا کوویرینس میٹرکس میں مسئلہ ہے، ایسی صورت میں حکمت عملی برابر وزن والی لمبی پوزیشن میں تبدیل ہو جاتی ہے تاکہ سسٹم خالی نہ چلے۔

ہر اثاثے کے رسک کنٹریبیوشن کو اس کے وزن اور مارجنل رسک کے ضرب کے طور پر بیان کیا جاتا ہے، نتیجہ منفی ہو سکتا ہے، جو ظاہر کرتا ہے کہ یہ اثاثہ مجموعی پورٹ فولیو کی اتار چڑھاؤ کو کم کر رہا ہے۔

javascript
function riskContribs(w, cov) { var sv = matVecMul(cov, w); var pv = portVol(w, cov); var trc = []; for (var i = 0; i < w.length; i++) trc.push(w[i] * sv[i] / pv); return trc; }

وزن منفی ہو سکتے ہیں یعنی شارٹ کرنا

معیاری رسک پیریٹی حکمت عملی عام طور پر صرف لمبی پوزیشن لیتی ہے، لیکن کنٹریکٹ مارکیٹ میں شارٹ کیا جا سکتا ہے، اس لیے اس حکمت عملی میں توسیع کی گئی ہے تاکہ وزن کو منفی ہونے کی اجازت ہو۔

فیصلہ کرنے کی منطق یہ ہے: پہلے ایک مساوی اتار چڑھاؤ والا ریفرنس پورٹ فولیو بنایا جاتا ہے — زیادہ اتار چڑھاؤ والے اثاثوں کا وزن کم، کم اتار چڑھاؤ والے اثاثوں کا وزن زیادہ — پھر دیکھا جاتا ہے کہ ہر اثاثے اور اس ریفرنس پورٹ فولیو کے درمیان کوویرینس مثبت ہے یا منفی۔ منفی کوویرینس کا مطلب ہے کہ یہ اثاثہ مجموعی پورٹ فولیو کی نسبت مخالف سمت میں اتار چڑھاؤ کا شکار ہے، اسے شارٹ کرنے سے مجموعی پورٹ فولیو کا خطرہ کم کرنے میں مدد ملتی ہے، لہٰذا وزن کو منفی مقرر کیا جاتا ہے، جو کنٹریکٹ مارکیٹ میں شارٹ کھولنے کے مساوی ہے۔

واضح رہے کہ یہ ایک انجینئرنگ تخمینہ ہے نہ کہ معیاری لمبی-شارٹ رسک پیریٹی کا نظریاتی حل — صحیح لمبی-شارٹ رسک پیریٹی کے لیے مکمل کوویرینس میٹرکس کی بنیاد پر محدود اصلاح کی ضرورت ہوتی ہے، جس کا حسابی خرچ زیادہ ہے۔ یہ تخمینہ زیادہ تر مارکیٹ حالات میں معقول سمت کا فیصلہ دے سکتا ہے، لیکن جب متعدد اثاثے بیک وقت ریفرنس پورٹ فولیو کے ساتھ منفی کوویرینس رکھتے ہوں، تو کیا ایک ساتھ متعدد اثاثوں کو شارٹ کرنا اب بھی پورٹ فولیو کا خطرہ کم کر سکتا ہے، اس کی مخصوص تصدیق ضروری ہے، یکساں طور پر نہیں کہا جا سکتا۔

javascript
var invVols = [], sumInvVol = 0; for (var i = 0; i < n; i++) { var vol = Math.sqrt(Math.max(scaledCov[i][i], 1e-16)); invVols.push(1 / vol); sumInvVol += 1 / vol; } var eqVolWeights = []; for (var i = 0; i < n; i++) { eqVolWeights.push(invVols[i] / sumInvVol); } var covWithPortfolio = 0; for (var j = 0; j < n; j++) { covWithPortfolio += eqVolWeights[j] * scaledCov[i][j]; } var dir = covWithPortfolio < 0 ? -1 : 1; Log('[سمت کا فیصلہ]', LABELS[i], 'مساوی اتار چڑھاؤ والے پورٹ فولیو کے ساتھ کوویرینس:', _N(covWithPortfolio, 8), '→', dir < 0 ? '🔴 شارٹ' : '🟢 لمبی');

سمت کا فیصلہ ایک بار کرنے کے بعد، اسے signs[] صف میں محفوظ کر لیا جاتا ہے اور پورے تکراری حل کے عمل میں تبدیل نہیں کیا جاتا۔ تکرار صرف وزن کی مقدار کو ایڈجسٹ کرتی ہے، سمت کو نہیں بدلتی۔ سمت طے کرنے کے بعد، ایک اور کام کرنا ہے: پورے پورٹ فولیو پر کتنا لیوریج لگانا چاہیے۔


لیوریج جتنا زیادہ ہو اتنا بہتر نہیں، بلکہ اتار چڑھاؤ کے ساتھ چلتا ہے

حکمت عملی میں ایک لیوریج ایڈجسٹمنٹ میکانزم شامل ہے، جس کا مقصد پورٹ فولیو کے مجموعی اتار چڑھاؤ کو پہلے سے طے شدہ سطح کے قریب رکھنا ہے۔ مثال کے طور پر: آپ گاڑی چلا رہے ہیں، ہدف کی رفتار 60 کلومیٹر فی گھنٹہ ہے۔ ہائی وے پر سڑک اچھی ہو تو آپ تھوڑا زیادہ ایکسلریٹر دبا سکتے ہیں؛ شہر میں سڑک پیچیدہ ہو تو آپ رفتار کم کر لیتے ہیں۔ حکمت عملی کا لیوریج میکانزم بھی ایسا ہی ہے — جب مارکیٹ کا مجموعی اتار چڑھاؤ کم ہو تو لیوریج بڑھایا جاتا ہے تاکہ پورٹ فولیو کا خطرہ ہدف تک پہنچ جائے؛ جب مارکیٹ کا اتار چڑھاؤ زیادہ ہو تو لیوریج خود بخود کم کر دیا جاتا ہے، پوزیشن سائز محدود کر دیا جاتا ہے۔

حکمت عملی 1 گھنٹے کی کینڈل استعمال کرتی ہے، ایک سال میں بالکل 8760 کینڈلز ہوتی ہیں، اس لیے سالانہ مستقل براہ راست sqrt(8760) لیا جاتا ہے۔ اگر دوسرے ٹائم فریم استعمال کیے جائیں تو یہ مستقل اسی حساب سے تبدیل کرنا ہوگا: 15 منٹ کی کینڈل کے لیے sqrt(35040)، 4 گھنٹے کی کینڈل کے لیے sqrt(2190)، روزانہ کینڈل کے لیے sqrt(365)۔

javascript
function calcLeverage(w, cov) { var pv = portVol(w, cov) * Math.sqrt(8760); if (!isFinite(pv) || pv <= 0) return 1; return Math.min(TARGET_VOL / pv, MAX_LEVERAGE); }

پورٹ فولیو کے سالانہ اتار چڑھاؤ کو ہدف کے اتار چڑھاؤ سے تقسیم کرنے پر لیوریج کا تناسب حاصل ہوتا ہے، اور زیادہ سے زیادہ حد مقرر کی جاتی ہے تاکہ انتہائی صورتوں میں لیوریج بے قابو نہ ہو۔ اس کا مقصد زیادہ سے زیادہ منافع حاصل کرنا نہیں ہے، بلکہ خطرے کے بجٹ کا انتظام کرنا ہے — کتنا خطرہ مول لے کر کتنا منافع حاصل کرنا ہے، یہ پہلے سے طے شدہ ہے، مارکیٹ کی حرکت کے ساتھ بہتا نہیں ہے۔

لیوریج کا حساب لگانے کے بعد، پورٹ فولیو بنایا جا سکتا ہے۔ اسی کے ساتھ، حکمت عملی موجودہ اتار چڑھاؤ کی سطح کی بنیاد پر خود بخود مین لوپ کے پولنگ انٹرول کو ایڈجسٹ کرتی ہے — جتنا زیادہ اتار چڑھاؤ ہوگا، اتنی ہی تیزی سے ریفریش ہوگا، اور جب اتار چڑھاؤ کم ہوگا تو رفتار سست کر دی جائے گی، غیر ضروری حسابات اور ٹریڈنگ کے اخراجات کو کم کیا جائے گا۔

javascript
function getAdaptiveSleep(w, cov) { var av = portVol(w, cov) * Math.sqrt(8760); if (av > 0.50) return FAST_INTERVAL; // 15 منٹ else if (av > 0.30) return MID_INTERVAL; // 30 منٹ else return SLOW_INTERVAL; // 60 منٹ }

کب دوبارہ توازن لانا ہے

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

رشتہ دار بہاؤ کا حساب لگاتے وقت، مرتبان پچھلے وزن کی مطلق قدر ہوتی ہے۔ جب کسی اثاثے کا وزن بہت کم (صفر کے قریب) ہو جاتا ہے تو رشتہ دار بہاؤ بڑھ جاتا ہے، جس کی وجہ سے بار بار دوبارہ توازن پیدا ہو سکتا ہے۔ حکمت عملی اس کے خلاف تحفظ فراہم کرتی ہے: جب lastWeights[i] صفر ہو تو بہاؤ کی جانچ کو چھوڑ دیا جاتا ہے، صفر سے تقسیم کے غلط محرک سے بچنے کے لیے۔

javascript
if (!lastWeights) { needRebal = true; rebalReason = 'پہلی پوزیشن کھولنا'; } else if ((now - lastTime) > REBALANCE_HOURS * 3600000) { needRebal = true; rebalReason = 'مقررہ وقت پر دوبارہ توازن(' + REBALANCE_HOURS + 'h)'; } else { for (var i = 0; i < weights.length; i++) { if ((weights[i] >= 0) !== (lastWeights[i] >= 0)) { needRebal = true; rebalReason = LABELS[i] + ' سمت الٹ گئی (لمبا↔چھوٹا)'; break; } if (lastWeights[i] !== 0 && Math.abs(weights[i] - lastWeights[i]) / Math.abs(lastWeights[i]) > DRIFT_THRESHOLD) { needRebal = true; rebalReason = LABELS[i] + ' وزن میں حد سے زیادہ بہاؤ'; break; } } }

دوبارہ توازن شروع ہونے کے بعد، حکمت عملی ہر اثاثہ کے ہدفی برائے نام رقم کا حساب لگاتی ہے، مثبت اعداد لمبی پوزیشن اور منفی اعداد چھوٹی پوزیشن کی نشاندہی کرتے ہیں، پھر موجودہ پوزیشنوں سے موازنہ کر کے فیصلہ کرتی ہے کہ پوزیشن بڑھانی ہے، گھٹانی ہے یا سمت تبدیل کرنی ہے۔ سمت تبدیل کرتے وقت، پہلے مخالف سمت کی پوزیشن بند کی جاتی ہے، پھر نئی سمت کھولی جاتی ہے، تاکہ لمبی اور چھوٹی دونوں سمتوں کو ایک ساتھ رکھنے سے بچا جا سکے۔

javascript
if (targetSide === 'long' && shortQty > 0) { exchange.CreateOrder(sym, "closesell", -1, shortQty); } if (targetSide === 'short' && longQty > 0) { exchange.CreateOrder(sym, "closebuy", -1, longQty); } if (diffQty > 0) { exchange.CreateOrder(sym, targetSide === 'long' ? "buy" : "sell", -1, diffQty); } else if (diffQty < 0) { exchange.CreateOrder(sym, targetSide === 'long' ? "closebuy" : "closesell", -1, Math.abs(diffQty)); }

اس طرح نہ تو بار بار لین دین سے زیادہ کمیشن ہوتا ہے اور نہ ہی پورٹ فولیو طویل عرصے تک اپنے ڈیزائن کردہ مقصد سے ہٹتا ہے۔ عام حالات میں، دوبارہ توازن کا طریقہ کار زیادہ تر مارکیٹ کی تبدیلیوں سے نمٹنے کے لیے کافی ہوتا ہے۔ لیکن کبھی کبھار مارکیٹ غیر معمولی ہو جاتی ہے، اس لیے ایک اضافی حفاظتی اقدام بھی ضروری ہے۔


ایک ہنگامی سرکٹ بریکر بھی ہے

عام دوبارہ توازن کے علاوہ، حکمت عملی میں ایک ہنگامی پوزیشن کم کرنے کا طریقہ کار بھی ہے۔ ہر مرکزی لوپ میں تمام موجودہ پوزیشنوں کی جانچ کی جاتی ہے، اور پچھلی ریکارڈ شدہ قیمت سے موازنہ کر کے دیکھا جاتا ہے کہ ہر سمت میں منفی تبدیلی کتنی ہے۔ اگر لمبی پوزیشن میں بڑی کمی ہو یا چھوٹی پوزیشن میں بڑا اضافہ 5% سے زیادہ ہو، تو حکمت عملی خود بخود آدھی پوزیشن کم کر دیتی ہے، تاکہ نقصان کو پہلے کنٹرول کیا جا سکے، اور اگلے دوبارہ توازن کا انتظار نہ کیا جائے۔

javascript
if (pos.side === 'long') { drop = (last - cur) / last; } else if (pos.side === 'short') { drop = (cur - last) / last; } if (drop >= EMERGENCY_DROP) { Log('🚨 ہنگامی خطرہ شروع! [' + label + '][' + pos.side + '] منفی تبدیلی:', _N(drop * 100, 2) + '%', 'آخری:', _N(last, 4), '→ موجودہ قیمت:', _N(cur, 4)); if (mode === 'live') emergencyReduceLive(sym, label, pos.side, EMERGENCY_REDUCE); else emergencyReducePaper(sym, label, cur, pos.side, EMERGENCY_REDUCE); }

اصل مارکیٹ موڈ میں ایکسچینج کے پوزیشن بند کرنے کے انٹرفیس کو کال کیا جاتا ہے، جبکہ پیپر ٹریڈنگ موڈ میں مقامی حالت میں مارجن اور کیش کو اپ ڈیٹ کیا جاتا ہے، پوزیشن کے تناسب سے متعلقہ مارجن جاری کیا جاتا ہے، موجودہ منافع/نقصان کا حساب لگایا جاتا ہے، اور ٹریڈ ریکارڈ میں لکھا جاتا ہے۔

یہاں ایک ڈیزائن کی تفصیل واضح کرنی ہے: ہنگامی پوزیشن کم کرنے کے بعد، بنیادی قیمت فوری طور پر ری سیٹ نہیں ہوتی، اگلی جانچ میں اب بھی پہلے کی قیمت کو حوالہ کے طور پر استعمال کیا جاتا ہے۔ اس کا مطلب ہے کہ اگر اثاثہ مسلسل منفی سمت میں حرکت کرتا رہے، تو یہ طریقہ کار ہر لوپ میں بار بار شروع ہوتا رہے گا، اور آہستہ آہستہ پوزیشن کم کرتا رہے گا جب تک کہ پوزیشن ختم نہ ہو جائے، یا جب تک کہ اگلے عام دوبارہ توازن میں بنیادی قیمت ری سیٹ نہ ہو جائے۔ یہ ڈیزائن جان بوجھ کر کیا گیا ہے — انتہائی یک طرفہ مارکیٹ میں، ایک بار روکنے کے بجائے مسلسل پوزیشن کم کرنا نقصان کو بہتر طور پر کنٹرول کر سکتا ہے؛ لیکن اس کا ضمنی اثر یہ ہے کہ اگر قیمت مختصر طور پر حد سے نیچے آ کر تیزی سے واپس آ جائے، تو ضرورت سے زیادہ پوزیشن کم کرنے کی وجہ سے ریباؤنڈ سے محروم ہو سکتے ہیں۔ عام مارکیٹ میں یہ طریقہ کار شاذ و نادر ہی شروع ہوتا ہے، لیکن اس کا موجود ہونا کم از کم اس بات کو یقینی بناتا ہے کہ بلیک سوان واقعات میں پوری طرح پوزیشن نہیں پکڑی جائے گی۔


چلتے ہوئے کیسا لگتا ہے

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

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

javascript
function sleepWithPnlRefresh(totalSleepMs, weights, leverage, covMatrix, corrMatrix) { var elapsed = 0; while (elapsed < totalSleepMs) { var step = Math.min(PNL_INTERVAL, totalSleepMs - elapsed); Sleep(step); elapsed += step; var prices = getTickers(); var equity = calcEquity(prices); var initCap = _G('pt_initCapital') || INIT_CAPITAL; _chart.add(0, [new Date().getTime(), equity]); LogProfit(equity - initCap, '&'); renderDashboard(weights, leverage, covMatrix, corrMatrix, prices, totalSleepMs, true); } }

اس کے علاوہ، حکمت عملی پیپر ٹریڈنگ موڈ کو بھی سپورٹ کرتی ہے، جس میں حقیقی رقم استعمال کیے بغیر مکمل منطق چلائی جا سکتی ہے، پیرامیٹرز کو ٹیون کیا جا سکتا ہے، اور اس بات کی تصدیق کی جا سکتی ہے کہ طرز عمل توقعات کے مطابق ہے، پھر اندازہ لگایا جا سکتا ہے کہ لائیو موڈ پر سوئچ کرنا ہے یا نہیں۔ اس کنفیگریشن کے ساتھ کچھ عرصہ پیپر ٹریڈنگ چلانے کے بعد، آئیے حقیقی نتائج دیکھتے ہیں۔


پیپر ٹریڈنگ کے نتائج

حکمت عملی کی جانچ کی مدت کے دوران، مجموعی طور پر منافع میں تھی۔ پوزیشنوں کی سمتیں: BTC، XAU، SPY سب لمبی، CL خام تیل چھوٹا۔ اس دوران، ایران-امریکہ کشیدگی میں نرمی کی خبروں کے ساتھ، جغرافیائی سیاسی خطرے کا پریمیم کم ہوا، اور خام تیل کی قیمتوں میں واضح کمی دیکھی گئی، اس لیے خام تیل پر چھوٹی پوزیشن اس دور کا اہم منافع کا ذریعہ تھی۔ اس دوران مارکیٹ کی حرکت حکمت عملی کے لیے سازگار تھی، لیکن اس کا مطلب یہ نہیں کہ مستقبل میں بھی ایسا ہی ہوگا۔ حقیقت میں، اس حکمت عملی میں ابھی بھی بہت سے غیر واضح پہلو ہیں، اور ان کا ذکر نہ کرنا ایمانداری نہیں ہوگی۔

img


غیر واضح پہلو

اس حکمت عملی کو تیار کرنے کے دوران، کئی مسائل تھے جو مکمل طور پر حل نہیں ہو سکے۔

پہلا، RWA معاہدوں کی لیکویڈیٹی BTC سے بہت کم ہے۔ SPY، XAU، CL جیسے اثاثے چین پر ابھی بہت نئے ہیں، اور سلپیج اور آرڈر بک کی گہرائی نامعلوم ہے، پیپر ٹریڈنگ میں اس مسئلے کو محسوس نہیں کیا جا سکتا، لیکن لائیو ٹریڈنگ میں یہ حقیقت میں پیش آئے گا۔

دوسرا، یہ حکمت عملی اس بات پر منحصر ہے کہ اثاثوں کے درمیان ایک خاص حد تک تنوع برقرار رہے۔ لیکن جب مارکیٹ انتہائی خوفناک ہو، تو خطرناک اثاثوں کے درمیان ارتباط اکثر تیزی سے بڑھ جاتا ہے، اور تنوع کا اثر بہت کم ہو جاتا ہے، اور یہ بالکل اس وقت ہوتا ہے جب آپ کو تحفظ کی سب سے زیادہ ضرورت ہوتی ہے۔

تیسرا، روایتی اثاثوں میں غیر تجارتی اوقات ہوتے ہیں، جہاں قیمتیں تقریباً نہیں چلتیں، لیکن BTC چوبیس گھنٹے حرکت کرتا ہے۔ اس کی وجہ سے covariance matrix اثاثوں کے درمیان حقیقی تعلق کو کم اندازہ کر سکتا ہے — امریکی اسٹاک مارکیٹ بند ہونے کے بعد BTC چلتا رہتا ہے، اس دوران کی اتار چڑھاؤ کے مطابق SPY کا کوئی ڈیٹا نہیں ہوتا، اور جب روایتی مارکیٹ کھلتی ہے تو حکمت عملی کا تعلق کے بارے میں فیصلہ پہلے ہی پرانا ہو سکتا ہے۔

چوتھا، تاریخی ڈیٹا محدود ہے، اور covariance matrix کی مختصر مدت میں استحکام مشکوک ہے۔ EWMA کی کمی کا گتانک، ہدفی اتار چڑھاؤ، دوبارہ توازن کی حدیں — یہ سب تجرباتی اقدار ہیں، اور ان کی سخت تصدیق نہیں کی گئی ہے۔ چھوٹی پوزیشنوں کے فیصلے کے لیے، مساوی اتار چڑھاؤ کے حوالہ پورٹ فولیو کے covariance کے نشان کا استعمال کیا جاتا ہے، یہ ایک انجینئرنگ تخمینہ ہے، جب متعدد اثاثوں کا حوالہ پورٹ فولیو کے covariance کے ساتھ نشان منفی ہو، تو کیا ایک ساتھ چھوٹی پوزیشن لینا واقعی پورٹ فولیو کے خطرے کو کم کرتا ہے، اس کی ایک ایک کر کے تصدیق کرنی ہوگی، اور اسے براہ راست لاگو نہیں کیا جا سکتا۔ کرپٹو اثاثوں میں خود موٹی دم کی خصوصیت ہوتی ہے، اصل منافع کی تقسیم عام تقسیم سے ہٹ جاتی ہے، اور انتہائی مارکیٹ حالات میں covariance matrix خطرے کا تخمینہ کم لگائے گا، یہ ایک مفروضہ تعصب ہے جسے موجودہ فریم ورک کے تحت قبول کرنا ضروری ہے۔

پانچواں، لائیو ماحول میں سمت تبدیل کرتے وقت، پوزیشن بند کرنے کا حکم جاری کرنے کے بعد حکمت عملی ایک مقررہ مدت انتظار کرتی ہے اور پھر اگلی پوزیشن کھولنے پر عملدرآمد جاری رکھتی ہے، بغیر کسی تصدیق کے کہ پوزیشن بند ہو گئی ہے۔ جب ایکسچینج کی ردعمل سست ہو یا نیٹ ورک میں تاخیر زیادہ ہو، تو موجودہ پوزیشن کے مکمل طور پر بند نہ ہونے کے باوجود نئی پوزیشن کھولنے کا خطرہ ہوتا ہے۔ نقلی اکاؤنٹ میں حقیقی تصفیہ شامل نہیں ہوتا، لہٰذا یہ مسئلہ محسوس نہیں ہوتا۔ لائیو ماحول میں جانے سے پہلے مخصوص ایکسچینج کی ردعمل کی رفتار کی بنیاد پر تشخیص کرنی ہوگی کہ آیا انتظار کے دورانیے کو ایڈجسٹ کرنے کی ضرورت ہے۔

یہ مسائل صرف نقلی اکاؤنٹ چلا کر دریافت نہیں ہو سکتے۔ زیادہ تفصیلی ماڈلنگ اور نظریاتی استدلال کی ضرورت ہے، ہر ایک مفروضے کو احتیاط سے جانچنا ہوگا، تاکہ یہ معلوم ہو سکے کہ یہ منطق کرپٹو مارکیٹ میں واقعی کھڑی ہو سکتی ہے یا نہیں۔


آخر

اس حکمت عملی کو بنانے کا نقطہ آغاز بہت سادہ تھا: کرپٹو مارکیٹ میں مندی کا دور تھا، RWA معاہدوں نے بڑے اثاثوں کی کلاسوں کا نقشہ مکمل کر دیا، اور روایتی فنانس کے پاس دہائیوں پر محیط اثاثہ مختص کرنے کے نظریات تھے۔ ان دونوں چیزوں کا ملاپ قابلِ امتحان تھا۔ کوڈ مکمل ہے، منطق شفاف ہے، اور پیرامیٹرز ایڈجسٹ کیے جا سکتے ہیں۔ لیکن یہ سب صرف ایک شروعات ہے، اور یہ واقعی لائیو ٹیسٹنگ کے قابل اثاثہ مختص کرنے کی حکمت عملی بننے سے بہت دور ہے۔ اگر آپ کے پاس بہتر خیالات ہیں، تو خوش آمدید، اسے مکمل کرنے میں مدد کریں۔

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

حکمت عملی کا سورس کوڈ: RWA بڑے اثاثوں کی رسک پیرٹی حکمت عملی

Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)