द अल्फा प्रिडेटर हार्ट एंड आर्ट ऑफ़ आरपीसी: क्रिप्टो-क्यूरियस के लिए पायथन कोडिंग

द्वारा: ब्लॉकफोर्स कैपिटल रिसर्च

हमारे पिछले लेख [एपीएम II] में, अल्फा प्रीडेटर धीरे-धीरे बगीचे से दूर भाग रहा था, जबकि हम कुछ झाड़ियों के पीछे से देख रहे थे। काश, अल्फ़ा प्रीडेटर की मोटी भग्न-जैसी पूंछ एक कांटे पर पकड़ी जाती, जो कि शिकार करने वाले के बिना खून की एक बूंद छोड़ती थी। ब्लॉकफोर्स कैपिटल के अल्फा प्रीडेटर के अंदरूनी कामकाज के बारे में जानने के लिए रक्त की यह एक बूंद एक दुर्लभ मौका है। प्रयोगशाला में वापस जाने और इस नमूने को माइक्रोस्कोप के नीचे रखकर, हम पायथन कोड के ठीक संरचना डीएनए को देखना शुरू करते हैं जो शिकारी को जीवन देता है।

हमारी शोध टीम का लक्ष्य एक ऐसा लक्ष्य है जो कोडर्स और क्रिप्टो उत्साही लोगों के व्यापक समुदाय को उन तकनीकों को उजागर करने और समझाने में मदद करता है। यह लेख "टेक कॉर्नर" नामक हमारी नई श्रृंखला में पहला है; तकनीकी और कोडिंग विवरण के लिए हमारे पाठकों के लिए खानपान की एक श्रृंखला। हमें व्यवस्थित डिजिटल परिसंपत्ति व्यापार के लिए अपने अल्फा प्रिडेटर मॉडल (APM) के कोड और विवरण साझा करना चाहिए। हमारा लक्ष्य पारदर्शी और शैक्षिक होना है। यदि आप अद्यतित रहना चाहते हैं, तो कृपया हमारी मेलिंग सूची में शामिल होने पर विचार करें ताकि आप टेक कॉर्नर की हमारी अगली किस्त को याद न करें। चलो शुरू करें!

माइक्रोस्कोप के तहत

APM पायथन में लिखा गया है और नंबर क्रंचिंग के लिए पंडों और NumPy पैकेजों पर निर्भर करता है। यह समर्पित वेब सेवा कंप्यूटिंग संसाधनों पर चलता है और सर्वर की उच्च-उपलब्धता RDS सेवा पर चलने वाले PostgreSQL डेटाबेस से डेटा खींचता है। डेटाबेस खुद को कई अनावश्यक डेटा कलेक्टरों और बायनेरों द्वारा खिलाया जाता है ताकि यह सुनिश्चित हो सके कि एपीएम सबसे ताज़ा बाजार डेटा को खा सकता है।

अल्फा प्रीडेटर अपनी गतिविधियों और निष्कर्षों के विस्तृत लॉग रखता है और विभिन्न चैनलों के माध्यम से व्यापार संकेतों को भेजता है। उनमें स्लैक, टेक्स्ट संदेश, स्वचालित व्यापार निष्पादन के लिए एक कतार प्रणाली और यहां तक ​​कि पोर्टफोलियो प्रबंधकों को डकैती भी शामिल है।

एक समस्या जिसका हमें सामना करना पड़ा, वह इस बारे में अधिक विस्तृत जानकारी प्राप्त करना था कि एपीएम अपने निर्णय कैसे ले रहा है, जिसमें बाजार के आंकड़ों और उसके विश्लेषिकी के ग्राफ शामिल हैं। जैसा कि हमने [APM I] और [APM II] में वर्णित किया है, APM बाज़ार के गुणों के आधार पर निर्णय ट्री का अनुसरण करता है और वर्तमान संस्करण अनुकूलित स्टोकेस्टिक ऑसिलेटर के आधार पर निर्णय लेता है।

सबसे पहले, एक कम तकनीक दृष्टिकोण

हमारा पहला दृष्टिकोण एपीएम की एक ऑफ़लाइन प्रति का उपयोग करना था, जिसमें एपीएम के समान डेटा स्रोत का उपयोग करके स्थिर ग्राफ़ को प्रस्तुत करना था। इस योजना ने हमें लगभग आधा कर दिया, लेकिन दो महत्वपूर्ण समस्याएं थीं। सबसे पहले, हम कभी भी 100% सुनिश्चित नहीं हो सकते हैं कि लाइव एपीएम ऑफ़लाइन प्रतिलिपि के समान डेटा और विश्लेषिकी देख रहा था। इस समस्या को हल करने के लिए, हमें एपीएम कॉन्फ़िगरेशन फ़ाइलों को डबल और ट्रिपल चेक करना पड़ा, जो एपीएम ऑप्टिमाइज़ेशन प्रगति के रूप में बहुत बदल जाते हैं। दूसरी समस्या इस रणनीति का मैनुअल पहलू थी। हमें लाइव APM की जांच के लिए हमेशा ऑफ़लाइन APM को चलाने के लिए किसी की आवश्यकता होती है, जो व्यावहारिक नहीं है।

उस स्पष्ट विकल्प का केवल एक और निम्न-तकनीकी दृष्टिकोण था: एपीएम ने अपने सभी डेटा को हर बार अपडेट करने और व्यापारिक मानदंडों का मूल्यांकन करने के लिए डिस्क में डंप कर दिया। तर्क तब एक स्वचालित कोड लिखने के लिए होता है जो इन आंकड़ों को वेब पेज पर प्रदर्शित ग्राफ़ को प्रस्तुत करने और अद्यतन करने के लिए लेता है। व्यावहारिक होते हुए भी, यह संचार का एकतरफा तरीका है।

RPC दर्ज करें - दूरस्थ प्रक्रिया कॉल

हमारी इंजीनियरिंग टीम एक अधिक शक्तिशाली, द्वि-दिशात्मक, एक चलने वाले एपीएम के साथ बातचीत करने का तरीका लेकर आई है। इसे "दूरस्थ प्रक्रिया कॉल" (RPC) कहा जाता है और इंटरनेट से पहले कंप्यूटिंग के अंधेरे युग में वापस आता है। अपने आधुनिक अवतार में, आरपीसी एक प्रोग्राम को दूसरे रनिंग प्रोग्राम से खुद को जोड़ने की अनुमति देता है। इसके बाद पूर्वनिर्धारित अनुमतियों के आधार पर, बाद के कार्यक्रम के डेटा का निरीक्षण कर सकते हैं और कार्यों को निष्पादित कर सकते हैं। आरपीसी हमें एपीएम के दिल के लिए एक सीधा चैनल रखने की अनुमति देता है: हम इसके सभी लाइव डेटा को निकाल सकते हैं और ग्राफ़ कर सकते हैं, और हम इसके विकास को नियंत्रित करने वाले चर को बदलकर इसके व्यवहार को प्रभावित कर सकते हैं।

यह इंटरैक्शन बेहद शक्तिशाली है। हम इसे APM (हम बाद में विवरण देंगे) में थोड़ा सा कोड जोड़कर और फिर पायथन / फ्लास्क वेब प्रक्रिया से चल रहे APM उदाहरण से जोड़कर लागू करते हैं, जो HTTPS के माध्यम से APM डेटा और अन्तरक्रियाशीलता प्रदान करता है। यहाँ एक स्क्रीनशॉट है कि यह कैसा दिखता है:

उपरोक्त डेटा को प्रदर्शित करने के लिए हम कथानक का उपयोग कर रहे हैं। दिखाया गया है BTC मूल्य (काले रंग में) और% D (लाल) और% स्टोकेस्टिक थरथरानवाला का डीएस (नीला) है। जब भी ये दोनों पार करते हैं तो व्यापार होता है। चयनकर्ता और ऊपर बाईं ओर एक सबमिट बटन RPC एपीएम के साथ बातचीत कैसे करता है, इसका एक उदाहरण है। हम अपने मालिकाना व्यापारिक इंजन का उपयोग करके स्वचालित व्यापार निष्पादन को सक्रिय या निष्क्रिय कर सकते हैं जिसका हम भविष्य में पोस्ट में वर्णन करेंगे। सबसे महत्वपूर्ण बात, उपरोक्त ग्राफ एपीएम के एक जीवित उदाहरण से निकाले गए डेटा के आधार पर तैयार किया गया है!

यह सुपर आसान है!

यह कैसे काम करता है? यह सुपर आसान है! जरूरत है कि सभी एक आधुनिक पायथन दुभाषिया (> = 3.6) और RPyC पैकेज [पाइप स्थापित rpyc], और कोड का एक छोटा सा है। आपके द्वारा स्वयं को आज़माने और चलाने के लिए हमने एक साथ उदाहरण कोड स्निपेट रखे हैं।

पहले, आप अपने प्राथमिक कोड में कुछ RPyC निर्देश जोड़ते हैं जिन्हें आप बाद में बातचीत करना चाहते हैं। यहाँ एक उदाहरण है:

ध्यान देने योग्य बातें: RPCService वह वर्ग है जिसे RPyC द्वारा उजागर किया जाता है। हम वर्ग My_Oject के "my_object" नामक एक ऑब्जेक्ट में गुजर रहे हैं जिसमें "समाधान" नामक एक संपत्ति है। वस्तुओं को उजागर करने के लिए आरपीवाईसी के तंत्र का उपयोग करते हुए, हम "एक्सपोज्ड_गेट_मी_ओबजेक्ट ()" विधि का उपयोग करके "my_object" को उजागर करते हैं।

हम यह भी ध्यान देते हैं कि RPyC को पायथन थ्रेडिंग तंत्र का उपयोग करके लॉन्च किया गया है। RPYC स्थानीय पोर्ट नंबर 12345 पर सुनेगा। यह पृष्ठभूमि में बैठा और चल रहा है जबकि मुख्य कार्यक्रम निष्पादित करना जारी है। इस मामले में, सभी उत्तरार्द्ध हर दो सेकंड में समाधान का प्रिंट आउट निकालते हैं।

यहाँ ग्राहक कोड है यह और भी छोटा है:

तो क्लाइंट प्रोग्राम (जिसे "प्रोसेस" भी कहा जाता है) RPyC सर्वर से कनेक्ट होता है जो पोर्ट 12345 पर सुन रहा है। यह तब उजागर "my_object" ऑब्जेक्ट को पकड़ता है और इसकी सॉल्यूशन प्रॉपर्टी को प्रिंट करता है। अगला, यह 43 के समाधान को अद्यतन करता है।

इसे आज़माने के लिए, पहले RPyC सर्वर (पहला कोड स्निपेट) शुरू करें, फिर क्लाइंट (दूसरा कोड स्निपेट) चलाएँ। आपको इस तरह दिखने वाली सर्वर प्रक्रिया से आउटपुट मिलेगा:

हल: 42

हल: 42

हल: 42

हल: 43

हल: 43

हल: 43

यहां, क्लाइंट के चलने पर 42 से 43 तक परिवर्तन होता है, सर्वर से कनेक्ट होता है, और 42 से 43 तक my_object.solution को संशोधित करता है।

यह ठीक यही है कि हम अपने एपीएम रनों में परिवर्तनशील परिवर्तनों को किस प्रकार से प्रबंधित करते हैं। बेशक, RPyC द्वारा पेश की जाने वाली कार्यक्षमता बहुत अधिक है, जिसमें सर्वर द्वारा चलाए जा रहे कार्यों का दूरस्थ आह्वान और बहुत कुछ शामिल है। यहाँ पर RPyC के प्रलेखन की जाँच करना सुनिश्चित करें

निष्कर्ष

हमें उम्मीद है कि इस पोस्ट ने आपको RPyC को आज़माने के लिए प्रेरित किया और इसे अपने उद्देश्यों के लिए उत्पादक उपयोग में लाया। यह कहने की जरूरत नहीं है कि हम महान प्रशंसक हैं और एपीएम और हमारे सॉफ्टवेयर के बाकी हिस्सों में कई तरह से RPyC का उपयोग करना जारी रखेंगे। हम माइक्रोस्कोप के तहत अल्फा प्रीडेटर के डीएनए का विश्लेषण जारी रखेंगे और भविष्य के टेक कॉर्नर के टुकड़ों में जो कुछ भी हमें यहां मिलेगा, उसे साझा करेंगे। हमारे वर्तमान प्रकाशनों के साथ अद्यतित रहने के लिए नीचे हमारे समाचार पत्र की सदस्यता लें।

ब्लॉकफोर्स कैपिटल यह अनुशंसा नहीं करता है कि यहां प्रस्तुत जानकारी किसी भी निवेश निर्णय के आधार के रूप में काम करे। जानकारी सारांश रूप में दी गई है और पूर्ण होने का उद्देश्य नहीं है। इस सामग्री का एकमात्र उद्देश्य सूचित करना है, और किसी भी तरह से किसी भी सुरक्षा, अन्य निवेश या सेवाओं को खरीदने या बेचने के लिए या किसी फंड या जमा को आकर्षित करने के लिए एक प्रस्ताव या आग्रह नहीं है।

मूल रूप से www.blockforcecapital.com पर प्रकाशित।