Type/to search
8
Follow
1364
Followers
ट्रेडिंग रणनीति बनाने के लिए विज़ुअलाइज़ेशन मॉड्यूल - उन्नत
Original
Created 2019-07-17 10:22:20  Updated 2023-10-24 21:40:50
 3
 4790

img

ट्रेडिंग रणनीति बनाने के लिए विज़ुअलाइज़ेशन मॉड्यूल - उन्नत

दृश्य मॉड्यूल निर्माण की ट्रेडिंग रणनीति सीखें - परिचय अध्याय, और दृश्य मॉड्यूल के निर्माण और स्प्लिसिंग की वैचारिक समझ प्राप्त करें।
फिर अन्य मॉड्यूल का उपयोग करना सीखना आसान हो जाता है।
कुछ अधिक जटिल कार्यों को संयोजित किया जा सकता है।

  • लेनदेन श्रेणी मॉड्यूल

    पिछले अध्ययनों और परीक्षणों में, हम कई "लेनदेन श्रेणी" मॉड्यूल के संपर्क में आए हैं।
    उदाहरण के लिए:
    "एक्सचेंज कोट्स" मॉड्यूल
    "एक्सचेंज ऑबटेन के-लाइन" मॉड्यूल
    ...

    मैं उन चीजों के बारे में विस्तार से नहीं बताऊंगा जो पहले से इस्तेमाल हो चुकी हैं।

    • 1. एक्सचेंजों की संख्या प्राप्त करें

      img

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

      हम वर्तमान में कॉन्फ़िगर किए गए एक्सचेंजों की संख्या प्रिंट करने के लिए सबसे पहले एक सरल संरचना का उपयोग कर सकते हैं:
      img

      वास्तव में, यह निम्नलिखित जावास्क्रिप्ट नीति कोड को कॉल करने जैसा है:

      function main () { Log(exchanges.length) }

      आइये इस संयुक्त मॉड्यूल को चलाने के परिणामों पर नज़र डालें:
      img

      आप देख सकते हैं कि हमने 3 एक्सचेंज ऑब्जेक्ट जोड़े हैं, जो तीन अलग-अलग एक्सचेंज खातों का प्रतिनिधित्व करते हैं, और बैकटेस्ट लॉग आउटपुट परिणाम 3 है।

    • 2. एक्सचेंज का नाम प्राप्त करें

      img

      तीन एक्सचेंज ऑब्जेक्ट जोड़ते समय, ड्रॉप-डाउन बॉक्स में तीन विकल्प दिखाई देंगे।
      लूप मॉड्यूल को पहले से ही लूप प्रकार में सीखें।
      img

      आइए पहले से सशर्त निर्णय मॉड्यूल सीखें:
      img
      निर्णय की स्थिति इस प्रकार लिखी जा सकती है:
      img

      हम जोड़े गए एक्सचेंज नामों पर पुनरावृत्ति करने के लिए लूप मॉड्यूल का उपयोग करते हैं
      यह निर्धारित करने के लिए कि वर्तमान लूप गणना मुद्रित किए जाने वाले एक्सचेंज नाम से मेल खाती है या नहीं, सशर्त निर्णय मॉड्यूल का उपयोग करें।

      img

      बैकटेस्ट रन परिणाम:
      img

      जावास्क्रिप्ट रणनीति कोड की तरह:

      function main () { for (var i = 1 ; i <= exchanges.length ; i++) { if (i == 1) { Log(exchanges[0].GetName()) } else if (i == 2) { Log(exchanges[1].GetName()) } else { Log(exchanges[2].GetName()) } } }
    • 3. एक्सचेंज की वर्तमान ट्रेडिंग जोड़ी प्राप्त करें

      img

      एक सरल उदाहरण वर्तमान में सेट किए गए पहले एक्सचेंज ऑब्जेक्ट की ट्रेडिंग जोड़ी प्राप्त करता है और इसे टेक्स्ट वेरिएबल (वेरिएबल श्रेणी में पहले से बनाया गया) को असाइन करता है।

      img
      बैकटेस्टिंग परिणाम:
      img

      यदि आप जावास्क्रिप्ट नीति कोड को कॉल करते हैं:

      function main () { var text = exchange.GetCurrency() Log(text) }
    • 4. ऑर्डर मॉड्यूल

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

      उदाहरण के लिए, हम वर्तमान टिक बाजार डेटा के नवीनतम मूल्य के आधार पर खरीद ऑर्डर देने का एक उदाहरण बनाएंगे, जिसमें 10 युआन स्लिपेज होगा, ऑर्डर मात्रा 0.1 सिक्कों पर सेट होगी, और ऑर्डर आईडी प्रिंट होगी।
      img

      बैकटेस्ट रन परिणाम:
      img

      निम्नलिखित जावास्क्रिप्ट नीति कोड की तरह:

      function main () { var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1) Log(id) }
    • 5. वर्तमान ट्रेडिंग जोड़ी का सौंपना आदेश प्राप्त करने के लिए मॉड्यूल

      img

      यह मॉड्यूल मौजूदा ट्रेडिंग जोड़ी के लिए सभी अधूरे ऑर्डर लौटाएगा। लौटाई गई संरचना एक सूची (सरणी) है, जिसे सूची प्रकार के मॉड्यूल (ट्रैवर्सल ऑपरेशन, आदि) द्वारा संसाधित किया जा सकता है।
      उदाहरण के लिए: हम ऊपर दिए गए ऑर्डर मॉड्यूल उदाहरण [4] को थोड़ा संशोधित करते हैं और ऑर्डर देते समय जोड़े गए 10 युआन मूल्य को 10 युआन के मूल्य घटाव में बदल देते हैं। आदेश का निष्पादन तुरंत नहीं किया जाएगा, बल्कि खरीद और बिक्री की गहराई में लंबित रहेगा (अर्थात, खरीद 1, खरीद 2 और खरीद एन के बीच एक निश्चित स्तर पर), ताकि आदेश निष्पादन के लिए प्रतीक्षारत एक लंबित आदेश में रहे।
      फिर हम लंबित स्थिति (निष्पादन की प्रतीक्षा में) में ऑर्डरों की सूची प्राप्त करने के लिए "वर्तमान ट्रेडिंग जोड़ी के सौंपे गए ऑर्डर प्राप्त करें" मॉड्यूल का उपयोग करते हैं।
      आगामी बाजार स्थितियों में आदेशों के निष्पादन से बचने और बैकटेस्ट के अंतिम अवलोकन को प्रभावित करने के लिए, "वर्तमान ट्रेडिंग जोड़ी के सौंपे गए आदेश प्राप्त करें" मॉड्यूल के निष्पादित होने और ऑर्डर सूची के प्रिंट आउट होने के बाद, हम तुरंत "अपवाद फेंको" का उपयोग करते हैं " मॉड्यूल का उपयोग कर प्रोग्राम को रोक सकते हैं।

      img

      बैकटेस्टिंग से पता चलता है:
      img

      खरीद आदेश मूल्य उस समय की नवीनतम कीमत से 10 युआन कम है, इसलिए लेनदेन तुरंत पूरा नहीं होगा।
      फिर उन आदेशों को प्राप्त करें जो निष्पादन के लिए प्रतीक्षारत हैं और उन्हें प्रिंट करें।
      अंत में, प्रोग्राम को रोकने के लिए एक अपवाद फेंका जाता है।

      संपूर्ण संयोजित मॉड्यूल एक जावास्क्रिप्ट रणनीति को कॉल करने जैसा है:

      function main () { var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1) Log(id) Log(exchange.GetOrders()) throw "stop" }
    • 6. ऑर्डर रद्द करें मॉड्यूल

      img

      इस मॉड्यूल का उपयोग किसी ऑर्डर को रद्द करने के लिए किया जाता है।

      ऐसे कई परिदृश्य हैं जहां नीतियां लिखते समय इसकी आवश्यकता होती है:

      वर्तमान में लंबित सभी ऑर्डर रद्द करें।

      निस्संदेह, इसके लिए "ऑर्डर कैंसलेशन मॉड्यूल" के उपयोग की आवश्यकता होगी। ऑर्डर कैंसलेशन मॉड्यूल सीखते समय, हम वर्तमान ट्रेडिंग जोड़ी के सौंपे गए ऑर्डर के लिए मॉड्यूल प्राप्त करने के लिए [5] का उपयोग कर सकते हैं और इस फ़ंक्शन को प्राप्त करने के लिए उन्हें संयोजित कर सकते हैं।

      सबसे पहले, सभी ऑर्डर रद्द करने का परीक्षण करने के लिए, ऑर्डर देना बहुत स्पष्ट नहीं है, हम दो ऑर्डर को अलग-अलग कीमतों और मात्राओं के साथ रखकर शुरू करते हैं ताकि दो ऑर्डर को अलग किया जा सके।

      img

      वर्तमान लंबित ऑर्डर सूची में ऑर्डर को पार करने के लिए लूप प्रकार मॉड्यूल में "सूची में प्रत्येक तत्व को पार करें" मॉड्यूल का उपयोग करें।
      img
      ट्रैवर्सल के दौरान, प्रत्येक प्राप्त ऑर्डर को वेरिएबल मॉड्यूल ऑर्डर (वेरिएबल मॉड्यूल प्रकार में बनाया गया, जैसा कि नीचे दिखाया गया है:) को सौंपा जाता है।
      img
      उपकरण प्रकार मॉड्यूल का उपयोग करें:
      img
      ऑर्डर आईडी निकालें और इसे कैंसल ऑर्डर मॉड्यूल की टेनन (अवतल) स्थिति में पास करें, और कैंसल ऑर्डर मॉड्यूल कैंसल ऑर्डर को निष्पादित करता है।

      बैकटेस्ट रन:
      img

      जावास्क्रिप्ट नीति विवरण का उपयोग करना:

      function main () { var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1) Log(id) var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2) Log(id2) var orders = exchange.GetOrders() Log(orders) for (var i in orders) { var order = orders[i] Log(exchange.CancelOrder(order.Id)) } }
    • 7. ऑर्डर आईडी के आधार पर ऑर्डर की विस्तृत जानकारी प्राप्त करने के लिए एक मॉड्यूल

      img

      यह मॉड्यूल ऑर्डर आईडी वेरिएबल मॉड्यूल को मोर्टिस और टेनन स्थिति से जोड़कर विस्तृत ऑर्डर जानकारी लौटा सकता है।

      img

      चलाने के बाद लौटे आदेश पर ध्यान दें:
      img

      [5] उदाहरण में चल रहे परिणामों की तुलना में, यह पाया जा सकता है कि मुद्रित आदेश एक अलग आदेश जानकारी है।[] वर्गाकार कोष्ठकों में लिपटा हुआ।
      क्योंकि उदाहरण [5] एक सूची लौटाता है, यह उदाहरण एकल ऑर्डर जानकारी (मॉड्यूल द्वारा पारित टेनन स्थिति पर आईडी चर मॉड्यूल के आधार पर प्राप्त) लौटाता है।

      उपरोक्त उदाहरण जावास्क्रिप्ट नीति को निष्पादित करने के समतुल्य है:

      function main () { var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1) Log(exchange.GetOrder(id)) }
    • 8. वायदा कारोबार मॉड्यूल

      हम उपरोक्त मॉड्यूलों का एक-एक करके अध्ययन करेंगे, तथा कमोडिटी फ्यूचर्स के लिए परीक्षण एक्सचेंज निर्धारित करेंगे।

      बैकटेस्टिंग सेटिंग्स:
      img
      निम्नलिखित उदाहरण इस सेटअप का बैकटेस्ट करता है।

      • सीटीपी कमोडिटी फ्यूचर्स और फ्यूचर्स कंपनी सर्वर के बीच कनेक्शन की स्थिति का आकलन करने के लिए मॉड्यूल

        img

        कमोडिटी फ्यूचर्स के खुलने और बंद होने का समय होता है। जब बाजार बंद हो जाता है, तो आप कनेक्ट नहीं कर सकते।

      • अनुबंध मॉड्यूल सेट अप करें

        img

        जब एक्सचेंज ऑब्जेक्ट को फ्यूचर्स एक्सचेंज के रूप में कॉन्फ़िगर किया जाता है, यदि आप अनुबंध सेट नहीं करते हैं और सीधे बाजार की जानकारी प्राप्त करते हैं, तो एक त्रुटि रिपोर्ट की जाएगी:
        img

        हमने अनुबंध को MA909 पर सेट किया है, जो मेथनॉल के लिए वर्तमान मुख्य अनुबंध है।
        img
        इस तरह, MA909 अनुबंध के वर्तमान टिक बाजार में नवीनतम मूल्य मूल्य प्राप्त किया जाता है।

      • वायदा कारोबार आदेश दिशा मॉड्यूल सेट अप करें

        निष्पादन आदेश मॉड्यूल में
        img
        ऑर्डर दिशा को निर्दिष्ट करना आवश्यक है क्योंकि वायदा में:
        खरीदें: एक लंबी स्थिति खोलें
        बेचना : छोटी स्थिति खोलना
        क्लोजबाय : लंबी स्थिति को बंद करें
        क्लोजसेल : शॉर्ट पोजीशन बंद करना
        चार दिशाएं (कमोडिटी वायदा की दो और दिशाएं हैं: closebuy_today आज लॉन्ग पोजीशन बंद करता है, closesell_today आज शॉर्ट पोजीशन बंद करता है)।

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

        img

        बैकटेस्टिंग से पता चलता है:
        img

        जावास्क्रिप्ट रणनीति कोड की तरह:

        function main () { while (true) { if (exchange.IO("status")) { exchange.SetContractType("MA909") Log(exchange.GetTicker().Last) exchange.SetDirection("buy") Log(exchange.Buy(1000, 1)) throw "stop" } else { Log("未连接商品期货前置机") } Sleep(1000) } }
    • 9. क्रिप्टोकरेंसी वायदा ट्रेडिंग मॉड्यूल

      डिजिटल मुद्रा वायदा का उपयोग मूल रूप से ऊपर [8] में कमोडिटी वायदा के उपयोग के समान है।

      • OKEX को उदाहरण के रूप में लेते हुए, अनुबंध कोड हो सकता है:

        • this_week : इस सप्ताह
        • अगला_सप्ताह : अगले सप्ताह
        • तिमाही : तिमाही
        • स्वैप : शाश्वत
      • BitMEX :

        • XBTUSD
        • ETHUSD
      • लीवरेज मॉड्यूल सेट करना

        img

        डिजिटल मुद्रा वायदा के लिए उत्तोलन निर्धारित करने के लिए उपयोग किया जाता है।

        # 注意 : 回测不支持。

        जावास्क्रिप्ट रणनीति के अनुसार:

        function main () { exchange.SetMarginLevel(10) }

विज़ुअलाइज़ेशन उदाहरण रणनीति:

अधिक रणनीतियाँ यहां उपलब्ध हैं: https://www.fmz.com/square

इस श्रृंखला के अन्य लेख

बिल्डिंग ब्लॉक्स का उपयोग करके बोरिंग प्रोग्रामिंग को आसानी से पूरा किया जा सकता है। इसे आज़माएँ, यह बहुत दिलचस्प है!

Related Recommendations
Comment
All comments (2)

    学了一个多月编程还是写不了策略,,现在全靠积木了!

    7 years ago

    感谢支持,这个系列文章会继续做的。
    其实根据每个范例后面对应的JavaScript策略代码,很容易就能掌握用JS 写策略的。

    7 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)