Polymarket CodeX CopyTrading Bot কী করে
Polymarket CodeX CopyTrading Bot একটি TypeScript অ্যাপ্লিকেশন, যা এক বা একাধিক অনুসরণ করা ওয়ালেটের কার্যকলাপ পর্যবেক্ষণ করে এবং সংশ্লিষ্ট Polymarket অর্ডার তৈরি করে। এটি পাবলিক Data API-এর মাধ্যমে ওয়ালেটের কার্যকলাপ পড়ে এবং Polymarket-এর central limit order book-এর মাধ্যমে লাইভ ট্রেডিংয়ের জন্য @polymarket/clob-client-v2 ব্যবহার করে।
বটটি নির্দিষ্ট USD পরিমাণ অথবা শতাংশভিত্তিক সাইজিং ব্যবহার করে কেনা ও বিক্রয় কপি করতে পারে। এটি দেখা ট্রেড, তৈরি অর্ডার, সম্পাদিত বা সিমুলেটেড অর্ডার এবং আনুমানিক টোকেন পজিশনের স্থানীয় রেকর্ডও সংরক্ষণ করে।
ঝুঁকি সতর্কতা: এটি ট্রেডিং সফটওয়্যার। লাভের নিশ্চয়তা নেই। লাইভ এক্সিকিউশন বিবেচনা করার আগে সর্বদা প্রথমে সিমুলেশন চালান, প্রতিটি কনফিগারেশন মান পর্যালোচনা করুন এবং খুব অল্প পরিমাণ ব্যবহার করুন।
প্রধান বৈশিষ্ট্য
- একাধিক অনুসরণ করা ওয়ালেট পর্যবেক্ষণ করে।
- নির্দিষ্ট-পরিমাণ এবং শতাংশভিত্তিক কপি মোড সমর্থন করে।
npm run test-এর মাধ্যমে সিমুলেটেড এক্সিকিউশন প্রদান করে।npm start-এর মাধ্যমে লাইভ মার্কেট এক্সিকিউশন প্রদান করে।- বটের স্থানীয়ভাবে ট্র্যাক করা পজিশন ব্যবহার করে বিক্রয় কার্যকলাপ অনুসরণ করতে পারে।
- ন্যূনতম অর্ডার, সর্বোচ্চ অর্ডার, পজিশন এবং দৈনিক নোশনাল সীমা প্রয়োগ করে।
- Fill-and-kill এবং fill-or-kill অর্ডার আচরণ সমর্থন করে।
- অনুসরণ করা ট্রেডের fill price-এর তুলনায় ঐচ্ছিক price protection প্রদান করে।
- স্থানীয় JSON ফাইলে স্টেট সংরক্ষণ করে।
প্রয়োজনীয়তা
বট কনফিগার করার আগে নিম্নলিখিত সফটওয়্যার ইনস্টল করুন:
- Node.js সংস্করণ
20.10বা তার পরের সংস্করণ। - npm।
প্রজেক্টের সোর্স সংগ্রহ করুন, এর ডিরেক্টরিতে একটি টার্মিনাল খুলুন এবং প্যাকেজের নির্ভরতা ইনস্টল করুন:
npm installঅর্ডার এক্সিকিউশনের জন্য বটটি non-beta @polymarket/clob-client-v2 প্যাকেজ এবং ওয়ালেটের কার্যকলাপ পোলিংয়ের জন্য পাবলিক Polymarket Data API ব্যবহার করে।
লাইভ ট্রেডিংয়ের ক্রেডেনশিয়াল কনফিগার করুন
প্রজেক্টের .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 credential-কে গোপনীয় তথ্য হিসেবে বিবেচনা করুন।
সঠিক Signature Type নির্বাচন করুন
POLYMARKET_SIGNATURE_TYPE নিম্নলিখিত মানগুলো গ্রহণ করে:
EOAPOLY_PROXYPOLY_GNOSIS_SAFEPOLY_1271
প্রজেক্টের ডকুমেন্টেশন অনুযায়ী, নতুন deposit-wallet ব্যবহারকারীদের জন্য সাধারণত POLY_1271 উপযুক্ত। Externally owned account-এর মাধ্যমে সরাসরি ট্রেড করার সময় EOA নির্বাচন করুন; সে ক্ষেত্রে POLYMARKET_DEPOSIT_WALLET বাদ দেওয়া যেতে পারে।
বিদ্যমান L2 Credential ব্যবহার করুন
বট স্টার্টআপের সময় credential তৈরি করতে পারে। এই ধাপ এড়াতে .env-এ বিদ্যমান L2 credential দিন:
CLOB_API_KEY=...
CLOB_SECRET=...
CLOB_PASS_PHRASE=...লাইভ এক্সিকিউশন createAndPostMarketOrder ব্যবহার করে। লাইভ ট্রেডিং শুরু করার আগে নিশ্চিত করুন যে ট্রেডিং ওয়ালেটে পর্যাপ্ত ফান্ড রয়েছে এবং প্রয়োজনীয় Polymarket approval দেওয়া হয়েছে। বট ওয়ালেট তৈরি করে না বা স্বয়ংক্রিয়ভাবে টোকেন ব্যয়ের অনুমোদন দেয় না।
কপি সাইজিং কনফিগার করুন
অ্যাপ্লিকেশনটি দুটি কপি মোড সমর্থন করে। বট যে পরিমাণ exposure নেবে, তার সঙ্গে সামঞ্জস্যপূর্ণ মোড নির্বাচন করুন।
Fixed Mode
Fixed mode কপি করা কেনা ও বিক্রয় কার্যকলাপের জন্য পূর্বনির্ধারিত USD পরিমাণ নির্ধারণ করে:
COPY_MODE=fixed
FIXED_BUY_AMOUNT_USD=5
FIXED_SELL_AMOUNT_USD=5এই উদাহরণে, যোগ্য কপি করা কেনা ও বিক্রয়ের সাইজ নির্ধারিত পাঁচ US dollar মান ব্যবহার করে গণনা করা হয়।
Percentage Mode
Percentage mode অনুসরণ করা ওয়ালেটের কার্যকলাপ থেকে অর্ডারের সাইজ গণনা করে:
COPY_MODE=percentage
COPY_PERCENTAGE=0.10কেনার ক্ষেত্রে, বটটি অনুসরণ করা ট্রেডের USD notional-এর কনফিগার করা শতাংশ কপি করে। বিক্রয়ের ক্ষেত্রে, অনুসরণ করা ওয়ালেট যে শেয়ার বিক্রি করেছে তার কনফিগার করা শতাংশ কপি করে। বিক্রয়টি বটের স্থানীয় স্টেটে বর্তমানে ট্র্যাক করা পজিশন দ্বারা সীমাবদ্ধ থাকে।
উদাহরণস্বরূপ, 0.10 দশ শতাংশ বোঝায়। তবে প্রকৃত অর্ডারকে কনফিগার করা ঝুঁকি নিয়ন্ত্রণগুলো পূরণ করতে হবে।
ঝুঁকি নিয়ন্ত্রণ নির্ধারণ করুন
সিমুলেটেড বা লাইভ ট্রেডিং চালানোর আগে .env-এ অর্ডার ও exposure-এর সীমা নির্ধারণ করুন:
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=0MIN_ORDER_USDঅনুমোদিত অর্ডার মূল্যের ন্যূনতম সীমা নির্ধারণ করে।MAX_ORDER_USDএকটি অর্ডারের সর্বোচ্চ মূল্য নির্ধারণ করে।MAX_POSITION_USD_PER_TOKENপ্রতিটি টোকেনের আনুমানিক exposure সীমিত করে।DAILY_MAX_NOTIONAL_USDদৈনিক মোট notional কার্যকলাপ সীমিত করে।ORDER_TYPEfill behavior নিয়ন্ত্রণ করে।PRICE_PROTECTION_BPSঅনুসরণ করা fill price-এর তুলনায় এক্সিকিউশন ঐচ্ছিকভাবে সীমাবদ্ধ করে।
FAK এবং FOK অর্ডার বুঝুন
ORDER_TYPE=FAK হলে অর্ডারের কিছু অংশ পূরণ হতে পারে; এরপর অপূর্ণ অংশ বাতিল হয়। ORDER_TYPE=FOK হলে পুরো অর্ডার পূরণ হতে হবে; অন্যথায় অর্ডার ব্যর্থ হয়।
আংশিক এক্সিকিউশন গ্রহণযোগ্য হলে FAK উপযুক্ত হতে পারে। FOK আরও কঠোর, তবে সম্পূর্ণ liquidity না থাকলে এতে বেশি অর্ডার ব্যর্থ হতে পারে।
Price Protection প্রয়োগ করুন
PRICE_PROTECTION_BPS=0 হলে CLOB client marketable worst price অনুমান করে। শূন্য নয় এমন মান কনফিগার করা হলে, বটটি কেনার ক্ষেত্রে অনুসরণ করা fill price-এর উপরে এবং বিক্রয়ের ক্ষেত্রে তার নিচে worst-price limit গণনা করে।
মূল্য সুরক্ষা সহনীয় মূল্য পরিবর্তন সীমিত করতে পারে, তবে এই সেটিং সক্রিয় থাকলে কোনো অর্ডার পূরণ হবে বলে README নিশ্চিত করে না।
প্রথমে একটি সিমুলেশন চালান
প্রজেক্টের টেস্ট কমান্ড দিয়ে শুরু করুন:
npm run testএই মোডে লাইভ মার্কেট অর্ডারের পরিবর্তে সিমুলেটেড অর্ডার তৈরি হয়। লাইভ ট্রেড অবিলম্বে জমা না দিয়ে ওয়ালেট পর্যবেক্ষণ, অর্ডারের আকার নির্ধারণের আচরণ, ঝুঁকি সীমা এবং পরিবেশের সেটিং যাচাই করতে এটি ব্যবহার করুন।
পরীক্ষার সময় যাচাই করুন:
- উদ্দেশ্য অনুযায়ী ওয়ালেটগুলো পর্যবেক্ষণ করা হচ্ছে।
- কেনা ও বিক্রির ইভেন্ট সঠিকভাবে স্বাভাবিকীকরণ করা হচ্ছে।
- নির্বাচিত কপি মোড প্রত্যাশিত অর্ডারের আকার তৈরি করছে।
- অর্ডারগুলো ন্যূনতম, সর্বোচ্চ, পজিশন এবং দৈনিক সীমা মেনে চলছে।
- বিক্রির আকার স্থানীয়ভাবে ট্র্যাক করা পজিশনের চেয়ে বেশি নয়।
- স্টেট
./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-এর ওপর নির্ভর করার আগে স্থানীয় পজিশন পুনর্মিলন করুন।
