संसाधन लोड हो रहा है... लोड करना...

अपना खुद का ट्रेडिंग बॉट कैसे बनाएं

लेखक:अच्छाई, बनाया गयाः 2019-03-16 10:29:22, अद्यतन किया गयाः 2019-03-16 10:29:54

प्रस्तावना

मैं निश्चित रूप से एक महान प्रोग्रामर नहीं हूं, लेकिन इस परियोजना को लिखना मुझे बहुत कुछ सिखाता है (और मुझे व्यस्त रखता है) । मेरे अधिकांश कोड पर किए गए थेFMZ.COM, और अगर मैं पायथन कोड refactoring करने के लिए मैं एक अधिक वस्तु उन्मुख मॉडल का उपयोग करेंगे. फिर भी, मैं सुखद परिणाम के साथ आश्चर्यचकित था मैं मिला और बॉट अब तक लगभग 100% ईथर लाभ बना दिया है.

यह क्या करता है? यह एक मध्यस्थता बॉट है। इसका मतलब है कि यह दो (या अधिक) एक्सचेंजों पर कीमतों के बीच अंतर का व्यापार करने से पैसा कमाता है। अब तक यह एकतरफा है और केवल एथर्डेल्टा और बिट्रेक्स के बीच व्यापार करता हैः वे लगभग बीस एथ / टोकन जोड़े साझा करते हैं। यहां यह कैसे काम करता है यह दिखाने के लिए एक आरेख हैःimgकोष्ठक के बाद शब्द एथेरियम लेनदेन हैं जो एक स्मार्ट अनुबंध फ़ंक्शन कॉल को बुलाते हैं।

संहिता

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

यहाँ कोड मैं hexadecimal के रूप में एथरडेल्टा json एपीआई प्रतिक्रियाओं को एन्कोड करने के लिए इस्तेमाल किया है, rlp एन्कोड, एथेरियम लेनदेन (कमजोर दिल के लिए नहीं):img

नीचे बंद में कच्चे हेक्साडेसिमल मान प्रत्येक फ़ंक्शन के अनुरूप फ़ंक्शन हस्ताक्षर हैं। एक फ़ंक्शन हस्ताक्षर फ़ंक्शन और उसके तर्क के केक्काक से प्राप्त होता है। इसे लेनदेन के डेटा पैरामीटर से जोड़ा जाना चाहिए जिसके बाद डेटा जो तर्क बनाते हैं। कुल मिलाकर मेरा कोड लगभग 400 लाइनों लंबा है और 5 अलग-अलग फ़ाइलों में निहित है।

परिणाम

मैंने pymatplotlib का उपयोग करके लॉग किए गए डेटा से कुछ ग्राफ बनाए।img img img

निष्कर्ष

कुल मिलाकर पूरे परियोजना मुझे स्कूल में मेरे खाली समय के दौरान लगभग दो सप्ताह लग गए और यह चारों ओर एक विस्फोट था. मैं जोरदार कोडिंग से एक ब्रेक लिया है और वर्तमान में नियोजन के लिए प्रक्रिया में कर रहे हैं मध्यस्थता बॉट v2। अगले संस्करण में शामिल करने के लिए जा रहा है 86 विभिन्न एक्सचेंजों और व्यापार जोड़े का एक पूरा बहुत.

चाँद के लिए!


अधिक