कमोडिटी फ्यूचर्स सीटीपी और क्रिप्टोक्यूरेंसी एपीआई एक्सचेंज में महत्वपूर्ण अंतर हैं। क्रिप्टोक्यूरेंसी एक्सचेंज प्रोग्रामिंग ट्रेडिंग से परिचित होने का मतलब कमोडिटी फ्यूचर्स सीटीपी प्रोग्रामिंग से परिचित नहीं है। हम विधि और अनुभव की नकल नहीं कर सकते। यह लेख उनके बीच समानता और अंतर को सारांशित करेगा।
सीटीपी इंटरफेस ऐतिहासिक बाजार उद्धरण प्रदान नहीं करता है, और ऐतिहासिक बाजार उद्धरण को बाजार उद्धरण एजेंसी के माध्यम से हल करने की आवश्यकता है। यदि लॉग इन करने में विफलता के कारण बाजार डेटा खो जाता है, तो सीटीपी बाजार पुनःपूर्ति तंत्र प्रदान नहीं करता है। ऐतिहासिक बाजार उद्धरण केवल तीसरे पक्ष के एजेंसी के माध्यम से प्राप्त किए जा सकते हैं। अधिकांश क्रिप्टोक्यूरेंसी एक्सचेंज आमतौर पर के-लाइन और लेनदेन इतिहास प्राप्त करने के लिए एक इंटरफ़ेस प्रदान करते हैं।
क्रिप्टोक्यूरेंसी एक्सचेंज एपीआई आम तौर पर एकREST
औरwebsocket
प्रोटोकॉल. सीटीपी आंतरिक रूप से नेटवर्क से संबंधित तर्क को कैप्सूल करता है और टीसीपी प्रोटोकॉल के आधार पर एफटीडी प्रोटोकॉल का उपयोग करके सीटीपी पृष्ठभूमि के साथ संवाद करता है। तीन मोड में विभाजितः
अनुरोध प्रतिक्रिया मोडः क्लाइंट एक अनुरोध शुरू करता है, और सीटीपी पृष्ठभूमि अनुरोध प्राप्त करता है और प्रतिक्रिया देता है।
प्रसारण संचार मोडः ग्राहक द्वारा अनुबंध बाजार कोट को सब्सक्राइब करने के बाद, सीटीपी प्रसारण के माध्यम से बाजार कोट को आगे बढ़ाता है।
निजी संचार मोडः ग्राहक के अनुबंध के आदेश देने के बाद, सीटीपी द्वारा ऑर्डर की जानकारी, लेनदेन की वापसी आदि को बिंदु से बिंदु तक भेजा जाता है।
सीटीपी समझौते के सभी उद्धरण और ऑर्डर लेनदेन परिवर्तन के बाद अधिसूचित किए जाएंगे, जबकि पूछताछ आदेश, खाते और पदों को सक्रिय रूप से क्वेरी किया जाता है। उपरोक्त तीन मोड क्रिप्टोक्यूरेंसी एक्सचेंज एपीआई में समान रूप पा सकते हैं।
सीटीपी प्रोटोकॉल की गहराई केवल नवीनतम खरीद और बिक्री मूल्य हैं, पांच परत खरीद और बिक्री मूल्य जैसे गहरे बाजार उद्धरण महंगे हैं, आपको इसे प्राप्त करने के लिए वायदा विनिमय को अतिरिक्त धन का भुगतान करने की आवश्यकता है। दूसरी ओर, क्रिप्टोक्यूरेंसी एक्सचेंज आम तौर पर खरीद और बिक्री की कीमतों की 200 परतों तक पूरी गहराई प्राप्त कर सकता है।
इसके अलावा, सीटीपी वास्तविक लेनदेन उद्धरणों को धक्का नहीं देता है, इसे केवल स्थिति परिवर्तनों द्वारा उलट दिया जा सकता है, और क्रिप्टोक्यूरेंसी एक्सचेंज एपीआई वास्तविक विस्तृत लेनदेन उद्धरण प्राप्त कर सकता है। सीटीपी प्लेटफॉर्म का बाजार डेटा टिक स्तर 2 टिक प्रति सेकंड है। अधिकांश क्रिप्टोक्यूरेंसी एक्सचेंज वेबसॉकेट प्रति सेकंड 10 टिक तक कर सकते हैं।
क्रिप्टोक्यूरेंसी एक्सचेंजों को आम तौर पर प्रति सेकंड 10 टिक तक सीमित किया जाता है। ऑर्डर निकासी के लिए कोई विशेष आवश्यकताएं नहीं हैं। सीटीपी के पास सक्रिय रूप से भेजे जाने वाले अनुरोधों पर सख्त प्रतिबंध हैं। आम तौर पर, प्रति 2 सेकंड एक बार काफी सुरक्षित है, और निकासी की संख्या के लिए भी आवश्यकताएं हैं।
सीटीपी प्रोटोकॉल बहुत स्थिर है और इसमें लगभग कोई त्रुटि या नेटवर्क समस्या नहीं है। क्रिप्टोक्यूरेंसी एक्सचेंज के कारण कम प्रतिबंध, अधिक लेनदेन समय, सिस्टम रखरखाव, डेटा देरी और नेटवर्क त्रुटियां बहुत आम हैं।
बाजार इंटरफ़ेस जैसे प्राप्त करने के लिए CTP डिफ़ॉल्ट मोडGetTicker
, GetDepth
, GetRecords
नवीनतम प्राप्त करने के लिए कैश किए गए डेटा हैं, यदि कोई डेटा नहीं है जब तक वहाँ डेटा है इंतजार करेंगे, इसलिए रणनीति का उपयोग नहीं कर सकतेSleep
जब बाजार में उद्धरण में परिवर्तन होता है,ticker
, depth
, औरrecords
अद्यतन किया जाएगा. इस बिंदु पर, किसी भी इंटरफ़ेस को तुरंत वापस कर दिया जाएगा जब यह कहा जाता है. तो बुलाया इंटरफ़ेस स्थिति अद्यतन मोड के लिए प्रतीक्षा करने के लिए सेट है, अगली बार जब एक ही इंटरफ़ेस कहा जाता है, यह नए डेटा लौटने के लिए इंतजार करेंगे.
कुछ अलोकप्रिय ट्रेडिंग कॉन्ट्रैक्ट या कीमत दैनिक सीमित मूल्य तक पहुंच जाती है जो किसी भी ट्रेडिंग गतिविधियों के बिना लंबे समय तक होती है, जो रणनीति के लिए लंबे समय तक अटक जाने के लिए सामान्य है।
यदि आप डेटा हर बार जब आप बाजार उद्धरण मिलता है प्राप्त करना चाहते हैं, यहां तक कि पुराने डेटा, आप बाजार तुरंत अद्यतन मोड पर स्विच कर सकते हैंexchange.IO ("mode", 0)
. इस बिंदु पर, रणनीति एक घटना ड्राइवर के रूप में नहीं लिखा जा सकता है. आप एक जोड़ने की जरूरत हैSLeep
कुछ कम आवृत्ति रणनीतियों इस मोड का उपयोग कर सकते हैं, और रणनीति डिजाइन सरल है।exchange.IO("mode", 1)
डिफ़ॉल्ट कैश मोड पर वापस स्विच करने के लिए.
एक एकल अनुबंध संचालित करते समय, डिफ़ॉल्ट मोड का उपयोग करना ठीक होगा। हालांकि, यदि कई ट्रेडिंग अनुबंध हैं, तो यह संभव है कि एक अनुबंध को अपडेट नहीं किया गया है, जिसके परिणामस्वरूप बाजार इंटरफ़ेस अवरुद्ध हो गया है, और अन्य ट्रेडिंग अनुबंध बाजार उद्धरण अपडेट उपलब्ध नहीं हैं। इस समस्या को हल करने के लिए, आप तत्काल अद्यतन मोड का उपयोग कर सकते हैं, लेकिन उच्च आवृत्ति रणनीति लिखना सुविधाजनक नहीं है। इस बिंदु पर आप आदेशों और उद्धरणों का पुश प्राप्त करने के लिए घटना पुश मोड का उपयोग कर सकते हैं। सेटिंग विधि हैexchange.IO("wait")
. यदि कई विनिमय वस्तुओं को जोड़ा जाता है, यह कमोडिटी वायदा व्यापार में दुर्लभ स्थिति है, आप उपयोग कर सकते हैंexchange.IO ("wait_any")
, और लौटायाindex
लौटाए गए विनिमय का सूचकांक दर्शाएगा।
बाजार उद्धरणtick
परिवर्तन दबाएँः
{Event:"tick", Index: exchange index (in the order of robot exchange added), Nano: event nanosecond time, Symbol: contract name}
आदेश धक्काः
{Event:"order", Index: Exchange Index, Nano: Event Nanosecond Time, Order: Order Information (consistent with GetOrder)}
इस बिंदु पर रणनीति संरचना को इस प्रकार लिखा जा सकता हैः
function on_tick(symbol){
Log("symbol update")
exchange.SetContractType(symbol)
Log(exchange.GetTicker())
}
function on_order(order){
Log("order update", order)
}
function main(){
while(true){
if(exchange.IO("status")){ //Determine the link status
exchange.IO("mode", 0)
_C (exchange.SetContractType, "MA888") // subscribe to the MA, only the first time is the real request to send a subscription, the following are just program switch, won't consume any time.
_C(exchange.SetContractType, "rb888") // Subscribe rb
While(True){
Var e = exchange.IO("wait")
If(e){
If(e.event == "tick"){
On_tick(e.Symbol)
}else if(e.event == "order"){
On_order(e.Order)
}
}
}
}else{
Sleep(10*1000)
}
}
}