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

लेखक:लिडिया, बनाया गयाः 2022-12-13 14:11:36, अद्यतन किया गयाः 2023-09-20 09:53:59

img

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

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

ट्रेडिंग श्रेणी मॉड्यूल

पिछले सीखने और परीक्षण में, हमें कई ट्रेडिंग श्रेणी मॉड्यूल के संपर्क में लाया गया है। उदाहरण के लिए: एक्सचेंज गेट टिकर मॉड्यूल एक्सचेंज गेट OHLC मॉड्यूल ...

जो प्रयोग किये गये हैं, उन्हें यहाँ दोहराया नहीं जाएगा।

1. आदान-प्रदान की संख्या प्राप्त करें

img

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

हम एक सरल संरचना में वर्तमान में विन्यस्त एक्सचेंजों की संख्या मुद्रित कर सकते हैंः

img

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

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

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

img img img

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

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

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

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

सभी मौजूदा लंबित आदेशों को रद्द करें।

इसमें कोई संदेह नहीं है कि Cancel order module का उपयोग किया जाना चाहिए। cancel order module को सीखने के दौरान, हम वर्तमान ट्रेडिंग जोड़ी मॉड्यूल के लंबित ऑर्डर प्राप्त करने के लिए [5] का उपयोग कर सकते हैं, और इस फ़ंक्शन को प्राप्त करने के लिए गठबंधन कर सकते हैं।

सबसे पहले, सभी आदेशों के रद्द करने का परीक्षण करने के लिए, यह एक आदेश रखने के लिए स्पष्ट नहीं है। हम 2 आदेश रखने के लिए शुरू करते हैं, उनकी कीमतों और मात्रा दोनों आदेशों को अलग करने के लिए अलग हैं।

img

प्रतीक्षा आदेशों की वर्तमान सूची में आदेशों को पार करने के लिए लूप मॉड्यूल में लिस्ट मॉड्यूल में प्रत्येक तत्व को पार करें का उपयोग करें.

img

traversal के दौरान, प्रत्येक प्राप्त आदेश को चर मॉड्यूल आदेश को एक मान आवंटित किया जाता है (विभिन्न मॉड्यूल प्रकार में बनाया गया है, जैसा कि नीचे दिखाया गया है:)

img

Util मॉड्यूल का प्रयोग करेंः

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

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

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

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

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

निष्पादित आदेश मॉड्यूल में

img

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

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

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("The commodity futures front-end processor is not connected")
        }
        Sleep(1000)
    }
}

9. डिजिटल मुद्रा वायदा व्यापार मॉड्यूल

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

  • OKEX को उदाहरण के रूप में लेते हुए, अनुबंध कोड हो सकता हैः
    • this_week: इस सप्ताह
    • next_week: अगले सप्ताह
    • तिमाही: तिमाही
    • स्वैप: स्थायी
  • बिटकॉइनः
    • XBTUSD
    • ETHUSD
  • सेट लीवरेज मॉड्यूल

img

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

#Note: Backtesting is not supported.

जावास्क्रिप्ट रणनीति की तरहः

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

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

https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318अधिक रणनीतियों के लिए, कृपया देखेंःhttps://www.fmz.com/square

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

  • ट्रेडिंग रणनीतियों के निर्माण के लिए विज़ुअलाइज़ेशन मॉड्यूल - गहन (https://www.fmz.com/digest-topic/9509) ट्रेडिंग रणनीति के निर्माण के लिए विज़ुअलाइज़ेशन मॉड्यूल - पहला परिचित (https://www.fmz.com/bbs-topic/9814) बोरिंग प्रोग्रामिंग को आसानी से बिल्डिंग ब्लॉकों से पूरा किया जा सकता है। यह कोशिश करना बहुत दिलचस्प है!

संबंधित

अधिक