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

अन्य संरचना

HttpQuery विकल्प

इस JSON संरचना का उपयोग HttpQuery फ़ंक्शन के पैरामीटर और HttpQuery_Go फ़ंक्शन को Http अनुरोध भेजने के लिए कॉन्फ़िगर करने के लिए किया जाता है.

अनुरोध विधि, उदाहरण के लिएःGET, POSTआदि। विधि स्ट्रिंग अनुरोध शरीर. उदाहरण के लिए, एक POST अनुरोध में, शरीर में फॉर्म डेटा, JSON, पाठ आदि हो सकते हैं. शरीर स्ट्रिंग उदाहरण के लिए, शरीर में पाठ डेटा का एन्कोडिंग निर्दिष्ट करेंः"UTF-8". चार्सेट स्ट्रिंग कुकी एक क्लाइंट (आमतौर पर ब्राउज़र) और सर्वर के बीच स्थिति की जानकारी को संग्रहीत करने और विनिमय करने के लिए उपयोग किए जाने वाले डेटा का एक छोटा सा टुकड़ा है। कुकी स्ट्रिंग ब्राउज़र के फिंगरप्रिंट का अनुकरण करने के लिए प्रयोग किया जाता है। प्रोफ़ाइल स्ट्रिंग जब सही पर सेट किया जाता है, तो HttpQuery फ़ंक्शन कॉल पूर्ण प्रतिक्रिया संदेश लौटाता है. जब गलत पर सेट किया जाता है, तो केवल प्रतिक्रिया संदेश शरीर में डेटा लौटाया जाता है. डिबग बोल अनुरोध हेडर की जानकारी कुंजी-मूल्य जोड़े (जेएसओएन संरचना) के रूप में मौजूद है और इसका उपयोग विभिन्न जानकारी, जैसे कि सामग्री प्रकार, प्रमाणीकरण जानकारी, कैश नियंत्रण आदि को प्रसारित करने के लिए किया जाता है। हेडर JSON टाइमआउट सेटिंग. 1000 सेट करने का अर्थ है 1 सेकंड का टाइमआउट. टाइमआउट संख्या

उपयोग का उदाहरण:

function main() {
    var options = {
        method: "POST",
        body: "a=10&b=20&c=30",
        charset: "UTF-8",
        cookie: "session_id=12345; lang=en",
        profile: "chrome_103",
        debug: false,
        headers: {"TEST-HTTP-QUERY": "123"},
        timeout: 1000
    }
    var ret = HttpQuery("http://127.0.0.1:8080", options)
    Log(ret)
}

उपरोक्त कोड निष्पादित होने पर भेजा गया http संदेशः

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session_id=12345; lang=en
Host: 127.0.0.1:8080
Test-Http-Query: 123
Transfer-Encoding: chunked
User-Agent: Mozilla/5.0 (Macintosh; ...
Accept-Encoding: gzip, deflate, br

e
a=10&b=20&c=30
0

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

HttpQuery-return

यह JSON संरचना डिबग मोड में HttpQuery फ़ंक्शन द्वारा लौटाई गई डेटा संरचना है जब डिबग फ़ील्डoptionsसंरचना पैरामीटर सच है।

http स्थिति कोड स्थितिकोड संख्या हेडर जानकारी का अनुरोध करें. हेडर JSON कुकीज़ की जानकारी। कुकीज़ सरणी अनुरोध की पूर्ण पथ जानकारी। ट्रेस JSON संदेश की लंबाई लम्बाई संख्या संदेश सामग्री। शरीर स्ट्रिंग

लौटाए गए JSON डेटा संरचना का एक उदाहरण हैः

{
    "StatusCode": 302,
    "Header": {
        "Content-Type": ["text/html"],
        // ...
    },
    "Cookies": [{
        // ...
    }],
    "Trace": {},
    "Length": 154,
    "Body": "..."
}

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

लॉगस्टेटस-तालिका

इस JSON संरचना का उपयोग रणनीति स्थिति पट्टी में प्रदर्शित तालिका सामग्री को कॉन्फ़िगर करने के लिए किया जाता है.

यूआई और नियंत्रणों के प्रकार को सेट करने के लिए प्रयोग किया जाता है जिसे पार्स और प्रदर्शित किया जाना है। स्थिति पट्टी तालिका के लिए यह निश्चित रूप से सेट किया गया हैःtable. प्रकार स्ट्रिंग स्थिति पट्टी तालिका का शीर्षक सेट करने के लिए प्रयोग किया जाता है. शीर्षक स्ट्रिंग स्थिति पट्टी तालिका के स्तंभ शीर्षक सेट करने के लिए प्रयोग किया जाता है. सरणी का पहला तत्व पहले स्तंभ का शीर्षक है, और इसी तरह. कूलर सरणी स्थिति पट्टी तालिका के पंक्ति डेटा सेट करने के लिए प्रयोग किया जाता है। पंक्तियों सरणी (दो आयामी सरणी) का पहला तत्व भी एक सरणी संरचना है। इस सरणी संरचना की लंबाई तालिका स्तंभों की संख्या के अनुरूप होनी चाहिए (सरणी संरचना में तत्व तालिका स्तंभ नामों के अनुरूप हैं), अर्थात, तालिका में डेटा की पहली पंक्ति। पंक्तियाँ सरणी

function main() {
    var tbl = {
        type: "table", 
        title: "title", 
        cols: ["Column 1", "Column 2", "Column 3"], 
        rows: [
            ["Row 1 Column 1", "Row 1 Column 2", "Row 1 Column 3"],
            ["Row 2 Column 1", "Row 2 Column 2", "Row 2 Column 3"],
            ["Row 3 Column 1", "Row 3 Column 2", "Row 3 Column 3"],
        ]
    }
    LogStatus("`" + JSON.stringify(tbl) + "`")
}

{@fun/Log/LogStatus लॉगस्टेटस}

लॉगस्टेटस-btnTypeOne

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

{
    "type": "button", 
    "cmd": "open", 
    "name": "opening a position", 
    "input": {
        "name": "number of opening positions", 
        "type": "number", 
        "defValue": 1
    }
}

पॉप-अप बॉक्स में नियंत्रण स्थिति पट्टी बटन पर क्लिक करके ट्रिगर किया जाता है नियंत्रण के माध्यम से सेट कर रहे हैंinputयाgroup.

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

{
    "name": "Number of opening positions", 
    "type": "number", 
    "defValue": 1,
    "description": "test",                  
}

उपरोक्त JSON संरचना में प्रत्येक क्षेत्र का विवरणः

  • नाम स्थिति पट्टी बटन के बाद पॉप-अप बॉक्स में नियंत्रण का शीर्षक क्लिक ऑपरेशन को ट्रिगर करता है.
  • वर्णन पॉप-अप बॉक्स में नियंत्रण का वर्णन जो स्थिति पट्टी बटन के क्लिक ऑपरेशन को ट्रिगर करने के बाद पॉप अप होता है.
  • प्रकार स्थिति पट्टी बटन के बाद पॉप-अप बॉक्स में नियंत्रण का प्रकार क्लिक ऑपरेशन को ट्रिगर करता है. प्रकार क्षेत्र के संभावित मान निम्नानुसार हैं:
    1. "number"संख्यात्मक इनपुट नियंत्रण।
    2. "string": स्ट्रिंग इनपुट नियंत्रण.
    3. "selected"ड्रॉप-डाउन बॉक्स नियंत्रण।
    4. "boolean"स्विच नियंत्रण।
  • defValue स्थिति पट्टी बटन के बाद पॉप-अप बॉक्स में नियंत्रण का डिफ़ॉल्ट मान क्लिक ऑपरेशन को ट्रिगर करता है. यदि यह एक ड्रॉप-डाउन बॉक्स प्रकार नियंत्रण है (चयनित), defValue फ़ील्ड का उपयोग ड्रॉप-डाउन बॉक्स विकल्पों को सेट करने के लिए किया जाता है. उदाहरण के लिएः"input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}, ड्रॉप-डाउन बॉक्स विकल्पों का टेक्स्ट विवरण A, B, C पर सेट किया गया है.

ड्रॉप-डाउन बॉक्स प्रकार नियंत्रण द्वारा विस्तारित क्षेत्रों के लिएः

  • विकल्प स्थिति पट्टी बटन नियंत्रण द्वारा ट्रिगर किए गए पृष्ठ में ड्रॉप-डाउन बॉक्स नियंत्रण विकल्पों को सेट करने के लिए विकल्प क्षेत्र का उपयोग कर सकते हैं. विकल्प क्षेत्र में विकल्प न केवल स्ट्रिंग का समर्थन करते हैं, बल्कि{text: "description", value: "value"}डिफ़ॉल्ट विकल्प सेट करने के लिए defValue फ़ील्ड का उपयोग करें, जो कई चयन हो सकते हैं.
  • अनेक जब यह फ़ील्ड true पर सेट किया जाता है, तो ड्रॉप-डाउन बॉक्स में कई चयन समर्थित होते हैं.

इनपुट JSON दinputफ़ील्ड पॉप-अप बॉक्स में एक नियंत्रण को कॉन्फ़िगर करता है जो स्थिति पट्टी बटन पर क्लिक करके ट्रिगर होने के बाद पॉप अप होता है।groupऔरinputहै कि यह नियंत्रणों के एक समूह को कॉन्फ़िगर करता है।groupके समान डेटा संरचना हैinputफ़ील्ड मान. कृपया संबंधित विवरण देखेंinput field.

समूह सरणी

एक उदाहरणclassस्थिति पट्टी में एक बटन की JSON संरचना का मानः

function main() {
    var table = {
        type: "table",
        title: "Status bar button style",
        cols: ["Default", "Original", "Success", "Information", "Warning", "Danger"], 
        rows: [
            [
                {"type":"button", "class": "btn btn-xs btn-default", "name": "Default"},
                {"type":"button", "class": "btn btn-xs btn-primary", "name": "Original"},
                {"type":"button", "class": "btn btn-xs btn-success", "name": "Success"},
                {"type":"button", "class": "btn btn-xs btn-info", "name": "Information"},
                {"type":"button", "class": "btn btn-xs btn-warning", "name": "Warning"},
                {"type":"button", "class": "btn btn-xs btn-danger", "name": "Danger"}
            ]
        ]
    }
    LogStatus("`" + JSON.stringify(table) + "`")
}

उदाहरण का उपयोगgroupक्षेत्र के साथinputफ़ील्डः

function main() {
    // The drop-down box control in the page triggered by the testBtn1 button uses the options field to set options and the defValue field to set the default options. This is different from other examples in this chapter that directly use defValue to set options.
    var testBtn1 = {
        type: "button",
        name: "testBtn1",
        cmd: "cmdTestBtn1",
        input: {name: "testBtn1ComboBox", type: "selected", options: ["A", "B"], defValue: 1}
    }
  
    /* 
      Status bar button control (set input field implementation) testBtn2 button triggered by the page in the drop-down box control using the options field to set the options, options field in the options field not only supports the string,
      it also supports the use of ```{text: "description", value: "value"}``` structure. Use the defValue field to set the default option. The default option can be multiple selection (multiple selection is achieved through an array structure). Multiple selection requires setting the additional field multiple to true.
    */
    var testBtn2 = {
        type: "button", 
        name: "testBtn2",
        cmd: "cmdTestBtn2",
        input: {
            name: "testBtn2MultiComboBox", 
            type: "selected", 
            description: "Implementing multiple selection in drop-down box", 
            options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}],
            defValue: ["A", "C"],
            multiple: true
        }
    }
  
    // Status bar grouping button control (set group field implementation) testBtn3 button triggered by the page in the drop-down box control using the options field to set options, also supports the direct use of defValue set options.
    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    while (true) {
        LogStatus("`" + JSON.stringify(testBtn1) + "`\n", "`" + JSON.stringify(testBtn2) + "`\n", "`" + JSON.stringify(testBtn3) + "`\n")
        var cmd = GetCommand()
        if (cmd) {
            Log(cmd)
        }
        Sleep(5000)
    }
}

{@fun/Log/LogStatus लॉगस्टेटस}

लॉगस्टेटस-btnTypeTwo

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

{
    "type": "button",
    "cmd": "open",
    "name": "Open a position and place an order",
    "group": [{
        "type": "selected",
        "name": "tradeType",
        "label": "order type",
        "description": "market order, limit order",
        "default": 0,
        "group": "trading setup",
        "settings": {
            "options": ["market order", "limit order"],
            "required": true,
        }
    }, {
        "type": "selected",
        "name": "direction",
        "label": "trading direction",
        "description": "buy, sell",
        "default": "buy",
        "group": "trading setup",
        "settings": {
            "render": "segment",
            "required": true,
            "options": [{"name": "buy", "value": "buy"}, {"name": "sell", "value": "sell"}],
        }
    }, {
        "type": "number",
        "name": "price",
        "label": "price",
        "description": "order price",
        "group": "trading setup",
        "filter": "tradeType==1",
        "settings": {
            "required": true,
        }
    }, {
        "type": "number",
        "name": "amount",
        "label": "order quantity",
        "description": "order quantity",
        "group": "trading setup",
        "settings": {
            "required": true,
        }
    }],
}

पॉप-अप बॉक्स में नियंत्रण स्थिति पट्टी बटन पर क्लिक करके ट्रिगर किया जाता है नियंत्रण के माध्यम से सेट कर रहे हैंinputयाgroup.

बटन नियंत्रणों के लिए, फिक्स्ड सेटिंग हैःbutton. प्रकार स्ट्रिंग बटन नियंत्रण पर पाठ, यानी बटन का नाम। नाम स्ट्रिंग इंटरैक्टिव कमांड सामग्री जब बटन नियंत्रण क्लिक ऑपरेशन को ट्रिगर करता है, तो रणनीति को भेजी जाती है. सीएमडी स्ट्रिंग बातचीत के लिए एक स्थिति पट्टी बटन का निर्माण करते समय, डेटा इनपुट भी समर्थित है। अंततः बातचीत कमांड द्वारा कैप्चर किया जाता हैGetCommand()कार्य जोड़ेंinputस्थिति पट्टी में बटन नियंत्रण के JSON डेटा संरचना के लिए आइटम बटन ट्रिगर होने पर प्रदर्शित पॉप-अप बॉक्स में इनपुट नियंत्रण को कॉन्फ़िगर करने के लिए. इनपुट संरचना के पुराने संस्करण की तुलना में, नए संस्करण में कुछ नए क्षेत्र और परिवर्तन हैंः

{
    "type": "selected",
    "name": "test",         
    "label": "topic",       
    "description": "desc",  
    "default": 1,
    "filter": "a>1",
    "group": "group1",
    "settings": { ... },    // Component configuration
}

उपर्युक्त JSON संरचना में प्रत्येक क्षेत्र का विवरण और स्पष्टीकरणः

  • प्रकार नियंत्रण प्रकार (आवश्यक क्षेत्र), निम्नलिखित सेटिंग्स का समर्थन करता हैः"number"संख्यात्मक इनपुट बॉक्स,"string"स्ट्रिंग इनपुट बॉक्स,"selected"ड्रॉप-डाउन बॉक्स,"boolean"नियंत्रण स्विच करें.

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

    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    

    इस स्निपेट के अनुसार, यदि स्थिति पट्टी बटन एक बातचीत को ट्रिगर करता है, तो एक पॉप-अप बॉक्स 4 नियंत्रणों के साथ पॉप अप होगा, जिनमें से सभी ड्रॉप-डाउन बॉक्स नियंत्रण हैं। प्रत्येक नियंत्रण के लिए विकल्प सेट करने और बातचीत संदेश भेजने के लिए ठीक क्लिक करने के बाद, रणनीति में GetCommand फ़ंक्शन प्राप्त करेगाcmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}. जेएसओएन संरचना में नाम का मूल्य लौटी इंटरैक्टिव जानकारी के क्षेत्र नाम के रूप में प्रयोग किया जाता है, उदाहरण के लिएः comboBox1, comboBox2, आदि

  • लेबल नियंत्रण के शीर्षक को सेट करने के लिए प्रयोग किया जाता है.

  • वर्णन नियंत्रण का वर्णन. यदि वर्तमान JSON संरचना समूह क्षेत्र के क्षेत्र मूल्य (सरणी संरचना) में एक तत्व है, और लेबल क्षेत्र सेट नहीं है, तो विवरण पॉप-अप बॉक्स में नियंत्रण शीर्षक है जो स्थिति पट्टी बटन पर क्लिक करने के बाद पॉप अप होता है.

  • डिफ़ॉल्ट नियंत्रण का डिफ़ॉल्ट मान.

  • फ़िल्टर चयनकर्ता, नियंत्रणों को छिपाने के लिए प्रयोग किया जाता है. इस फ़ील्ड को सेट न करने का अर्थ है कोई फ़िल्टरिंग (प्रदर्शन नियंत्रण); जब यह फ़ील्ड सेट किया जाता है, तो कोई फ़िल्टरिंग (प्रदर्शन नियंत्रण) नहीं होती है जब अभिव्यक्ति सच होती है. जब अभिव्यक्ति गलत होती है, तो फ़िल्टरिंग होती है (कोई प्रदर्शन नियंत्रण नहीं)

  • समूह नियंत्रणों के समूह को नियंत्रित करने के लिए प्रयोग किया जाता है, जिन्हें तह किया जा सकता है।

  • सेटिंग्स घटक विन्यास, नियंत्रण में विभिन्न यूआई विकल्प हैं, विशिष्ट सेटिंग्स बनाने के लिए इस विकल्प का उपयोग करें। उदाहरण के लिएः

    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
    

    सेटिंग्सः settings.required: यह आवश्यक है या नहीं। settings.disabled: अक्षम करना है या नहीं. settings.min: जब type=number मान्य हो, तो स्ट्रिंग का न्यूनतम मान या न्यूनतम लंबाई दर्शाता है. settings.max: जब type=number, अधिकतम मान या स्ट्रिंग की अधिकतम लंबाई का संकेत देता है तो वैध है. settings.step: type=number और render=slider के लिए मान्य, चरण की लंबाई दर्शाता है. settings.multiple: type= चयनित होने पर मान्य, यह दर्शाता है कि कई चयन समर्थित हैं. settings.customizable: यह वैध है जब type= चयनित है, यह दर्शाता है कि अनुकूलन समर्थित है; उपयोगकर्ता सीधे ड्रॉप-डाउन बॉक्स नियंत्रण में नए विकल्पों को संपादित और जोड़ सकते हैं. यदि नया संपादित विकल्प चयनित है, तो विकल्प का नाम विकल्प द्वारा प्रतिनिधित्व मूल्य के बजाय उपयोग किया जाता है जब बातचीत ट्रिगर की जाती है. settings.options: type=selected होने पर मान्य, चयनकर्ता विकल्प डेटा प्रारूप का संकेतः [option 1, option 2], [{name:xxx,value:0}, {name:xxx,value:1}]. settings.render: रेंडरिंग घटक प्रकार. जब type=number, settings.render सेट नहीं है (डिफ़ॉल्ट नंबर इनपुट बॉक्स), वैकल्पिकः स्लाइडर (स्लाइडर बार), दिनांक (समय चयनकर्ता टाइमस्टैम्प लौटाता है). जब type=string, settings.render सेट नहीं है (डिफ़ॉल्ट सिंगल-लाइन इनपुट बॉक्स), वैकल्पिकः textarea (मल्टी-लाइन इनपुट), तारीख (समय चयनकर्ता yyyy-MM-dd hh:mm:ss लौटाता है), रंग (रंग चयनकर्ता #FF00FF लौटाता है). जब type= चयनित है, settings.render सेट नहीं है (डिफ़ॉल्ट ड्रॉप-डाउन बॉक्स), वैकल्पिकः सेगमेंट (सेगमेंट चयनकर्ता) जब type=boolean, वर्तमान में केवल एक डिफ़ॉल्ट चेकबॉक्स है.

इनपुट JSON दinputफ़ील्ड पॉप-अप बॉक्स में एक नियंत्रण को कॉन्फ़िगर करता है जो स्थिति पट्टी बटन पर क्लिक करके ट्रिगर होने के बाद पॉप अप होता है।groupऔरinputहै कि यह नियंत्रणों के एक समूह को कॉन्फ़िगर करता है।groupके समान डेटा संरचना हैinputफ़ील्ड मान. कृपया उपरोक्त विवरण का संदर्भ लेंinput field.

समूह सरणी

द्विभाषी सेटिंग्स का समर्थन करेंः

{
    type:'selected',
    name:'test',
    label:'选项|options',
    description:'描述|description',
    default:0,                            // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
    filter:'a>1&&a<10',
    group:'分组|group',
    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
}

{@fun/Log/LogStatus लॉगस्टेटस}

चार्ट विकल्प

इस JSON का उपयोग कस्टम ड्राइंग फ़ंक्शन की चार्ट विन्यास जानकारी सेट करने के लिए किया जाता हैChart(). इस्तेमाल किया गया चार्ट लाइब्रेरी है Highcharts. केवल कुछ बुनियादी विन्यास क्षेत्रों को यहाँ सूचीबद्ध किया गया है.

प्लेटफ़ॉर्म विस्तार फ़ील्ड. हाईस्टॉक्स चार्ट का उपयोग करने के लिए सच पर सेट करें; हाईचार्ट चार्ट का उपयोग करने के लिए गलत पर सेट करें.

__isस्टॉक स्ट्रिंग

{
    layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
    height: 300,      // Specify height
}

विस्तार JSON चार्ट का शीर्षक शीर्षक स्ट्रिंग एक्स अक्ष विन्यास. xअक्ष JSON वाई-अक्ष विन्यास। yअक्ष JSON चार्ट डेटा श्रृंखला। सीरीज JSON

एक सरल चित्रण उदाहरणः

// This chart is an object in JavaScript language. Before using the Chart function, we need to declare an object variable chart to configure the chart.
var chart = {                                           
    // This field marks whether the chart is a general chart. If you are interested, you can change it to false and run it.
    __isStock: true,                                    
    // Zoom tool
    tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},    
    // title
    title : { text : 'Price difference analysis chart'},                       
    // Select range
    rangeSelector: {                                    
        buttons:  [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
        selected: 0,
        inputEnabled: false
    },
    // The horizontal axis of the coordinate axis is: x-axis, and the current setting type is: time
    xAxis: { type: 'datetime'},                         
    // The vertical axis of the coordinate axis is: the y-axis, the default value is adjusted according to the data size
    yAxis : {                                           
        // title
        title: {text: 'Price difference'},                           
        // Whether to enable the right vertical axis
        opposite: false                                 
    },
    // Data series, this property saves each data series (line, K-line chart, label, etc.)
    series : [                                          
        // The index is 0, and the data array stores the data of the index series.
        {name : "line1", id : "line 1,buy1Price", data : []},                          
        // The index is 1, dashStyle:'shortdash' is set, that is, a dashed line is set
        {name : "line2", id : "line 2,lastPrice", dashStyle : 'shortdash', data : []}  
    ]
}
function main(){
    // Call the Chart function to initialize the chart
    var ObjChart = Chart(chart)         
    // Clear
    ObjChart.reset()                      
    while(true){
        // Get the timestamp of this poll, which is a millisecond timestamp. Used to determine the position of the X-axis written to the chart
        var nowTime = new Date().getTime()
        // Get market data
        var ticker = _C(exchange.GetTicker)
        // Get the buy price from the return value of the market data
        var buy1Price = ticker.Buy    
        // Get the last transaction price. In order to prevent the two lines from overlapping, we add 1.
        var lastPrice = ticker.Last + 1
        // Use the timestamp as the X value and the buy price as the Y value to pass into the data sequence of index 0
        ObjChart.add(0, [nowTime, buy1Price])
        // Same as above
        ObjChart.add(1, [nowTime, lastPrice])
        Sleep(2000)
    }
}

{@मज़ा/लॉग/चार्ट चार्ट}

KLineChart-विकल्प

इस JSON का उपयोग कस्टम ड्राइंग फ़ंक्शन की चार्ट विन्यास जानकारी सेट करने के लिए किया जाता हैKLineChart. केवल कुछ बुनियादी विन्यास क्षेत्रों को यहाँ सूचीबद्ध किया गया है.

क्या मुख्य चार्ट पर आकर्षित करने के लिए। ओवरले बोल एक्स अक्ष विन्यास. xअक्ष JSON वाई-अक्ष विन्यास। yअक्ष JSON कैंडलस्टिक चार्ट विन्यास मोमबत्ती JSON

कृपया देखेंKLineChart फ़ंक्शन का उपयोग करके चार्ट खींचने पर विशेष लेख.

{@मज़ा/लॉग/KLineChart KLineChart}

SetData-डेटा

JSON का उपयोग डेटा को लोड करने के लिए सेट करने के लिए किया जाता हैexchange.SetData()JSON डेटा एक सरणी संरचना है, जिसमें प्रत्येक तत्व भी एक सरणी है, अर्थात्[time, data].

डेटा का समय-स्टैम्प, इन डेटा के समय को चिह्नित करता है। समय संख्या डेटा डेटा के एक टुकड़े से मेल खाता है एक निश्चित समय में डेटा द्वारा लोड कियाexchange.SetData()जब रणनीति चल रही है,exchange.GetData()फ़ंक्शन वर्तमान समय के अनुसार संबंधित टाइमस्टैम्प के साथ डेटा प्राप्त करता है।

आंकड़ा string, number, bool, object, array आदि

बैकटेस्टिंग प्रणाली में डेटा लोड करने और रणनीति बैकटेस्ट चल रहा है जब डेटा पुनर्प्राप्त करने का एक उदाहरणः

/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
    exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
    while(true) {
        Log(exchange.GetData("test"))
        Sleep(1000 * 60 * 60 * 24)
    }
}

{@मज़ा सेटडाटा}, {@मज़ा प्राप्तडाटा}

इवेंटलूप-वापसी

यह जेएसओएन डेटा संरचना है जोEventLoop()कार्य।EventLoop()फ़ंक्शन मॉनिटरः 1. कोई भी वेबसॉकेट पठनीय डेटा घटना; 2. कार्य पूरा होने की घटनाएं एक्सचेंज.गो ((() और HttpQuery_Go (()) कार्यों के साथ समवर्ती; 3. संदेश घटनाओं द्वारा बनाए गए धागे में भेजे गएthreading.Thread()जावास्क्रिप्ट भाषा की रणनीति में कार्य।

घटना अनुक्रम संख्या। अनुसूची संख्या घटना का नाम। घटना स्ट्रिंग घटना थ्रेड आईडी. थ्रेड संख्या घटना सूचकांक सूचकांक संख्या नैनो टाइमस्टैम्प. नैनो संख्या

उपयोग करेंexchange.Go()समारोह समवर्ती अनुरोध करने के लिए और घटना डेटा संरचना द्वारा लौटायाEventLoop() function.

{
    "Seq":1,
    "Event":"Exchange_GetTrades",
    "ThreadId":0,
    "Index":3,
    "Nano":1682068771309583400
}

जावास्क्रिप्ट भाषा रणनीति के समवर्ती निष्पादित धागे में (निर्माण द्वारा बनाई गई)threading.Thread()कार्य), जबpostMessage()सूत्र ऑब्जेक्ट के कार्य का उपयोग एक संदेश भेजने के लिए किया जाता है,EventLoop()संदेश प्राप्त करने वाले थ्रेड में फ़ंक्शन निम्नलिखित घटना डेटा संरचना की निगरानी करेगा:

{
    "Seq":4,
    "Event":"thread",
    "ThreadId":1,
    "Index":0,
    "Nano":1727592066508674000
}

{@fun/Global/EventLoop इवेंटलूप}

DBExec-वापसी

यह जेएसओएन डेटा संरचना है जोDBExec()function; यह भी SQL कथन का उपयोग कर निष्पादित करते समय लौटाया जाता हैexec()द्वारा बनाई गई वस्तु की विधिDial() function.

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

डेटाबेस में डेटा क्वेरी करने का उदाहरणः

{
    "columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],
    "values":[
        [1518970320000,100,99.1,90,100,12345.6],
        [1518960320000,100,99.1,90,100,12345.6]
    ]
}

{@fun/Global/DBExec DBExec}, {@fun/Global/Dial Dial}

Thread.join-return

यह JSON सदस्य फ़ंक्शन द्वारा लौटाया गया डेटा संरचना हैjoin()केThreadऑब्जेक्ट, जो समवर्ती धागे के बारे में कुछ जानकारी बचाता हैJavaScriptभाषा रणनीतिThreadवस्तु थ्रेड ऑब्जेक्ट को संदर्भित करता है, जो द्वारा बनाया जाता हैthreading.Thread().

थ्रेड आईडी. आईडी संख्या क्या धागा समाप्त होने के लिए मजबूर है। समाप्त बोल नैनोसेकंड में धागे का चलने का समय। बीत गया संख्या थ्रेड फ़ंक्शन का रिटर्न मान. रिट संख्या

निम्नलिखित कोड समय सीमा तंत्र का परीक्षण करता हैjoin()कार्यThreadऑब्जेक्ट और मुद्रित करता हैjoin() function.

function testFunc() {
    for (var i = 0; i < 5; i++) {
        Log(i)
        Sleep(300)
    }
}

function main() {
    var t1 = threading.Thread(testFunc)
    Log(t1.join(1000))  // undefined
    Log(t1.join())      // {"id":1,"terminated":false,"elapsed":1506864000}
} ```


{@fun/Threads/Thread/join join}
वित्तपोषण अंतर्निहित चर