حکمت عملی کا پس منظر
اس سال کے شروع میں، کمیونٹی میں ایک خبر پھیلی کہ کسی نے Polymarket پر راتوں رات ایک مکان کما لیا۔ تجسس کی وجہ سے میں نے مخصوص تجارتی فریم ورک تلاش کیا، لیکن سب کچھ کلک بیت تھا، ایک لائن کوڈ بھی نہیں تھا۔ مجبوراً خود ہی کرنا پڑا۔
شروع میں کچھ سمجھ نہیں آ رہا تھا۔ Polymarket فی الحال سب سے بڑا وکندریقرت پیش گوئی مارکیٹ پلیٹ فارم ہے، جس میں 60,000 سے زیادہ اثاثے درج ہیں، جن میں سیاست، کھیل، میکرو اکنامکس اور تقریباً تمام قابل پیش گوئی واقعات شامل ہیں۔ ہر اثاثہ دراصل ایک بائنری آپشن معاہدہ ہے - اگر نتیجہ رونما ہوتا ہے تو قیمت 1 پر آ جاتی ہے، ورنہ صفر ہو جاتی ہے۔ سب سے زیادہ منافع اندرونی معلومات سے ہوتا ہے، لیکن عام لوگ یہ نہیں جانتے کہ اگلے ہفتے کتنے ٹویٹس ہوں گے، یا فیڈ اگلی بار شرح سود کم کرے گا یا نہیں، اور ان کے پاس مارکیٹ کی نگرانی، تجزیہ اور فیصلے کرنے کا وقت اور توانائی بھی نہیں ہے۔
تب میں نے سوچا: کیا معلومات کے پیچھے بھاگنے کے بجائے سرمائے کے پیچھے بھاگا جا سکتا ہے؟ معلوماتی برتری رکھنے والے لوگ پہلے سے پوزیشن بناتے ہیں، اور ان کی خریداری کے اقدامات قیمت اور حجم پر نشانات چھوڑتے ہیں۔ اگر اندرونی معلومات نہ بھی ہو، تو سرمائے کی حرکتوں کو دیکھ کر اندازہ لگایا جا سکتا ہے کہ کوئی خاموشی سے پوزیشن بنا رہا ہے۔ اس سوچ کے ساتھ، میں نے ایک ملٹی رول ذہین تجزیاتی تجارتی نظام تیار کیا، جس میں K لائن سے سگنل تلاش کرنا، رائے عامہ کی تصدیق کرنا، AI سے فیصلہ کرنا، اور خودکار آرڈر اور رسک مینجمنٹ کو ایک مکمل پائپ لائن میں جوڑا گیا۔
نظام کی تعمیر
پورا نظام FMZ ورک فلو پر چلتا ہے، جو دو متوازی شیڈولنگ راستوں پر مشتمل ہے: مین لائن اور سیکنڈری لائن، یہ دونوں مکمل طور پر الگ ہیں اور ایک دوسرے کو مسدود نہیں کرتے۔
| شیڈولنگ راستہ | ٹرگر فریکوئنسی | ذمہ دار ماڈیول | بنیادی کام |
|---|---|---|---|
| تجارتی مین لائن | ہر 10 منٹ | اثاثوں کی چھانٹی → لوپ پروسیسنگ → AI ایجنٹ → آرڈر پر عملدرآمد | مواقع تلاش کرنا، پوزیشن کھولنا |
| تجارتی سیکنڈری لائن | ہر 30 سیکنڈ | سٹاپ-لاس/ٹیک-پرافٹ | پوزیشن کی نگرانی، مووونگ سٹاپ-لاس، میچورٹی پر ریڈیمپشن |
مین لائن "مواقع تلاش کرنے اور پوزیشن کھولنے" کی ذمہ دار ہے، ہر دور میں چار ترتیب وار مراحل ہوتے ہیں: ابتدائی چھانٹی → K لائن غیر معمولی پتہ لگانا → خبروں کی تلاش → AI ملٹی رول تجزیہ، آخر میں خریداری کا سگنل جاری کیا جاتا ہے اور آرڈر پر عملدرآمد شروع ہوتا ہے۔ سیکنڈری لائن صرف "موجودہ پوزیشنوں" کا انتظام کرتی ہے، اور 30 سیکنڈ کے وقفے سے مسلسل چلتی رہتی ہے، چاہے مین لائن اس وقت کوئی کام کر رہی ہو یا نہیں، سیکنڈری لائن رکتی نہیں ہے۔
یہ علیحدہ ڈیزائن ایک حقیقی مسئلہ حل کرتا ہے: پیش گوئی مارکیٹ میں قیمت کی حرکت مسلسل ہوتی ہے، لیکن اسٹاک کا تجزیہ بھاری حساب اور زیادہ تاخیر کا حامل ہوتا ہے۔ اگر سٹاپ-لاس مانیٹرنگ کو مین لائن میں ڈال دیا جائے، تو جب AI تجزیہ سست ہو، سٹاپ-لاس کا ردعمل بہت تاخیر کا شکار ہو جائے گا۔ علیحدہ شیڈولنگ ایک ضروری انجینئرنگ انتخاب ہے۔
ماڈیولز کی تفصیل
ابتدائی چھانٹی: پہلے بیکار اثاثوں کو ہٹانا
60,000 اثاثوں کا ایک ایک کر کے تجزیہ ممکن نہیں، اس لیے پہلا مرحلہ خالص اصولوں پر مبنی چھانٹی ہے، جس کا واحد مقصد: واضح طور پر قابل غور نہ ہونے والی چیزوں کو جلدی سے ہٹانا، تاکہ بعد کے حسابی وسائل صرف واقعی قیمتی اثاثوں پر استعمال ہوں۔
چھانٹی کے معیار میں شامل ہیں: لیکویڈیٹی کی کم از کم حد (بہت کم ہونے پر خرید و فروخت مشکل)، 24 گھنٹے کا تجارتی حجم کی کم از کم حد (تقریباً کوئی تجارت نہ ہونے والے اثاثے) بکر-اسپریڈ کی زیادہ سے زیادہ حد (بہت زیادہ پھیلاؤ کا مطلب ہے زیادہ سلپیج لاگت)، مسابقت کی حد، اور قیمت کی حد - صرف وہ اثاثے جن کی مارکیٹ میں مضمر امکان 5% سے 50% کے درمیان ہو، پر توجہ دی جاتی ہے۔ بہت زیادہ قیمت والے پہلے سے مکمل قیمت بند کر چکے ہوتے ہیں، اوپر جانے کی گنجائش محدود ہوتی ہے۔ بہت کم قیمت والے قابل اعتبار نہیں ہوتے، لاٹری کی طرح ہوتے ہیں نہ کہ آربیٹریج کے موقع۔
چھانٹی کے بعد، ایک ہی واقعہ میں عام طور پر Yes اور No دو سمتوں میں اثاثے درج ہوتے ہیں، حکمت عملی صرف اس سمت کو برقرار رکھتی ہے جس کی قیمت کم ہو، کیونکہ کم قیمت والی طرف کے اوڈز میں زیادہ لچک اور ممکنہ واپسی زیادہ ہوتی ہے۔
javascript
let truePrice = parseFloat(outcomePrices[outcomeIndex] || 0)
if (truePrice < CONFIG.MIN_TRUE_PRICE || truePrice > CONFIG.MAX_TRUE_PRICE) continue
let isActive = (
info.active === true && info.approved === true &&
info.closed === false && info.archived === false &&
info.acceptingOrders === true && info.pendingDeployment === false
)
if (!isActive) continue
let spreadPct = (ask - bid) / ask
if (spreadPct > CONFIG.MAX_SPREAD_PCT) continue
// ایک ہی واقعہ میں صرف کم قیمت والی سمت برقرار رکھیں
if (!marketMap[baseSymbol]) {
marketMap[baseSymbol] = entry
} else if (truePrice < marketMap[baseSymbol].price) {
marketMap[baseSymbol] = entry
}
تمام چھانٹی کی حدیں $vars متغیر کے ذریعے بیرونی پیرامیٹرز کے طور پر ظاہر کی گئی ہیں، جنہیں آپ اپنی خطرے کی ترجیحات اور سرمائے کے حجم کے مطابق آزادانہ طور پر ایڈجسٹ کر سکتے ہیں، بغیر کوڈ تبدیل کیے۔
K لائن غیر معمولی پتہ لگانا: سرمائے کے نشانات تلاش کرنا
ابتدائی چھانٹی کے بعد، ہر منظور شدہ اثاثے کے لیے 60 منٹ کے وقفے پر حالیہ 240 K لائنیں کھینچی جاتی ہیں، اور پانچ قسم کی غیر معمولی پتہ لگانے کی جانچ کی جاتی ہے۔ یہ حکمت عملی کا بنیادی سگنل پرت ہے، اور یہ پورے نظام کو "براہ راست واقعہ AI کو دینے" سے سب سے اہم فرق ہے - ہم واقعہ کے نتیجے کا اندازہ نہیں لگاتے، ہم سرمائے کی حرکت کو تلاش کرتے ہیں۔
سست چڑھائی: پچھلی 120 K لائنوں میں کل اضافہ 5% سے زیادہ، لیکن ایک K لائن کا زیادہ سے زیادہ اضافہ 1.5% سے کم۔ یہ خصوصیت اس عمل کو بیان کرتی ہے جہاں سرمایہ جان بوجھ کر رفتار کو دبا کر توجہ سے بچنے کی کوشش کرتا ہے۔
حجم کا لکیری اضافہ: حالیہ 60 K لائنوں کے حجم کے سلسلے پر لکیری ریگریشن کریں، ڈھلوان مثبت اور R² 0.5 سے زیادہ ہو، جس سے ظاہر ہوتا ہے کہ حجم مسلسل اور مستحکم طور پر بڑھ رہا ہے، نہ کہ بے ترتیب پلس۔ R² کلید ہے، جو اس طرح کے شور کو فلٹر کرتا ہے جہاں ایک بار بہت زیادہ حجم اور باقی خاموشی ہو۔
واپسی کی تنگی: تاریخی اونچائی کے بعد ہر بار واپسی کی زیادہ سے زیادہ گہرائی کو شمار کریں، اگر حالیہ اوسط واپسی ابتدائی کے 60% سے کم ہو، تو اس کا مطلب ہے کہ فروخت کا دباؤ کم ہو رہا ہے اور پوزیشنیں مستحکم ہو رہی ہیں، کوئی خرید رہا ہے۔ ہر بار واپسی کے دوران مسلسل کم از کم قیمت کی نگرانی کریں، مکمل واپسی کی گہرائی کو حساب کی بنیاد بنائیں۔
طرفی بریک آؤٹ: MA60 اور MA120 کے درمیان فرق 2% سے کم (طرفی حالت)، اور موجودہ قیمت MA60 سے 3% سے زیادہ ہے، جسے پچھلے مزاحمتی سطح کا بریک آؤٹ سمجھا جاتا ہے۔
حجم کا اچانک اضافہ: حالیہ 5 K لائنوں کا اوسط حجم پچھلی 60 K لائنوں کے بنیادی حجم سے 2.5 گنا زیادہ ہو، جسے سرمائے کی تیزی سے آمد سمجھا جاتا ہے۔
javascript
function linearRegression(values) {
let n = values.length
let sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0
for (let i = 0; i < n; i++) {
sumX += i; sumY += values[i]
sumXY += i * values[i]; sumX2 += i * i
}
let slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX)
let intercept = (sumY - slope * sumX) / n
let meanY = sumY / n
let ssTot = 0, ssRes = 0
for (let i = 0; i < n; i++) {
ssTot += Math.pow(values[i] - meanY, 2)
ssRes += Math.pow(values[i] - (slope * i + intercept), 2)
}
let r2 = ssTot === 0 ? 0 : 1 - ssRes / ssTot
return { slope, intercept, r2 }
}
function detectAnomaly(closes, volumes) {
if (closes.length < 60) return null
let anomalies = [], score = 0
let slice120 = closes.slice(-Math.min(120, closes.length))
// ── 异常1:缓慢爬升 ──────────────────────────────────────
let totalChange = (slice120[slice120.length - 1] - slice120[0]) / slice120[0]
let maxSingle = 0
for (let i = 1; i < slice120.length; i++) {
let change = Math.abs(slice120[i] - slice120[i - 1]) / slice120[i - 1]
if (change > maxSingle) maxSingle = change
}
if (totalChange > 0.05 && maxSingle < 0.015) {
score++
anomalies.push(`缓慢爬升 总涨${(totalChange * 100).toFixed(1)}% 单根最大${(maxSingle * 100).toFixed(2)}%`)
}
// ── 异常2:成交量线性增长 ─────────────────────────────────
let volSlice = volumes.slice(-60)
let volReg = linearRegression(volSlice)
if (volReg.slope > 0 && volReg.r2 > 0.5) {
score++
anomalies.push(`成交量线性增长 斜率${volReg.slope.toFixed(4)} R²${volReg.r2.toFixed(2)}`)
}
// ── 异常3:回调收窄(追踪每次回调最低价,计算完整深度)────
let pullbacks = [], localHigh = closes[0]
let inPullback = false, pullbackLow = closes[0]
for (let i = 1; i < slice120.length; i++) {
if (closes[i] > localHigh) {
if (inPullback) {
pullbacks.push((localHigh - pullbackLow) / localHigh)
inPullback = false
}
localHigh = closes[i]
} else if (closes[i] < localHigh * 0.99) {
if (!inPullback) { inPullback = true; pullbackLow = closes[i] }
else if (closes[i] < pullbackLow) { pullbackLow = closes[i] }
}
}
if (pullbacks.length >= 3) {
let first = pullbacks.slice(0, Math.floor(pullbacks.length / 2))
let last = pullbacks.slice(Math.floor(pullbacks.length / 2))
let firstAvg = first.reduce((a, b) => a + b, 0) / first.length
let lastAvg = last.reduce((a, b) => a + b, 0) / last.length
if (lastAvg < firstAvg * 0.6) {
score++
anomalies.push(`回调收窄 早期${(firstAvg * 100).toFixed(2)}% 近期${(lastAvg * 100).toFixed(2)}%`)
}
}
// ── 异常4:横盘突破 ───────────────────────────────────────
let ma60 = closes.slice(-60).reduce((a, b) => a + b, 0) / 60
let ma120 = closes.length >= 120
? closes.slice(-120).reduce((a, b) => a + b, 0) / 120
: ma60
let currentPrice = closes[closes.length - 1]
if (Math.abs(ma60 - ma120) / ma120 < 0.02 && currentPrice > ma60 * 1.03) {
score++
anomalies.push(`横盘突破 MA60=${ma60.toFixed(3)} MA120=${ma120.toFixed(3)} 当前=${currentPrice.toFixed(3)}`)
}
// ── 异常5:成交量突增 ─────────────────────────────────────
let recentVol = volumes.slice(-5).reduce((a, b) => a + b, 0) / 5
let baseVol = volumes.slice(-65, -5).reduce((a, b) => a + b, 0) / 60
if (baseVol > 0 && recentVol > baseVol * 2.5) {
score++
anomalies.push(`成交量突增 近5根均量是基准${(recentVol / baseVol).toFixed(1)}倍`)
}
return { score, anomalies }
}
ہر ایک انوملی کو ہٹ کرنے پر ایک نمبر ملتا ہے، کل 5 نمبر۔ صرف اس صورت میں اگلے مرحلے میں داخل ہوں گے جب کل نمبر کم از کم 2 ہو۔ اکیلا سگنل بے ترتیب شور ہو سکتا ہے، لیکن اوورلیپنگ سے پتہ چلتا ہے کہ سرمائے کی حرکت میں ایک خاص حد تک اعتبار ہے — یہ پورے کینڈل سٹک ڈیٹیکشن لاجک کا بنیادی مفروضہ ہے۔
نیوز سرچ: انوملی کے لیے بنیادی وجہ تلاش کرنا
کینڈل سٹک سگنل اس بات کا ثبوت ہے کہ "سرمایہ حرکت کر رہا ہے"، لیکن سرمایہ کیوں حرکت کر رہا ہے اور اس حرکت کی بنیاد کیا ہے، اس کی تصدیق معلوماتی پہلو سے کرنی ہوتی ہے۔ یہ قدم ہر کینڈل سٹک انوملی والے ٹارگٹ کے لیے خبریں تلاش کرتا ہے تاکہ دیکھا جا سکے کہ آیا کوئی متعلقہ واقعہ اسے سپورٹ کرتا ہے۔
یہاں Brave Search API استعمال کیا جاتا ہے، جو ماہانہ 2000 مفت کوٹہ فراہم کرتا ہے، جو ہر 10 منٹ کے مرکزی تال کے لیے کافی ہے۔ تلاش کے کلیدی الفاظ symbol سے نکالے جاتے ہیں، دشاتمک لاحقے اور جدا کرنے والوں کو ہٹا کر پڑھنے کے قابل واقعہ کی وضاحتی الفاظ میں تبدیل کیا جاتا ہے۔
javascript
const q = item.symbol
.replace("_USDC.No", "")
.replace("_USDC.Yes", "")
.replace(/-/g, "+")
const rawResponse = HttpQuery(
"https://api.search.brave.com/res/v1/web/search?q=" + q,
{ method: "GET", headers: { "X-Subscription-Token": CONFIG.BRAVE_API_KEY } }
)
// 遍历所有返回分区(网页、新闻等),统一提取结构化字段
Object.keys(data).forEach(key => {
const section = data[key]
if (section && section.results && Array.isArray(section.results)) {
section.results.forEach(r => {
news.push({ type: key, title: r.title, description: r.description, age: r.age })
})
}
})
تلاش سے حاصل کردہ خبریں اور K لائن ڈیٹا ایک ساتھ پیک کر کے اگلے AI تجزیہ کے مرحلے میں بھیج دیا جاتا ہے — دونوں لائنیں بیک وقت تصدیق کرتی ہیں، جو کہ صرف ایک طرف دیکھنے سے کہیں زیادہ قابل اعتماد ہے۔
AI کثیر کردار تجزیہ: چار زاویے، خود کو قائل کرنے سے بچاؤ
ڈیٹا تیار ہونے کے بعد AI تجزیہ کے مرحلے میں داخل ہوتا ہے، ماڈل اپنی ضرورت کے مطابق انتخاب کرتا ہے۔ پرامپٹ میں چار آزاد کردار مقرر کیے گئے ہیں، جو پورے سسٹم کا سب سے اہم ڈیزائن فیصلہ ہے اور اسے الگ سے واضح کرنا ضروری ہے۔
اگر ایک ہی AI بیک وقت K لائن اور خبریں دیکھے تو اس کے لیے دونوں میں ایک دوسرے کی تصدیق کرنا آسان ہو جاتا ہے، جس سے ایک ایسا نتیجہ نکلتا ہے جو ظاہری طور پر درست تو ہوتا ہے مگر حقیقت میں آزاد تصدیق سے محروم ہوتا ہے — مالیاتی سگنل سے خبروں کی تائید اور پھر خبروں سے مالیاتی سگنل کی تائید، اور آخر میں "میرے خیال میں خریدنا چاہیے" جیسا خود کو تقویت دینے والا نتیجہ۔ کرداروں کی علیحدگی معلوماتی ذرائع کی آزادی کو یقینی بناتی ہے: ہر کردار صرف اپنا ڈیٹا دیکھتا ہے، صرف اپنے زاویے سے نتیجہ نکالتا ہے، اور حتمی فیصلہ کرنے والا کردار صرف نتائج دیکھتا ہے، عمل کو نہیں۔
کردار ایک: K لائن سرمایہ تجزیہ کار، خبریں نہیں دیکھتا، صرف قیمت اور حجم کی غیر معمولیات دیکھتا ہے، اندازہ لگاتا ہے کہ آیا حقیقی سرمایہ مسلسل خرید رہا ہے، اور سرمایہ سگنل کی شدت (مضبوط/درمیانی/بنیادی) بتاتا ہے۔
کردار دو: خبروں اور عوامی رائے کا تجزیہ کار، K لائن نہیں دیکھتا، صرف معلوماتی پہلو کا جائزہ لیتا ہے، اندازہ لگاتا ہے کہ آیا کوئی مثبت خبر ہے جو ابھی تک مارکیٹ میں قیمت نہیں پا سکی، اور خبروں کی حمایت کی سطح (مضبوط/کمزور/کوئی نہیں) بتاتا ہے۔
کردار تین: قیمت کا اندازہ لگانے والا تجزیہ کار، پہلے دو کرداروں کے نتائج کو یکجا کرتا ہے، حقیقی امکان کے وقفے کا تخمینہ لگاتا ہے، موجودہ مارکیٹ قیمت سے موازنہ کر کے کم قیمت/مناسب/زیادہ قیمت کا اندازہ دیتا ہے۔ اس کردار میں میچورٹی وزن کا اصول شامل ہے: اگر 7 دن سے زیادہ باقی ہوں تو عام اندازہ؛ اگر 3 دن سے کم اور مارکیٹ قیمت 0.15 سے زیادہ ہو تو احتمال وقفے کو مجبوراً تنگ کیا جاتا ہے اور "شدید کم قیمت" کی اجازت نہیں ہوتی۔ اس کی وجہ یہ ہے کہ میچورٹی کے قریب مارکیٹ کے شرکاء کے پاس AI کے تربیتی ڈیٹا سے زیادہ تازہ معلومات ہوتی ہیں، لہٰذا AI کا فیصلہ مارکیٹ قیمت کے سامنے جھکنا چاہیے۔
کردار چار: حتمی فیصلہ کن تجزیہ کار، پہلے تین کرداروں کے نتائج کو فیصلہ میٹرکس کے مطابق یکجا کرتا ہے اور حتمی کارروائی بتاتا ہے۔ میٹرکس کا منطق یہ ہے: سرمایہ سگنل شرط ہے، خبریں تصدیق ہیں، دونوں مل کر اعتماد کا تعین کرتے ہیں؛ لیکن اعتماد کتنا بھی زیادہ ہو، جب تک قیمت کا اندازہ "کم قیمت" نہ ہو، کوئی کارروائی نہیں کی جاتی۔
یہاں خبروں کی تصدیق معلومات کا پیچھا کرنا نہیں بلکہ یہ دیکھنا ہے کہ آیا سرمایہ کی حرکت کی بنیادی وجوہات موجود ہیں۔ اندرونی سرمایہ جب پوزیشن بنا رہا ہوتا ہے تو معلومات عوامی خبروں میں ظاہر نہیں ہوتیں، لیکن سرمایہ سگنل کے ساتھ خبروں کی حمایت اس بات کی نشاندہی کرتی ہے کہ معلومات پھیلنے کے درمیانی مرحلے میں ہے اور مارکیٹ میں قیمت کا تعین ابھی باقی ہے — یہی وہ ونڈو ہے جسے حکمت عملی پکڑنا چاہتی ہے۔
| سرمایہ سگنل \ خبروں کی حمایت | مضبوط تصدیق | کمزور تصدیق | کوئی تصدیق نہیں |
|---|---|---|---|
| مضبوط (اسکور 4~5) | خرید، اعتماد=اعلیٰ | خرید، اعتماد=درمیانی | کوئی کارروائی نہیں |
| درمیانی (اسکور 3) | خرید، اعتماد=درمیانی | انتظار کریں | کوئی کارروائی نہیں |
| بنیادی (اسکور 2) | انتظار کریں | کوئی کارروائی نہیں | کوئی کارروائی نہیں |
AI کا آؤٹ پٹ سختی سے JSON فارمیٹ میں ہوتا ہے، جس میں ہر کردار کے نتائج، حقیقی احتمال کا وقفہ، قیمت کا اندازہ، حتمی فیصلہ، اعتماد اور خطرات کی فہرست شامل ہوتی ہے، جو براہ راست اگلے عمل درآمد کے نوڈ کو فراہم کی جاتی ہے۔
تجارتی عمل: صرف بہترین کو خریدیں
AI ہر بیچ کی اشیاء کو ایک ایک کر کے اسکور کرتا ہے، لیکن عمل درآمد کی پرت تمام خرید سگنلز کو نہیں بھیجتی — سسٹم صرف سب سے زیادہ اسکور والے کو منتخب کرتا ہے۔ ترتیب کا اصول یہ ہے: اعتماد (اعلیٰ > درمیانی > کم) → قیمت کا اندازہ (شدید کم قیمت > کم قیمت) → حقیقی احتمال کے وقفے کی چوڑائی (جتنی تنگ، اتنا ہی یقینی)۔
javascript
const buySignals = signals.filter(s => s.signal === 'buy')
bestSignal = buySignals.sort((a, b) => {
const confDiff = (confidenceRank[b.confidence] || 0) - (confidenceRank[a.confidence] || 0)
if (confDiff !== 0) return confDiff
const assessDiff = (assessmentRank[b.priceAssessment] || 0) - (assessmentRank[a.priceAssessment] || 0)
if (assessDiff !== 0) return assessDiff
// 区间越窄越确定,优先选窄的
const aWidth = (a.trueProb.max || 0) - (a.trueProb.min || 0)
const bWidth = (b.trueProb.max || 0) - (b.trueProb.min || 0)
return aWidth - bWidth
})[0]
منتخب ہدف کے بعد، مارکیٹ میں Ask قیمت حقیقی وقت میں حاصل کی جاتی ہے، بیلنس کی تصدیق کی جاتی ہے، اور لمیٹ آرڈر جمع کرایا جاتا ہے۔ آرڈر جمع کرانے کے بعد اسٹیٹس کی جانچ پڑتال کی جاتی ہے، زیادہ سے زیادہ 30 سیکنڈ انتظار کیا جاتا ہے، وقت ختم ہونے پر آرڈر منسوخ کر دیا جاتا ہے تاکہ کوئی پینڈنگ آرڈر جمع نہ ہو۔ اگر موجودہ دور کی Ask قیمت میں کنفیگریشن حصہ 1 USDC کی کم از کم آرڈر حد سے کم ہو تو سسٹم خود بخود ceil(1/askPrice) کے ذریعے کم از کم قابل تجارت حصہ پر گول کرتا ہے۔
نقصان روکنے کا ماڈیول: حرکت پذیر اسٹاپ + قطعی تحفظ
ذیلی لائن ہر 30 سیکنڈ میں چلتی ہے، منطق دو مراحل میں تقسیم ہے: پہلے میچورٹی پر ریڈیم کا عمل، پھر فعال پوزیشنوں پر حرکت پذیر اسٹاپ کی جانچ۔
Polymarket میں ایک خاص طریقہ کار ہے — کنٹریکٹ میچور ہونے کے بعد رقم خود بخود اکاؤنٹ میں واپس نہیں آتی، اسے فعال طور پر ریڈیم کرنا پڑتا ہے۔ حکمت عملی ہر ذیلی لائن کے آغاز میں تمام قابل ریڈیم پوزیشنوں کو ایک ساتھ اسکین کرتی ہے اور بلک میں فنڈز جاری کرتی ہے، تاکہ رقم طویل عرصے تک بند نہ رہے۔
حرکت پذیر اسٹاپ کا بنیادی تصور دوہری اسٹاپ لائن ڈیزائن ہے: حرکت پذیر اسٹاپ لائن (تاریخی زیادہ سے زیادہ bid قیمت - مقررہ کمی LOSS_AMOUNT) اور قطعی تحفظ کی لائن (داخلے کی قیمت × 50%)، اصل اسٹاپ قیمت دونوں میں سے بڑی لی جاتی ہے۔
javascript
function calcStopPrice(entryPrice, maxPrice) {
const trailingStopPrice = maxPrice - CONFIG.LOSS_AMOUNT
const absoluteStopPrice = entryPrice * CONFIG.FALLBACK_STOP_RATIO // 固定 0.50
const usingFallback = trailingStopPrice < absoluteStopPrice
const effectiveStopPrice = usingFallback ? absoluteStopPrice : trailingStopPrice
return { effectiveStopPrice, trailingStopPrice, absoluteStopPrice, usingFallback }
}
یہ دوہرا ڈیزائن دو عام پوزیشن منظرناموں کے مطابق ہے: منافع کے مرحلے میں، حرکت پذیر اسٹاپ لائن قیمت کے ساتھ اوپر جاتی ہے، غیر حقیقی منافع کو بند کرتی ہے؛ جب داخلے پر ہی نقصان ہو تو حرکت پذیر اسٹاپ لائن منفی یا صفر کے قریب جا سکتی ہے، اس صورت میں قطعی تحفظ کی لائن (داخلے کی قیمت×50%) سنبھال لیتی ہے، تاکہ پوزیشن صفر تک گرنے سے پہلے باہر نکل سکے۔ دونوں لائنیں اپنی الگ الگ ذمہ داریاں نبھاتی ہیں، دونوں ضروری ہیں۔
اسٹاپ ٹریگر ہونے پر مارکیٹ قیمت پر فروخت کا حکم دیا جاتا ہے، اس ہدف کے تاریخی زیادہ سے زیادہ قیمت کا کیش صاف کیا جاتا ہے، اور اگلے اوپن سگنل کا انتظار کیا جاتا ہے۔ ڈیش بورڈ حقیقی وقت میں ہر پوزیشن کے اسٹاپ لائن سے فاصلے کو ظاہر کرتا ہے، رنگوں کے ذریعے خطرے کی سطح کو نمایاں کرتا ہے تاکہ انسانی تصدیق آسان ہو۔
کلیدی ڈیزائن فیصلے
کیوں ایک جامع پرامپٹ کے بجائے کثیر کردار؟ اس سوال کا کچھ حصہ پہلے تجزیہ والے حصے میں بتایا گیا، لیکن اسے مزید واضح کرنا ضروری ہے۔ واحد پرامپٹ کا مسئلہ صرف "خود کو قائل کرنا" نہیں ہے، بلکہ ایک اور پوشیدہ خطرہ بھی ہے: جب AI بیک وقت K لائن ڈیٹا اور خبروں کے متن کو پروسیس کرتا ہے، تو وہ بعد والے کا استعمال پہلے کی وضاحت کے لیے کرتا ہے، K لائن کی غیر معمولیات کو خبروں کا لازمی نتیجہ بنا دیتا ہے، بجائے اس کے کہ دونوں کو آزاد سگنل کے طور پر جانچے۔ کرداروں کی علیحدگی کا جوہر دو آزاد معلوماتی زنجیروں کو مجبوراً متعارف کروانا ہے، اور جب دونوں زنجیریں ایک ہی سمت اشارہ کریں تو اس وقت اعتماد حقیقی ہوتا ہے۔
کیوں ہر دور میں صرف ایک بہترین خریدیں، بجائے متنوع پوزیشنوں کے؟ متنوع پوزیشنیں روایتی مالیات میں ایک پختہ نظریہ رکھتی ہیں، لیکن پیشن گوئی مارکیٹ میں یہ منطق پوری طرح لاگو نہیں ہوتی۔ پیشن گوئی مارکیٹ کے ہدف دو طرفہ ہوتے ہیں، صفر ہونے کا خطرہ حقیقی ہے۔ اگر ایک ساتھ تین درمیانی اعتماد والے ہدف رکھے جائیں، جن میں سے دو صفر ہو جائیں اور ایک بڑھے تو مجموعی طور پر سرمایہ واپس آنا مشکل ہے۔ موجودہ حکمت عملی کا انتخاب یہ ہے: درستگی پر توجہ مرکوز کریں، نہ کہ مقدار کے ذریعے مختلف معیار کے سگنلز کو کمزور کریں۔ یہ انتخاب بہترین نہیں ہو سکتا، لیکن منطقی طور پر ہم آہنگ ہے۔
میچورٹی وزن کے اصول کو سخت پابندی کیوں بنایا گیا؟ میچورٹی کے قریب، مارکیٹ قیمت شرکاء کی حقیقی وقت کی توقعات کو ظاہر کرتی ہے، اور ان شرکاء میں ایک بڑا حصہ AI کے تربیتی ڈیٹا سے زیادہ تازہ معلومات رکھتا ہے۔ اگر اس وقت AI پھر بھی "قیمت شدید کم ہے، خریدنا چاہیے" کا نتیجہ نکالے تو اس کا مطلب ہے کہ اس کی معلومات پہلے ہی پرانی ہو چکی ہے۔ اس اصول کو مشورے کی بجائے پابندی بنانے کی وجہ یہ ہے کہ AI خود یہ شناخت نہیں کر سکتا کہ "میری معلومات اب کافی تازہ نہیں ہیں"، اس کے لیے بیرونی مداخلت ضروری ہے۔
حقیقی تجارتی مشاہدہ
عملی ریکارڈ سے دیکھا جائے تو اس حکمت عملی کا فنل تناسب کافی تیز ہے۔ ایک بار 141 ابتدائی طور پر فلٹر ہونے والے اہداف میں سے، K-لائن کی غیر معمولی کھوج کے بعد صرف 3 باقی رہے، اور آخر کار صرف 1 نے بیک وقت فنڈ سگنل، نیوز سپورٹ اور قیمت کی تشخیص کے تینوں شرائط پوری کیں جس کی وجہ سے آرڈر ٹرگر ہوا۔ باقی دو کو بالترتیب قیمت کی تشخیص "مناسب" ہونے اور مجموعی اسکور کی کمی کی وجہ سے چھوڑ دیا گیا۔ اس سے ظاہر ہوتا ہے کہ یہ حکمت عملی مجموعی طور پر محتاط ہے، خالی پوزیشن رکھنے کو ترجیح دیتی ہے، معیار کم کرنے کے بجائے۔ جب مارکیٹ میں اتار چڑھاؤ نہ ہو اور خبروں میں کوئی خاص واقعہ نہ ہو، تو سسٹم پورے دن میں کوئی خرید سگنل پیدا نہیں کر سکتا۔ یہ ڈیزائن کا مقصد ہے، خرابی نہیں۔ ایک بار ایسا بھی ہوا کہ K-لائن غیر معمولی تھی لیکن بعد میں وہ جھوٹا بریک آؤٹ ثابت ہوا، فنڈ تھوڑی دیر کے لیے داخل ہوا اور پھر نکل گیا، اور مووِنگ سٹاپ لاس نے اس میں مداخلت کی۔ نیوز تجزیہ بھی شور سے خالی نہیں، متعلقہ واقعات کی رپورٹنگ خود تاخیر کا شکار یا متعصب ہو سکتی ہے، اور صرف AI پر انحصار کرتے ہوئے مکمل طور پر شناخت ممکن نہیں۔
ڈیش بورڈ حقیقی وقت میں اکاؤنٹ ایکوئٹی، پوزیشن کی حیثیت (موجودہ Bid/Ask، زیادہ سے زیادہ قیمت، سٹاپ لاس لائن سے ریٹریسمنٹ کا فاصلہ، سٹاپ لاس موڈ) اور AI فیصلوں کی تفصیلات دکھاتا ہے، جو دستی جانچ پڑتال کے لیے آسان ہے۔
اختتام
سچ کہوں تو، یہ نظام ایک چلانے کے قابل سوچ کا ڈھانچہ ہے، نہ کہ کوئی فوری پیسہ کمانے والی مشین۔ بنیادی منطق — فنڈ کے رویے کا سراغ لگانا، عوامی رائے کی دوہری تصدیق، کثیر کردار AI فیصلہ — نظریاتی طور پر معقول ہے، لیکن حقیقی مارکیٹ میں سگنل کا معیار مختلف ہوتا ہے، AI کی تشخیص بھی غلط ہو سکتی ہے، اور قریب المدت قیمتوں کے یکجا ہونے کا خطرہ ہمیشہ موجود رہتا ہے۔
بہت سی جگہیں ہیں جہاں بہتری لائی جا سکتی ہے: تجارتی اہداف کو اپنے مانوس شعبوں تک محدود کیا جا سکتا ہے، AI پرامپٹس کو اپنے تجارتی انداز کے مطابق دوبارہ ڈیزائن کیا جا سکتا ہے، پانچ قسم کی K-لائن بے ضابطگیوں کے وزن اور حدوں میں بہتری کی گنجائش ہے، اور سٹاپ لاس کا گتانک بھی حقیقی پوزیشن کی کارکردگی کے مطابق بار بار بہتر کیا جا سکتا ہے۔ کوڈ سب کھلا ہے، اسے تبدیل کرنے کے لیے خوش آمدید۔
خطرے کی انتباہ
مارکیٹ کے اہداف کی پیش گوئی کے نتائج بائنری ہوتے ہیں، پوزیشن کے صفر ہونے کا خطرہ ہے۔ K-لائن غیر معمولی سگنلز اور AI تجزیہ کے نتائج سرمایہ کاری کی مشورہ نہیں ہیں، ماضی کے سگنل کی کارکردگی مستقبل کے منافع کی ضمانت نہیں۔ حکمت عملی کو طویل مدت کے لیے حقیقی تجارت میں تصدیق نہیں کیا گیا، اور پیرامیٹر کی ترتیبات کے نتائج پر نمایاں اثر ہوتا ہے۔ اس حکمت عملی کو حقیقی تجارت میں استعمال کرنے سے پہلے، براہ کرم Polymarket پلیٹ فارم کے قواعد، معاہدے کی میعاد ختم ہونے کے طریقہ کار اور لیکویڈیٹی کے خطرے کو اچھی طرح سمجھیں، اور سرمائے کے نقصان کو برداشت کرنے کی اپنی صلاحیت کا خود اندازہ کریں۔
حکمت عملی کا سورس کوڈ: Polymarket کثیر کردار ذہین تجزیہ تجارتی حکمت عملی
- 1




