স্কয়ার পেজে অনেক আকর্ষণীয় কৌশল রয়েছে (https://www.fmz.com/squareএফএমজেড কোয়ান্ট প্ল্যাটফর্মের। তখন, বেশিরভাগ ক্রিপ্টোকারেন্সি এক্সচেঞ্জের এপিআই ইন্টারফেসrest
প্রোটোকল, অনেক কৌশলrest
এ কারণে, কখনও কখনও বাজার কোট আপডেট ধীর হয়। উপরন্তু, কিছু ক্ষেত্রে যেখানে বিনিময় rest
ইন্টারফেসটি অদূর ভবিষ্যতে ব্যর্থ হয়েছে, যার ফলে একটি কৌশল সঠিকভাবে পারফর্ম করতে পারে না।
যতক্ষণ কৌশলটি সংশোধন করা হয়, ওয়েবসকেট ইন্টারফেসের জন্য সমর্থন যোগ করার জন্য কৌশল কোডে কিছু পরিবর্তন প্রয়োজন, যা সাধারণত বেশ ঝামেলাজনক (কৌশল পরিবর্তন করার অসুবিধা এটি পুনরায় লেখার চেয়ে অনেক বেশি) ।
কিভাবে আমরা কৌশল কোড পরিবর্তন না, কিন্তু ওয়েবসকেট বাজার কোট ইন্টারফেস ব্যবহার করতে পারেন?
এখানে FMZ Quant প্ল্যাটফর্মের সম্পূর্ণ নমনীয়তা, আমরা ব্যবহার করতে পারিঃ
exchange.GetTicker
.
সুতরাং, কৌশল কোড পরিবর্তন ছাড়া, কৌশল ব্যবহার করা যাকwebsocket
মার্কেট ইন্টারফেস।
কোড লেখার ভাষাটি জাভাস্ক্রিপ্ট প্রোগ্রামিং ভাষা ব্যবহার করে।
উদাহরণস্বরূপ, যখন আমরা একটি ক্লাসিক কৌশল পরিবর্তন করতে হবে
কৌশলগত ঠিকানা:https://www.fmz.com/strategy/9929
আসুন আমরা কৌশল কোডটি একবার দেখে নিই এবং দেখি যে কৌশলটিtick
এটি মূলত বাজারের মূল্যের বৈশিষ্ট্য ব্যবহার করেBuy
, Sell
, এবংLast
মধ্যেticker
তথ্য.ticker
তথ্য FMZ Quant প্ল্যাটফর্মের API ফাংশন দ্বারা প্রাপ্ত হয়ঃexchange.GetTicker
. লক্ষ্য এখন পরিষ্কার, আমরা প্রতিস্থাপন করতে পারেনexchange.GetTicker
সঙ্গে ফাংশনHook
অপারেশন (যেমন, অন্য সংস্করণ দিয়ে এটি প্রতিস্থাপন) ।
তবে আমরা
তাই আমাদের পরবর্তী নায়িকাকে ডিবিউ করতে হবে।
আমরা একটি
তারপর 2 পরামিতি সেট করুনSeamlessConnWS
template.
এই দুটি ব্যবহার করা হয় কিনা তা নিয়ন্ত্রণ করতে ব্যবহার করা হয়websocket
ইন্টারফেস ফাংশন, এবং কন্ট্রোল একটি নির্দিষ্ট বাজার কোট ইন্টারফেস খুলতে নির্দিষ্ট করে। এই নিবন্ধের সীমাবদ্ধতা কারণে, আমরা শুধুমাত্র preformhook
অপারেশনexchange.GetTicker
ইন্টারফেস. অতএব, আমরা প্যারামিটার সক্ষম করতে হবে ((Hook_GetTicker
) এরGetTicker
ইন্টারফেসwebsocket
mode.
একবার টেমপ্লেট তৈরি হয়ে গেলে, আমরা এক্সচেঞ্জের নির্দিষ্ট অ্যাক্সেস লিখতে পারিwebsocket
টেমপ্লেটে ইন্টারফেস, নির্দিষ্ট উদ্ধৃতি সাবস্ক্রাইব, এবং তারপর এক্সচেঞ্জের ফাংশন কোডের জন্য অপেক্ষা করুন ডেটা চাপতে. নির্দিষ্ট কোড এখানে বর্ণনা করা হয় না, আপনি উল্লেখ করতে পারেনSeamlessConnWS
কোড (ইতিমধ্যে ওপেন সোর্স) এবং FMZ Quant অফিসিয়াল এপিআই ডকুমেন্টেশন।init
টেমপ্লেটে ফাংশন এবং গ্লোবাল ভেরিয়েবল_DictConnectCreater
, _ConnMap
:
কোডের অংশঃ
var _DictConnectCreater = {
"Huobi" : WSConnecter_Huobi,
"Binance" : WSConnecter_Binance,
}
var _ConnMap = {}
function init () {
if (IsUsedWebSocket) {
var connectCreater = null
if (exchanges.length != 1) {
Log("Switching to the ws interface only for the "exchange" exchange object (ie, the first added exchange object)")
}
var isFound = false
for (var name in _DictConnectCreater) {
if (exchange.GetName() == name) {
connectCreater = _DictConnectCreater[name]
isFound = true
}
}
if (!isFound) {
throw "Did not find an implementation"
}
if (Hook_GetTicker) {
var symbol = exchange.GetCurrency()
_ConnMap.GetTicker = connectCreater("GetTicker", symbol)
exchange.GetTicker = function () {
return _C(_ConnMap.GetTicker.Read)
}
}
// ...
}
}
এটা দেখা যায় যে এই টেমপ্লেটটি শুধুমাত্রwebsocket
দুইটি এক্সচেঞ্জের বাজার ইন্টারফেস, যা Binance এবং Huobi।init
SeamlessConnWS
টেমপ্লেট,init
এই ফাংশনটি প্রথম বাজারের চলমান অগ্রগতির সময় কার্যকর হবে।
আমরা বিষয়বস্তু প্রতিস্থাপন করতে পারেনexchange.GetTicker
কোড সঙ্গে ফাংশন ব্যবহারwebsocket
ইন্টারফেস, এইভাবে ওয়েবসকেট বাজারে বিরামবিহীন ডকিং অর্জন।
SeamlessConnWS
টেমপ্লেট ঠিকানাঃhttps://www.fmz.com/strategy/167755
কপি করার পরSeamlessConnWS
আপনার কৌশল লাইব্রেরিতে টেমপ্লেট, আপনি শুধু ব্যবহার করতে পারেন
টেমপ্লেট চেক করতে ক্লিক করুন, এবং সংরক্ষণ বোতাম নিশ্চিত করুন.
উপর নিয়ন্ত্রণ পরামিতি খুলুনSeamlessConnWS
template.
চালাও:
প্রিন্ট করা ডাটা সহজে দেখতে, লাইন ১৫৭-এ, আমরা বিশেষভাবে একটি প্রিন্ট লগ কোড যুক্ত করেছি, এটি এক্সচেঞ্জ দ্বারা প্রিন্ট করা ডাটা আউটপুট করবে।
রোবট লগ প্রদর্শনঃ
এই ভাবে, আমরা কৌশল কোড কোন লাইন পরিবর্তন করতে হবে না, এবংwebsocket
মার্কেট ইন্টারফেস।
এই উদাহরণটি শুধুমাত্র ব্যবহারের কৌশলটির জন্যexchange.GetTicker
মার্কেট ইন্টারফেস ফাংশন, অন্যান্য মার্কেট ইন্টারফেস যেমনঃexchange.GetDepth
, exchange.GetTrades
এবংexchange.GetRecords
স্ট্যান্ডার্ড টেমপ্লেটের জন্যSeamlessConnWS
, আপনি এটি আরও প্রসারিত করার চেষ্টা করতে পারেন।
বিশেষ লিঙ্ক বাস্তবায়নের জন্যwebsocket
টেমপ্লেটে,Dial
ফাংশন (ডায়াল ফাংশন সম্পর্কে এপিআই ডকুমেন্টেশন দেখুন), যা প্রয়োজন অনুযায়ী সামঞ্জস্য করা যেতে পারে। উদাহরণস্বরূপ, আপনি প্যারামিটার -2 নির্দিষ্ট করতে পারেনread()
ফাংশন, যা শুধুমাত্র বাফারে সর্বশেষ তথ্য ফেরত যেwebsocket
সংযোগ গ্রহণ করে।
পড়ার জন্য ধন্যবাদ।