विजुअल (ब्लॉकली) रणनीति संपादन द्वारा कस्टम टेम्पलेट का विस्तार करना

लेखक:निनाबादास, बनाया गयाः 2022-04-27 10:01:48, अद्यतन किया गयाः 2022-04-27 10:12:55

दृश्य (ब्लॉकली) रणनीति संपादन द्वारा कस्टम टेम्पलेट का विस्तार करना

कैसे अनुकूलित पुस्तकालय आप दृश्य रणनीतियों के लिए की जरूरत का विस्तार करने के लिए? उदाहरण के लिए, मैं एमए संकेतक की गणना करना चाहते हैं, लेकिन प्रणाली केवल के साथ आता हैः

img

इन संकेतकों. मैं उन संकेतकों के लिए कुछ कस्टम कोड कैसे जोड़ सकते हैं? आइए एक उदाहरण के रूप में एक कस्टम एमए संकेतक गणना मॉड्यूल जोड़ने का उपयोग करें ताकि विज़ुअलाइज़ेशन मॉड्यूल का विस्तार कैसे किया जा सके।

क्रिप्टोकरेंसी स्पॉट ट्रेडिंग टेम्पलेट

आइए टेम्पलेट क्रिप्टोक्यूरेंसी स्पॉट ट्रेडिंग लाइब्रेरी के बारे में बात करते हैं; पता हैःhttps://www.fmz.com/strategy/10989. यद्यपि यह टेम्पलेट एफएमजेड प्लेटफॉर्म का जावास्क्रिप्ट संस्करण टेम्पलेट है (उन छात्रों के लिए जो टेम्पलेट की अवधारणा को नहीं समझते हैं, आप अधिक जानकारी के लिए एफएमजेड एपीआई प्रलेखन पर जा सकते हैंःhttps://www.fmz.com/api#template. टेम्पलेट की शुरुआत में टिप्पणियों में वह कोड होता है जो विज़ुअलाइज़ेशन मॉड्यूल को परिभाषित करता है, और जावास्क्रिप्ट टेम्पलेट के कोड को परिभाषित कोड में संदर्भित किया जा सकता है। यह हमारे लिए खुद से विस्तार करने के लिए बहुत सुविधाजनक है (जो हमारे लिए सीखने और अनुकरण करने के लिए एक अच्छा उदाहरण है) ।

क्रिप्टोकरेंसी स्पॉट ट्रेडिंग लाइब्रेरी; शुरुआत में विज़ुअलाइज़ेशन परिभाषाः

/*blockly
    {
        "type": "ext_Trade",
        "message0": "%1 symbol amount %2|%1 Coins %2",
        "args0": [{
            "type": "field_dropdown",
            "options": [
                ["bid|Buy", "Buy"],
                ["ask|Sell", "Sell"]
            ]
        }, {
            "type": "input_value",
            "check": "Number"
        }],
        "template": "(function(){var r = $.%1(%2); return r ? r.amount : 0; })()",
        "order": "ORDER_ATOMIC",
        "output": "Number",
        "colour": 85
    }, {
        "type": "ext_CancelPendingOrders",
        "message0": "cancel %1 orders|Cancel %1 Orders",
        "args0": [{
            "type": "field_dropdown",
            "name": "TYPE",
            "options": [
                ["all|All", " "],
                ["buy order|Buy", "ORDER_TYPE_BUY"],
                ["sell order|Sell", "ORDER_TYPE_SELL"]
            ]
        }],
        "previousStatement": null,
        "nextStatement": null,
        "template": "$.CancelPendingOrders(%1);",
        "colour": 85
    }, {
        "type": "ext_Cross",
        "message0": "calculate cross period %1 and %2|Cross Period %1 and %2",
        "inputsInline": true,
        "args0": [{
            "type": "input_value"
        }, {
            "type": "input_value"
        }],
        "template": "$.Cross(%1,%2)",
        "order": "ORDER_ATOMIC",
        "output": "Number"
    }, {
        "type": "ext_GetAccount",
        "message0": "obtain asset information|GetAccount",
        "template": "$.GetAccount()",
        "order": "ORDER_ATOMIC",
        "output": null
    }
*/

विजुअल (ब्लॉकली) संपादन पृष्ठ में क्रमशः मॉड्यूलों के अनुरूपःimg

एमए की गणना करने के लिए कस्टम मॉड्यूल बनाएं

तैयार उदाहरण के साथ, इसे स्वयं बनाना बहुत सरल है, जैसे यांत्रिक रूप से नकल करना।

सबसे पहले, जावास्क्रिप्ट भाषा में एक नया टेम्पलेट बनाएं।img

टेम्पलेट कोड संपादित करें.

/*blockly
    {
        "type": "ext_testA",
        "message0": "testA|testA",
        "template": "function(){return 99;}()",
        "order": "ORDER_ATOMIC",
        "output": "Number"
    },{
        "type": "ext_MA",
        "message0": "MA period %1| MA Period %1",
        "args0": [{
            "type": "input_value",
            "check": "Number"
        }],
        "template": "(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()",
        "order": "ORDER_ATOMIC",
        "output": null,
        "colour": 85
    }
*/
  • प्रकार: एक मॉड्यूल प्रकार को विशेषता द्वारा परिभाषित करने के लिए, और नामकरण द्वारा मॉड्यूल को परिभाषित करने के लिए।
  • message0: एक मॉड्यूल पर पाठ प्रदर्शित करने के लिए
  • टेम्पलेटः मॉड्यूल द्वारा निष्पादित कोड
  • आउटपुटः मॉड्यूल द्वारा निर्यात किया गया प्रकार
  • args0: एक मॉड्यूल द्वारा आयातित पैरामीटर; मॉड्यूल परिभाषा कोड में, %1 पहले आयातित पैरामीटर का प्रतिनिधित्व करता है, और %2 दूसरे का प्रतिनिधित्व करता है

नए टेम्पलेट को संपादित करने के बाद, इसे सहेजें. रणनीति में जहां हम इस टेम्पलेट का उपयोग करने की जरूरत है, टेम्पलेट की जाँच करें.img

आप देख सकते हैं कि दो अतिरिक्त मॉड्यूल हैंः

  • img

    मॉड्यूल नामितः परीक्षण ए. चलो निष्पादन कोड पर एक नज़र डालते हैंःimg

    function(){return 99;}()
    

    यह एक बहुत ही सरल जावास्क्रिप्ट फ़ंक्शन है जो निष्पादित होने पर 99 का मान लौटाता है.

  • img

    मॉड्यूल नामितः एमए अवधि. चलो निष्पादन कोड पर एक नज़र डालते हैंः

    img

    (function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
    

    कोड एक गुमनाम फ़ंक्शन कॉल है। गुमनाम फ़ंक्शन पहले K-लाइन डेटा प्राप्त करने के लिए ऑपरेशन निष्पादित करता है, अर्थात् K-लाइन डेटाr. फिर, प्राप्त r के अनुसारnullया कि क्याrपैरामीटर से कम है%1मॉड्यूल में आयात किया, वापस करने के लिए न्यायाधीशfalseया संकेतक के परिणाम को लौटाता है, जो किTA.MA(r, %1).

यह अगले उपयोग के लिए तैयार है।

एमए संकेतक की गणना के लिए परीक्षण

विजुअल (ब्लॉकली) रणनीति संपादनःimg

ऑपरेशन:img

यह देखा जा सकता है कि एमए सूचक द्वारा गणना किए गए आंकड़े वांछित रूप से प्राप्त किए गए हैं।

उपरोक्त केवल विज़ुअलाइज़ेशन मॉड्यूल के डिजाइन के लिए एक उदाहरण है, इसलिए आप अपने आप को विस्तार करने के लिए टेम्पलेट फ़ंक्शन का उपयोग कर सकते हैं.


अधिक