مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

TypeScript کے ساتھ Polymarket کا کاپی ٹریڈنگ بوٹ بنائیں اور ترتیب دیں

جانیں کہ Polymarket CodeX CopyTrading Bot کو کیسے ترتیب دیں، متعدد والٹس کو فالو کریں، مقررہ یا فیصد پر مبنی سائزنگ منتخب کریں، نقلی آرڈرز کی جانچ کریں، لائیو عمل درآمد فعال کریں، رسک کی حدود لاگو کریں اور اس کی مقامی حالت کو محفوظ طریقے سے منظم کریں۔

TypeScript کے ساتھ Polymarket کا کاپی ٹریڈنگ بوٹ بنائیں اور ترتیب دیں

Polymarket CodeX CopyTrading Bot کیا کرتا ہے

Polymarket CodeX CopyTrading Bot ایک TypeScript ایپلیکیشن ہے جو ایک یا زیادہ فالو کیے گئے والیٹس کی سرگرمی کی نگرانی کرتی ہے اور اسی کے مطابق Polymarket آرڈرز بناتی ہے۔ یہ عوامی Data API کے ذریعے والیٹ کی سرگرمی پڑھتی ہے اور Polymarket کے مرکزی limit order book کے ذریعے لائیو ٹریڈنگ کے لیے @polymarket/clob-client-v2 استعمال کرتی ہے۔

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

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

اہم خصوصیات

  • متعدد فالو کیے گئے والیٹس کی نگرانی کرتا ہے۔
  • مقررہ رقم اور فیصد پر مبنی copy modes کو سپورٹ کرتا ہے۔
  • npm run test کے ذریعے simulated execution فراہم کرتا ہے۔
  • npm start کے ذریعے live market execution فراہم کرتا ہے۔
  • بوٹ کی مقامی طور پر ٹریک کی گئی پوزیشن کے ذریعے فروخت کی سرگرمی کو فالو کر سکتا ہے۔
  • کم از کم آرڈر، زیادہ سے زیادہ آرڈر، پوزیشن، اور روزانہ notional limits لاگو کرتا ہے۔
  • fill-and-kill اور fill-or-kill آرڈر رویے کو سپورٹ کرتا ہے۔
  • فالو کی گئی ٹریڈ کی fill price کے مقابلے میں اختیاری price protection فراہم کرتا ہے۔
  • ریاست کو مقامی JSON فائل میں محفوظ کرتا ہے۔

تقاضے

بوٹ configure کرنے سے پہلے درج ذیل سافٹ ویئر انسٹال کریں:

  • Node.js ورژن 20.10 یا اس سے نیا۔
  • npm۔

پروجیکٹ کا source حاصل کریں، اس کی directory میں terminal کھولیں، اور package dependencies انسٹال کریں:

npm install

بوٹ آرڈر execution کے لیے non-beta @polymarket/clob-client-v2 package اور والیٹ activity polling کے لیے عوامی Polymarket Data API پر انحصار کرتا ہے۔

Live Trading Credentials کو Configure کریں

پروجیکٹ کی .env فائل بنائیں یا اس میں ترمیم کریں۔ CLOB host، Polygon chain ID، signature type، private key، اور deposit wallet شامل کریں:

POLYMARKET_CLOB_HOST=https://clob.polymarket.com
POLYMARKET_CHAIN_ID=137
POLYMARKET_SIGNATURE_TYPE=POLY_1271
POLYMARKET_PRIVATE_KEY=0x...
POLYMARKET_DEPOSIT_WALLET=0x...

حقیقی private key یا credential file کو version control میں کبھی commit نہ کریں۔ private key اور CLOB credentials کو راز سمجھیں۔

درست Signature Type منتخب کریں

POLYMARKET_SIGNATURE_TYPE درج ذیل values قبول کرتا ہے:

  • EOA
  • POLY_PROXY
  • POLY_GNOSIS_SAFE
  • POLY_1271

پروجیکٹ کی documentation کے مطابق، نئے deposit-wallet users کے لیے عموماً POLY_1271 موزوں ہے۔ براہِ راست externally owned account کے ذریعے ٹریڈنگ کرتے وقت EOA منتخب کریں؛ ایسی صورت میں POLYMARKET_DEPOSIT_WALLET کو چھوڑا جا سکتا ہے۔

موجودہ L2 Credentials استعمال کریں

بوٹ startup کے دوران credentials اخذ کر سکتا ہے۔ اس مرحلے سے بچنے کے لیے موجودہ L2 credentials کو .env میں فراہم کریں:

CLOB_API_KEY=...
CLOB_SECRET=...
CLOB_PASS_PHRASE=...

Live execution میں createAndPostMarketOrder استعمال ہوتا ہے۔ live trading شروع کرنے سے پہلے یقینی بنائیں کہ trading wallet میں مطلوبہ funds موجود ہیں اور Polymarket کی ضروری approvals حاصل ہیں۔ بوٹ wallets deploy نہیں کرتا اور نہ ہی token spending کو خودکار طور پر approve کرتا ہے۔

Copy Sizing کو Configure کریں

ایپلیکیشن دو copy modes کو سپورٹ کرتی ہے۔ وہ mode منتخب کریں جو اس exposure کے مطابق ہو جو آپ بوٹ سے لینا چاہتے ہیں۔

Fixed Mode

Fixed mode کاپی کی گئی خریداری اور فروخت کی سرگرمی کے لیے پہلے سے متعین USD رقم مقرر کرتا ہے:

COPY_MODE=fixed
FIXED_BUY_AMOUNT_USD=5
FIXED_SELL_AMOUNT_USD=5

اس مثال میں اہل کاپی کی گئی خریداری اور فروخت کو پانچ امریکی ڈالر کی configured value کے مطابق سائز کیا جاتا ہے۔

Percentage Mode

Percentage mode فالو کیے گئے والیٹ کی سرگرمی سے آرڈر کے سائز کا حساب لگاتا ہے:

COPY_MODE=percentage
COPY_PERCENTAGE=0.10

خریداری کے لیے بوٹ فالو کی گئی ٹریڈ کے USD notional کا configured percentage کاپی کرتا ہے۔ فروخت کے لیے یہ فالو کیے گئے والیٹ کے فروخت کردہ shares کا configured percentage کاپی کرتا ہے۔ فروخت کی حد بوٹ کی local state میں موجودہ ٹریک کی گئی پوزیشن تک ہوتی ہے۔

مثال کے طور پر، 0.10 دس فیصد کی نمائندگی کرتا ہے۔ اصل آرڈر کو پھر بھی configured risk controls پاس کرنا ہوگا۔

Risk Controls مقرر کریں

simulated یا live trading چلانے سے پہلے .env میں آرڈر اور exposure limits متعین کریں:

MIN_ORDER_USD=1
MAX_ORDER_USD=25
MAX_POSITION_USD_PER_TOKEN=100
DAILY_MAX_NOTIONAL_USD=250
ORDER_TYPE=FAK
PRICE_PROTECTION_BPS=0
  • MIN_ORDER_USD اجازت یافتہ آرڈر کی کم از کم value مقرر کرتا ہے۔
  • MAX_ORDER_USD انفرادی آرڈر کی value کی زیادہ سے زیادہ حد مقرر کرتا ہے۔
  • MAX_POSITION_USD_PER_TOKEN ہر ٹوکن کے لیے approximate exposure محدود کرتا ہے۔
  • DAILY_MAX_NOTIONAL_USD روزانہ کی کل notional activity محدود کرتا ہے۔
  • ORDER_TYPE fill behavior کو کنٹرول کرتا ہے۔
  • PRICE_PROTECTION_BPS اختیاری طور پر فالو کی گئی fill price کے مقابلے میں execution کو محدود کرتا ہے۔

FAK اور FOK Orders کو سمجھیں

ORDER_TYPE=FAK کے ساتھ آرڈر جزوی طور پر fill ہو سکتا ہے، جس کے بعد غیر مکمل remainder منسوخ کر دیا جاتا ہے۔ ORDER_TYPE=FOK کے ساتھ پورا آرڈر fill ہونا ضروری ہے؛ بصورت دیگر آرڈر ناکام ہو جاتا ہے۔

FAK اس وقت موزوں ہو سکتا ہے جب partial execution قابل قبول ہو۔ FOK زیادہ سخت ہے، لیکن مکمل liquidity دستیاب نہ ہونے پر اس سے زیادہ آرڈرز ناکام ہو سکتے ہیں۔

Price Protection لاگو کریں

جب PRICE_PROTECTION_BPS=0 ہو تو CLOB client marketable worst price کا تخمینہ لگاتا ہے۔ جب nonzero value configure کی جائے تو بوٹ خریداری کے لیے فالو کی گئی fill price سے اوپر اور فروخت کے لیے اس سے نیچے worst-price limit کا حساب لگاتا ہے۔

قیمت کا تحفظ قابلِ قبول قیمت کی نقل و حرکت کو محدود کر سکتا ہے، لیکن README اس بات کی ضمانت نہیں دیتا کہ یہ ترتیب فعال ہونے پر آرڈر مکمل طور پر انجام پائے گا۔

پہلے ایک سمیولیشن چلائیں

پروجیکٹ کی ٹیسٹ کمانڈ سے آغاز کریں:

npm run test

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

ٹیسٹنگ کے دوران تصدیق کریں کہ:

  1. مطلوبہ والٹس کی نگرانی کی جا رہی ہے۔
  2. خرید و فروخت کے واقعات درست طور پر نارملائز کیے جا رہے ہیں۔
  3. منتخب کردہ کاپی موڈ متوقع حجم تیار کرتا ہے۔
  4. آرڈرز کم از کم، زیادہ سے زیادہ، پوزیشن اور روزانہ کی حدود کی پابندی کرتے ہیں۔
  5. فروخت کے حجم مقامی طور پر ٹریک کی گئی پوزیشن سے زیادہ نہیں ہیں۔
  6. حالت ./data/state.json کے تحت ریکارڈ کی جاتی ہے۔

لائیو ٹریڈنگ شروع کریں

سمیلیشن کے نتائج، والٹ فنڈنگ، منظوریوں، اسناد اور تمام خطرے کی ترتیبات کا جائزہ لینے کے بعد، لائیو عمل درآمد شروع کریں:

npm start

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

مقامی حالت کو سمجھیں

بوٹ اپنی مقامی حالت یہاں محفوظ کرتا ہے:

./data/state.json

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

پوزیشنز صرف تقریباً درست ہوتی ہیں کیونکہ مارکیٹ آرڈرز جزوی طور پر مکمل ہو سکتے ہیں۔ اس لیے مقامی حالت اصل اکاؤنٹ ہولڈنگز سے مختلف ہو سکتی ہے۔

اعلیٰ درجے کے عملی مشورے

پوزیشن ری کنسیلی ایشن شامل کریں

پروڈکشن استعمال کے لیے README ایک وقفے وقفے سے چلنے والی ری کنسیلی ایشن جاب شامل کرنے کی تجویز دیتا ہے۔ اس جاب کو POLYMARKET_DEPOSIT_WALLET کے لیے Data API کے /positions اینڈ پوائنٹ سے استفسار کرنا چاہیے اور واپس آنے والی پوزیشنز کا مقامی حالت سے موازنہ کرنا چاہیے۔

جزوی فلز، ناکام آرڈرز، دستی ٹریڈز، ری اسٹارٹس یا بوٹ سے باہر انجام دی جانے والی کسی بھی سرگرمی کے بعد یہ خاص طور پر اہم ہے۔

حالت کی فائل کو محفوظ رکھیں

اپ گریڈز یا عملی تبدیلیوں سے پہلے ./data/state.json کا بیک اپ لیں۔ بوٹ کے چلنے کے دوران اس میں ترمیم نہ کریں۔ چونکہ یہ دیکھی گئی سرگرمی اور تقریباً پوزیشنز ریکارڈ کرتی ہے، اس لیے اسے حذف یا خراب کرنے سے ڈپلیکیٹ کی شناخت اور فروخت کے حجم کا تعین متاثر ہو سکتا ہے۔

محتاط حدود استعمال کریں

کم MAX_ORDER_USD، MAX_POSITION_USD_PER_TOKEN اور DAILY_MAX_NOTIONAL_USD سے آغاز کریں۔ انہیں صرف حقیقی مارکیٹ حالات میں بوٹ کے مشاہدے کے بعد بڑھائیں۔ خطرے کی حدود ایکسپوژر کو محدود کرتی ہیں، لیکن عمل درآمد، لیکویڈیٹی، مارکیٹ یا سافٹ ویئر کے خطرے کو ختم نہیں کرتیں۔

متعلقہ سورس فائلوں کا جائزہ لیں

ریپوزٹری کنفیگریشن، پولنگ، حکمتِ عملی، عمل درآمد اور حالت کی ذمہ داریوں کو الگ رکھتی ہے:

  • src/config.ts ماحول کی پارسنگ اور حفاظتی جانچ سنبھالتا ہے۔
  • src/index.ts مرکزی پولنگ لوپ پر مشتمل ہے۔
  • src/polymarket/dataApi.ts عوامی Data API ریڈز انجام دیتا ہے۔
  • src/watchers/walletWatcher.ts متعدد والٹس کی سرگرمی کو پول کرتا ہے۔
  • src/polymarket/tradeParser.ts سرگرمی کے واقعات کو نارملائز کرتا ہے۔
  • src/strategy/copyStrategy.ts مقررہ اور فیصدی حجم کا تعین نافذ کرتا ہے۔
  • src/strategy/riskManager.ts آرڈر، روزانہ اور پوزیشن کی حدود نافذ کرتا ہے۔
  • src/polymarket/orderExecutor.ts سمیولیٹ کیے گئے اور لائیو عمل درآمد کو سنبھالتا ہے۔
  • src/storage/stateStore.ts مقامی JSON حالت کا انتظام کرتا ہے۔

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

نتیجہ

Polymarket CodeX CopyTrading Bot ایک TypeScript ورک فلو فراہم کرتا ہے جو متعدد والٹس کی نگرانی کرتا ہے اور مقررہ یا فیصدی حجم کے ساتھ اہل خرید و فروخت کی نقل بناتا ہے۔ اسناد احتیاط سے ترتیب دیں، محتاط خطرے کی حدود نافذ کریں، npm run test کے ذریعے رویے کی توثیق کریں، اور لائیو ٹریڈنگ کے لیے npm start پر انحصار کرنے سے پہلے مقامی پوزیشنز کی ری کنسیلی ایشن کریں۔