[TOC]

পলিমার্কেট হল একটি ভবিষ্যদ্বাণীমূলক বাজার যেখানে প্রতিটি প্রশ্নের মাত্র দুটি ফলাফল থাকে - হ্যাঁ অথবা না, উত্থান অথবা পতন, জয় অথবা পরাজয়। BTC-এর ১৫ মিনিটের মূল্য পরিবর্তন চুক্তির উদাহরণ নিলে, প্রতিটি রাউন্ডে…Up এবংDownদুটি চুক্তি, ১৫ মিনিটের মধ্যে BTC-এর সমাপনী মূল্য তার খোলার মূল্যের চেয়ে বেশি না কম হবে তার উপর বাজি ধরা হচ্ছে। একটি সঠিক বাজি $১ প্রদান করে, একটি ভুল বাজির ফলাফল শূন্য।

এই বাজারের একটি বিশেষ বৈশিষ্ট্য রয়েছে:দুটি ফলাফলের সম্মিলিত সম্ভাবনা ১০০%, তাই আপের দাম এবং ডাউনের দাম তাত্ত্বিকভাবে ঠিক ১ এর সমান হওয়া উচিত।
[ \text{উপরের_মূল্য} + \text{নিচে_মূল্য} = ১ \চতুর্থাংশ \text{(তাত্ত্বিক মান)} ]
সাধারণ চুক্তি বাজারে এই সম্পত্তির অস্তিত্ব নেই, যা আমাদের নিশ্চিততার একটি প্রাকৃতিক ভিত্তি প্রদান করে।
পরিমাণগত ট্রেডিং সবসময় একটি জিনিসের উপর নির্ভর করে: অনিশ্চয়তায় ভরা বাজারে তুলনামূলকভাবে নির্দিষ্ট সুযোগ খুঁজে বের করা।
পলিমার্কেটের বাইনারি কাঠামো এমন একটি অ্যাঙ্কর প্রদান করে:এই ১৫ মিনিটের মধ্যে BTC বাড়ুক বা কমুক না কেন, উপরে বা নিচে, অনিবার্যভাবে $১ প্রদান করবে।এই অ্যাঙ্কর পয়েন্ট ব্যবহার করে, আমাদের দিক নির্ধারণ করার দরকার নেই; আমাদের কেবল এমন একটি সুযোগ খুঁজে বের করতে হবে যেখানে আপ অ্যান্ড ডাউন কেনার মোট খরচ 1 এর কম হবে এবং লাভ নিশ্চিত হবে।
সমস্যা হলো, বেশিরভাগ সময়ই দুটি মূল্যের যোগফল ১ এর কাছাকাছি থাকে, যার ফলে সরাসরি আরবিট্রেজের সুযোগ খুঁজে পাওয়া কঠিন হয়ে পড়ে। তাহলে সুযোগগুলো ঠিক কোথায়?
সুযোগ আসেবাজারের অতিরিক্ত প্রতিক্রিয়ার কারণে মূল্য ভারসাম্যহীনতা。
এই দৃশ্যকল্পটি কল্পনা করুন: ১৫ মিনিটের মধ্যে, BTC হঠাৎ করে দ্রুত পতনের দিকে ঠেলে দেয়, যার ফলে বাজারে আতঙ্ক দেখা দেয় এবং Up চুক্তির ব্যাপক বিক্রি শুরু হয়, যার ফলে দাম ০.৫ থেকে ০.৩৫ এ নেমে আসে। তাত্ত্বিকভাবে, Up যতই কমুক না কেন, Down একই পরিমাণে বৃদ্ধি পাবে, তাদের যোগফল সর্বদা ১ এর সমান। যাইহোক, বাজার বিভিন্ন গতিতে প্রতিক্রিয়া দেখায়। Up ইতিমধ্যেই দ্রুত পতনের দিকে ঠেলে দেওয়া হয়েছে, যখন Down এখনও ০.৫ থেকে ০.৬৫ এ চলেছে এবং সম্পূর্ণরূপে তা ধরে রাখতে পারেনি।
এই গুরুত্বপূর্ণ পরিবর্তনের মুহূর্তে, ঊর্ধ্বমুখী এবং নিম্নমুখী মূল্যের যোগফল মাত্র ০.৯৩ হতে পারে, যার ফলে মূল্যের একটি স্বল্পমেয়াদী ভারসাম্যহীনতা দেখা দিতে পারে।
[ \text{Up}(0.35) + \text{Down}(0.58) = 0.93 < 1 ]
এটি হল আরবিট্রেজ উইন্ডো: এমন একটি সংমিশ্রণ যা কিনতে \(0.93 খরচ হয় এবং অনিবার্যভাবে \)1 প্রদান করতে হবে, ক্রয়ের মুহুর্তে মুনাফা নির্ধারিত হবে।
মূল ধারণাটি টুইটার ব্যবহারকারী @the_smart_ape থেকে এসেছে, এবং এটি খুবই সংক্ষিপ্ত, মাত্র চারটি পরামিতি সহ:
| প্যারামিটার | অর্থ |
|---|---|
SHARES |
প্রতি লেগ ক্রয় শেয়ার |
SUM_TARGET |
উভয় পায়ের জন্য লক্ষ্য মূল্য (উচ্চ সীমা) |
MOVE_PCT |
পতনের মাত্রা |
WINDOW_MIN |
উইন্ডো সময় পর্যবেক্ষণ করা হচ্ছে |
কার্যকর করার যুক্তিটি নিম্নরূপ: প্রতিটি রাউন্ডের শুরুতে পর্যবেক্ষণ উইন্ডোর মধ্যে, দামগুলি ক্রমাগত পর্যবেক্ষণ করা হয়। একবার একটি নির্দিষ্ট দিকে ট্রিগার থ্রেশহোল্ড অতিক্রম করে তীব্র পতন ঘটে, সেই দিকটি প্রথম স্তর হিসাবে কেনা হয়। তারপরে, বিপরীত দিকের দামটি ফিরে আসার জন্য অপেক্ষা করা হয়। যখন দুটি স্তরের সম্মিলিত মূল্য লক্ষ্য মূল্যের চেয়ে কম হয়, তখন দ্বিতীয় স্তরটি কেনা হয় এবং সালিশ বন্ধ করা হয়। নিষ্পত্তি এবং খালাস 15 মিনিটের মধ্যে সম্পন্ন হয়।
এই পদ্ধতিটি পরিষ্কার এবং সহজবোধ্য, কিন্তু যদি সরাসরি লাইভ ট্রেডিংয়ে প্রয়োগ করা হয়, তাহলে এটি বেশ কয়েকটি স্পষ্ট সমস্যার সম্মুখীন হবে।
মূল ধারণাটি ছিলনিষ্ক্রিয় অপেক্ষাপ্রথম লেগটি কিনুন, তারপর দেখুন কখন বিপরীত দিকের দাম কমে যায়। দ্বিতীয় লেগটি কিনুন শুধুমাত্র তখনই যখন দুটি লেগের সম্মিলিত দাম লক্ষ্য মূল্যের নিচে থাকে।
আমাদের উন্নতির পদ্ধতি ভিন্ন।তীব্র পতনের মুহূর্তে, ঊর্ধ্বমুখী এবং নিম্নমুখী সূচকগুলি ভিন্ন গতিতে চলার সম্ভাবনা বেশি। এই অসংলগ্ন সময়ের মধ্যে আমরা একই সাথে পদক্ষেপ নিই:
SUM_TARGET - 第一腿价格বিপরীত মূল্য সীমা প্রয়োগ করে, আমরা বিপরীত প্রবণতার শীর্ষে পৌঁছানোর আগেই মূল্য লক করতে পারি।যখন উভয় অর্ডার একসাথে জমা দেওয়া হয়, তখন অর্ডার দেওয়ার মুহূর্তেই আরবিট্রেজ সুযোগটি লক হয়ে যায়। বাজারের শর্ত পূরণের জন্য নিষ্ক্রিয়ভাবে অপেক্ষা করার পরিবর্তে, আমরা বাজারকে আমাদের কাছে আসতে দিই।
মূল কোড বাস্তবায়ন নিম্নরূপ:
function executeBothLegs(symbols, dumpSide, dumpAsk) {
var leg1Symbol = (dumpSide === "Up") ? symbols.up : symbols.down
var leg2Symbol = (dumpSide === "Up") ? symbols.down : symbols.up
leg1Price = _N(dumpAsk + SLIPPAGE, 4)
// 第二腿限价:SUM_TARGET - leg1Price,确保两腿合计 <= SUM_TARGET 即有利润
leg2Price = _N(SUM_TARGET - leg1Price, 4)
// 并发提交两个限价单
var goLeg1 = exchange.Go("CreateOrder", leg1Symbol, "buy", leg1Price, SHARES)
var goLeg2 = exchange.Go("CreateOrder", leg2Symbol, "buy", leg2Price, SHARES)
var id1 = goLeg1.wait()
var id2 = goLeg2.wait()
leg1OrderId = id1
leg2OrderId = id2
state = STATE.BOTH_PENDING
}
মূল ধারণা ছিল যে দ্বিতীয় ধাপটি দ্রুত সম্পন্ন হবে, কিন্তু বাস্তবে, প্রায়শই এটি ঘটে যে আপ লেগটি কমিয়ে দেওয়ার পরে, ডাউন লেগের দাম আর কমে না, বাজারের মনোভাব হতাশাবাদী থাকে এবং উভয় লেগের সম্মিলিত দাম কখনই লক্ষ্যে পৌঁছায় না।
এই সময়ের মধ্যে, যদি আপনি একতরফাভাবে উপরে অবস্থান ধরে রাখেন, তাহলে দাম শূন্যে স্থির না হওয়া পর্যন্ত পতন অব্যাহত থাকতে পারে।একটি স্টপ-লস অর্ডার দিতে হবে।
আমরা দুটি প্যারামিটার যোগ করেছি:
FLOOR_PRICE(সর্বনিম্ন মূল্য)একটি পরম সর্বনিম্ন (যেমন, ০.০৫) নির্ধারণ করুন। যদি হোল্ডিং মূল্য এই স্তরে নেমে যায়, তাহলে এটি নির্দেশ করে যে বাজার নির্ধারণ করেছে যে এই দিকটি প্রতিকূল হওয়ার সম্ভাবনা রয়েছে, তাই ক্ষতি বন্ধ করুন এবং বাজার থেকে বেরিয়ে যান।EARLY_TAKE_PROFIT(প্রাথমিক মুনাফা গ্রহণের অনুপাত)চুক্তির প্রথম ধাপ কেনার পর, যদি দাম লাভের লক্ষ্যমাত্রার উপরে উঠে যায়, তাহলে দ্বিতীয় ধাপের জন্য অপেক্ষা না করে সরাসরি লাভ পেতে এটি বিক্রি করুন।function handleLeg1OnlyRisk(symbols, upBid, downBid, isLastMin) {
var holdBid = (leg1Side === "Up") ? upBid : downBid
var profitLine = leg1EntryAsk * (1 + EARLY_TAKE_PROFIT)
var stopLine = leg1EntryAsk * (1 - LAST_MIN_STOP_LOSS)
var needClose = false
var reason = ""
if (holdBid <= FLOOR_PRICE) {
needClose = true; reason = "止损(保底)"
} else if (!isLastMin && holdBid >= profitLine) {
needClose = true; reason = "前期止盈"
} else if (isLastMin && holdBid <= stopLine) {
needClose = true; reason = "末段止损"
}
if (needClose) {
// 先撤对侧挂单,再平仓
cancelAndConfirmUntilClear(leg2OrderId)
closePosition(holdSymbol, holdBid, reason)
}
}
একটি নিম্ন সীমা নিশ্চিত করে, এবং অন্যটি উপরের সীমায় লক করে, এইভাবে প্রাথমিকভাবে সীমাহীন একতরফা অবস্থানের উপর একটি সীমানা স্থাপন করে।
মূল পদ্ধতিতে সময়ের মাত্রা আলাদা করা হয়নি, কিন্তু যখন নিষ্পত্তির পর্যায় এগিয়ে আসছে তখন এটি সম্পূর্ণ ভিন্ন: নিষ্পত্তি শীঘ্রই আসছে, এবং দাম কমে না গেলেও অপেক্ষা করার সময় নেই। তাছাড়া, নিষ্পত্তির যত কাছাকাছি, দামের ওঠানামা তত তীব্র হতে থাকে।
আমরা যোগ করেছিLAST_MIN_S(চূড়ান্ত সময়সীমা সামঞ্জস্য করা যেতে পারে।) চূড়ান্ত পর্যায়ে প্রবেশের পর যুক্তি পরিবর্তন:
LAST_MIN_STOP_LOSS(ট্রেডিং সেশনের শেষে স্টপ-লস শতাংশ) যদি দাম স্টপ-লস স্তরের নিচে নেমে যায়, তাহলে বাজার মূল্যে প্রস্থান করুন।var isLastMin = (remaining <= LAST_MIN_S)
// BOTH_PENDING 状态下
if (isLastMin) {
Log("⏰ 最后1分钟,撤销未成交挂单")
cancelAllPending("最后1分钟")
}
প্রাথমিক পর্যায়ে, দাম পুনরুদ্ধারের জন্য অপেক্ষা করুন; পরবর্তী পর্যায়ে, দাম শূন্যে নেমে যাওয়া এড়িয়ে চলুন। এই দুটি যুক্তি একে অপরের সাথে হস্তক্ষেপ করে না।
পলিমার্কেট একটি অন-চেইন মার্কেট, এবং অর্ডারের অবস্থা এবং অবস্থানের তথ্য ফেরত দেওয়া কখনও কখনও ধীর হতে পারে; অর্ডার দেওয়ার পরে নিশ্চিতকরণ পেতে কয়েক সেকেন্ড সময় লাগতে পারে। অতএব, কৌশলটিতে একটি অর্ডার টাইমআউট সনাক্তকরণ এবং পুনরায় চেষ্টা করার প্রক্রিয়া অন্তর্ভুক্ত করা হয়েছে।
function placeOrderAndConfirm(symbol, side, price, amount) {
var orderId = exchange.CreateOrder(symbol, side, orderPrice, amount)
var deadline = Date.now() + ORDER_TIMEOUT_S * 1000
while (Date.now() < deadline) {
var order = exchange.GetOrder(orderId)
if (order && order.Status === 1) {
return { orderId: orderId, avgPrice: order.AvgPrice } // 成交
}
if (order && (order.Status === 2 || order.Status === 4)) {
return { orderId: orderId, avgPrice: null } // 已撤销
}
Sleep(1000)
}
// 超时后执行撤单
exchange.CancelOrder(orderId)
// ... 继续轮询确认最终状态
}
একই সাথে যোগ করা হয়েছেSLIPPAGE(স্লিপেজ প্যারামিটার) ক্রয় অর্ডার কার্যকর হওয়ার সম্ভাবনা বৃদ্ধি করে। ক্রয়ের সময় প্রকৃত অর্ডার মূল্য লক্ষ্য মূল্য এবং স্লিপেজের সমান হয়।
পলিমার্কেটের একটি অনন্য ব্যবস্থা রয়েছে: চুক্তি নিষ্পত্তির পরে পরিশোধিত অর্থ স্বয়ংক্রিয়ভাবে ব্যালেন্সে ফেরত পাঠানো হয় না।শুধুমাত্র সক্রিয়ভাবে রিডিম এপিআই কল করেই তহবিল প্রকাশ করা যেতে পারে।যদি এই ধাপটি মিস করা হয়, তাহলে অ্যাকাউন্টের টাকা ইতিমধ্যেই নিষ্পত্তিকৃত পজিশনে লক হয়ে যাবে।
সময়মত তহবিল ফেরত নিশ্চিত করার জন্য প্রতিটি সুইচওভারের সময় কৌশলটি স্বয়ংক্রিয়ভাবে ব্যাচে রিডিম শুরু করে।
function doRedeem() {
var positions = exchange.GetPositions()
for (var i = 0; i < positions.length; i++) {
var pos = positions[i]
if (pos.Info && pos.Info.redeemable) {
var result = exchange.IO("redeem", pos.Symbol, true)
Log("Redeem 结果:", result)
}
}
}
// 每轮结算前(840s 后)自动触发
if (!redeemDone && elapsed >= 840) {
doRedeem()
redeemDone = true
}

এই কৌশলটিতে একটি রিয়েল-টাইম ড্যাশবোর্ড রয়েছে যা অ্যাকাউন্টের ইকুইটি, বর্তমান অবস্থা, মূল্য পর্যবেক্ষণ এবং অবস্থানের লাভ/ক্ষতি একটি টেবিল ফর্ম্যাটে প্রদর্শন করে, যা আপনাকে লাইভ ট্রেডিংয়ের সময় কৌশলটির অগ্রগতি সহজেই ট্র্যাক করতে দেয়। ড্যাশবোর্ডে চারটি টেবিল রয়েছে:

লাইভ ট্রেডিং উদাহরণ:
একটি নতুন রাউন্ড শুরু হচ্ছে, এবং কৌশলটি পর্যবেক্ষণাধীন। ডাউন চুক্তিতে 0.43 থেকে 0.35 পর্যন্ত 18.60% পতন ধরা পড়েছে, যা একটি সংকেত তৈরি করেছে। একই সাথে, দুটি লিমিট অর্ডার দেওয়া হয়েছিল: প্রথম ডাউন অর্ডারটি 0.37 এ এবং দ্বিতীয় আপ অর্ডারটি 0.60 এ, মোট 0.97, লক্ষ্য মূল্যের নিচে। উভয় অর্ডার একই সাথে জমা দেওয়া হয়েছিল এবং পরবর্তীতে পূরণ করা হয়েছিল। প্রকৃত গড় কার্যকর মূল্য: প্রথম স্তর 0.34, দ্বিতীয় স্তর 0.60, প্রকৃত মোট খরচ।0.94লাভ প্রত্যাশার চেয়ে বেশি ছিল, যা ০.৯৭ এর পূর্বনির্ধারিত সীমার নিচে ছিল।
এই কৌশলটি তার ধারণার দিক থেকে তুলনামূলকভাবে শক্তিশালী এবং বাজারের পরিস্থিতি সহযোগিতা করলে ভালো রিটার্ন অর্জন করতে পারে। তবে, তিনটি ত্রুটি রয়েছে যা খোলাখুলিভাবে স্বীকার করা প্রয়োজন:
ত্রুটি ১: বাজার স্থিতিশীল থাকলে পজিশন খোলার সুযোগ খুঁজে পাওয়া কঠিন।আরবিট্রেজের সুযোগগুলি বাজারের অতিরিক্ত প্রতিক্রিয়ার উপর নির্ভর করে; যখন বাজার স্থিতিশীল থাকে, তখন তীব্র পতনের সম্ভাবনা খুব কম থাকে এবং কৌশলটি কেবল বিচ্ছিন্নভাবে কাজ করতে পারে। ট্রিগার পরিসর প্রসারিত করলে সুযোগ বৃদ্ধি পেতে পারে, কিন্তু এন্ট্রির মান হ্রাস পাবে।
ত্রুটি ২: একটি একক পদে থাকার ঝুঁকি সম্পূর্ণরূপে এড়ানো কঠিন।প্রথম স্তর পূরণ হওয়ার পর, যদি দাম পুনরুদ্ধারের পরিবর্তে ক্রমাগত কমতে থাকে, তাহলে দ্বিতীয় স্তরটি কখনই পূরণ হবে না এবং স্টপ-লস লাইনে পৌঁছানো এবং ট্রিগার না হওয়া পর্যন্ত পতন অব্যাহত থাকবে। স্টপ-লস থ্রেশহোল্ড নির্ধারণ করা একটি দ্বিধা: খুব বেশি টাইট এবং এটি স্বাভাবিক ওঠানামার দ্বারা সহজেই ট্রিগার হবে; খুব বেশি ঢিলেঢালা এবং দাম সত্যিই ভুল হলে ক্ষতি খুব বেশি হবে।
ত্রুটি ৩: উভয় লেগ এর সম্মিলিত লক্ষ্য মূল্যের থ্রেশহোল্ড হল একটি ট্রেড-অফ।সীমা খুব বেশি নির্ধারণ করলে সুযোগ বাড়ে কিন্তু প্রতিবার কম মুনাফা হয়; সীমা খুব কম নির্ধারণ করলে প্রতিবারই লাভ বাড়ে কিন্তু একটি উল্লেখযোগ্য সুযোগের জন্য দীর্ঘ অপেক্ষা করতে হতে পারে। এটি কৌশলের একটি পছন্দ: ঘন ঘন ছোট আকারের সঞ্চয়, অথবা একটি কম সীমা ধরে রাখা এবং মাঝে মাঝে বড় সুযোগের জন্য অপেক্ষা করা।
এই কৌশলটি একটি কাঠামো, এবং গভীরভাবে অন্বেষণ করার মতো তিনটি দিক রয়েছে:
বিকল্প ১: বহিরাগত বিটিসি মূল্যের তথ্য উপস্থাপন করুন।এই কৌশলটি রেঞ্জ-বাউন্ড মার্কেটের জন্য বেশি উপযুক্ত; ট্রেন্ডিং মার্কেটে, স্টপ-লস অর্ডার ঘন ঘন ট্রিগার করা হবে। এটি এক্সচেঞ্জ থেকে রিয়েল-টাইম বিটিসি মূল্যের সাথে একীভূত করা যেতে পারে, যখন একটি স্পষ্ট প্রবণতা দেখা দেয় তখন পজিশন খোলার জন্য বিরতি দেওয়া সম্ভব করে, ফলে অপ্রয়োজনীয় ক্ষতি হ্রাস পায়।
দিকনির্দেশনা ২: গাণিতিক মডেলিং।আপ এবং ডাউন মূলত দুটি বাইনারি বিকল্প। অপশন ক্ষেত্রে অনেক পরিপক্ক মূল্য মডেল রয়েছে, যা তাত্ত্বিকভাবে আর্বিট্রেজ উইন্ডোর সম্ভাব্যতা এবং সর্বোত্তম প্রবেশ বিন্দুকে আরও সঠিকভাবে মডেল করতে পারে, স্বেচ্ছাসেবী সিদ্ধান্ত নেওয়ার জন্য নির্দিষ্ট থ্রেশহোল্ডের উপর নির্ভর করার পরিবর্তে।
বিকল্প ৩: গতিশীল প্যারামিটার সমন্বয়।বর্তমানে, সমস্ত প্যারামিটার স্থির, কিন্তু বাজারের অস্থিরতা পরিবর্তিত হয়। উচ্চ এবং নিম্ন অস্থিরতার সময় একই প্যারামিটার সেট ব্যবহার করা স্পষ্টতই অনুপযুক্ত। রিয়েল-টাইম বাজারের অবস্থার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে প্যারামিটারগুলি সামঞ্জস্য করা কৌশলটির অভিযোজনযোগ্যতাকে ব্যাপকভাবে উন্নত করে।
এই কৌশলের মূল যুক্তি - বাইনারি বাজারে মূল্য ভারসাম্যহীনতার মুহূর্তগুলি খুঁজে বের করা - কেবল পলিমার্কেটের বিটিসি চুক্তির মধ্যে সীমাবদ্ধ নয়। বাইনারি কাঠামো এবং স্বল্পমেয়াদী মূল্যের অসঙ্গতি সহ যে কোনও বাজার একই পদ্ধতি ব্যবহার করে সুযোগগুলি উন্মোচন করতে ব্যবহার করা যেতে পারে। আমরা কেবল এই ধারণাটিকে একটি কার্যকরী কাঠামোতে রূপান্তরিত করেছি; সত্যিকারের আকর্ষণীয় অংশটি এখনও আসেনি।
কৌশল সোর্স কোড: পলিমার্কেট বিটিসি ১৫ মিনিটের দুই-পায়ের হেজিং আরবিট্রেজ রোবট (দুই-মুখী হেজিং সংস্করণ)