स्क्वायर पेज पर कई रोचक रणनीतियाँ हैं (https://www.fmz.com/squareउस समय, अधिकांश क्रिप्टोक्यूरेंसी एक्सचेंजों एपीआई इंटरफ़ेस का उपयोग कर रहे थेrest
प्रोटोकॉल, कई रणनीतियाँrest
इसलिए कभी-कभी बाजार उद्धरण अद्यतन धीमा होता है। इसके अलावा कुछ मामले ऐसे भी आए हैं जिनमें एक्सचेंजrest
इंटरफ़ेस निकट भविष्य में विफल हो गया है, जिसके परिणामस्वरूप एक रणनीति है कि ठीक से प्रदर्शन नहीं कर सकता है।
जब तक रणनीति को संशोधित किया जाता है, तब तक वेबसॉकेट इंटरफ़ेस के लिए समर्थन जोड़ने के लिए रणनीति कोड में कुछ परिवर्तन की आवश्यकता होती है, जो आमतौर पर काफी परेशानी भरा होता है (नीति को बदलने की कठिनाई इसे फिर से लिखने से बहुत अधिक होती है) ।
कैसे हम रणनीति कोड नहीं बदल सकते हैं, लेकिन वेबसॉकेट बाजार बोली इंटरफ़ेस का उपयोग करें?
यहाँ एफएमजेड क्वांट प्लेटफॉर्म की पूरी लचीलापन है, हम उपयोग कर सकते हैंः
रणनीति
विनिमय बाजार में उद्धरण प्राप्त करने के लिए exchange.GetTicker
.
इस प्रकार, रणनीति कोड को बदलने के बिना, डेटा का उपयोग करने वाली रणनीति को डेटा द्वारा संचालित और धक्का दिया जाता हैwebsocket
बाज़ार इंटरफेस।
कोड लेखन भाषा जावास्क्रिप्ट प्रोग्रामिंग भाषा का उपयोग करती है।
उदाहरण के लिए, जब हमें एक क्लासिक रणनीति को संशोधित करने की आवश्यकता होती है
रणनीतिक पता:https://www.fmz.com/strategy/9929
आइए रणनीति कोड पर एक नज़र डालें और देखें कि रणनीतिtick
यह मुख्य रूप से के गुणों का उपयोग करता हैBuy
, Sell
, औरLast
मेंticker
डेटा।ticker
डेटा FMZ क्वांट प्लेटफॉर्म के एपीआई फ़ंक्शन द्वारा प्राप्त किया जाता हैःexchange.GetTicker
. लक्ष्य अब स्पष्ट है, हम बदल सकते हैंexchange.GetTicker
कार्य के साथHook
ऑपरेशन (यानी इसे दूसरे संस्करण से प्रतिस्थापित करें) ।
हालाँकि, हम इसे
तो हमें अगले नायक को डेब्यू करने की जरूरत है।
हम एक
फिर 2 पैरामीटर सेट करने के लिएSeamlessConnWS
template.
इन दोनों का उपयोग नियंत्रण करने के लिए किया जाता है कि क्या उपयोग करने के लिएwebsocket
इंटरफ़ेस समारोह, और नियंत्रण एक विशिष्ट बाजार बोली इंटरफ़ेस खोलने के लिए निर्दिष्ट करता है। इस लेख की सीमा के कारण, हम केवल पूर्वhook
के लिए ऑपरेशनexchange.GetTicker
इंटरफ़ेस. इसलिए हम पैरामीटर सक्षम करने की जरूरत है ((Hook_GetTicker
) केGetTicker
इंटरफेसwebsocket
mode.
एक बार टेम्पलेट बनाया है, हम एक्सचेंजwebsocket
टेम्पलेट में इंटरफ़ेस, कुछ उद्धरणों की सदस्यता लें, और फिर एक्सचेंज के फ़ंक्शन कोड के लिए डेटा को धक्का देने के लिए प्रतीक्षा करें। विशिष्ट कोड यहाँ वर्णित नहीं है, आप संदर्भित कर सकते हैंSeamlessConnWS
कोड (पहले से ही ओपन सोर्स) और एफएमजेड क्वांट आधिकारिक एपीआई दस्तावेज।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.
इसे चलाएँः
ताकि आसानी से धक्का दिया डेटा देखने के लिए, पंक्ति 157 पर, हम विशेष रूप से एक प्रिंट लॉग कोड जोड़ा, यह एक्सचेंज द्वारा धक्का दिया डेटा आउटपुट होगा।
रोबोट लॉग पर प्रदर्शित करेंः
इस तरह, हमें रणनीति कोड की किसी भी पंक्ति को संशोधित करने की आवश्यकता नहीं है, औरwebsocket
बाज़ार इंटरफेस।
यह उदाहरण केवल उपयोग की रणनीति के लिए हैexchange.GetTicker
बाजार इंटरफेस फ़ंक्शन, अन्य बाजार इंटरफेस जैसेexchange.GetDepth
, exchange.GetTrades
औरexchange.GetRecords
मानक टेम्पलेट के लिएSeamlessConnWS
, आप इसे और विस्तारित करने की कोशिश कर सकते हैं।
विशिष्ट लिंक के कार्यान्वयन के लिएwebsocket
टेम्पलेट में,Dial
फ़ंक्शन (डायल फ़ंक्शन के बारे में एपीआई प्रलेखन देखें), जिसे आवश्यकता के अनुसार समायोजित किया जा सकता है। उदाहरण के लिए आप पैरामीटर -2 को निर्दिष्ट कर सकते हैंread()
फ़ंक्शन, जो बफर में केवल नवीनतम डेटा लौटाता हैwebsocket
कनेक्शन स्वीकार करता है।
पढ़ने के लिए धन्यवाद