রিসোর্স লোড হচ্ছে... লোডিং...

অন্যান্য কাঠামো

HttpQuery-options

এই JSON কাঠামোটি HttpQuery ফাংশন এবং HttpQuery_Go ফাংশনের পরামিতিগুলি কনফিগার করতে ব্যবহৃত হয় Http অনুরোধ পাঠাতে।

অনুরোধ পদ্ধতি, উদাহরণস্বরূপঃGET, POSTইত্যাদি। পদ্ধতি স্ট্রিং অনুরোধের দেহ। উদাহরণস্বরূপ, একটি POST অনুরোধে, দেহটিতে ফর্ম ডেটা, JSON, পাঠ্য ইত্যাদি থাকতে পারে। শরীর স্ট্রিং অক্ষর সেট এনকোডিং। উদাহরণস্বরূপ, শরীরের পাঠ্য ডেটার এনকোডিং নির্দিষ্ট করুনঃ"UTF-8". চার্সেট স্ট্রিং একটি কুকি হল একটি ক্লায়েন্ট (সাধারণত একটি ব্রাউজার) এবং একটি সার্ভারের মধ্যে স্টোর এবং বিনিময় তথ্যের জন্য ব্যবহৃত একটি ছোট তথ্য। বিস্কুট স্ট্রিং ব্রাউজারের আঙুলের ছাপ সিমুলেট করতে ব্যবহৃত হয়। প্রোফাইল স্ট্রিং যখন true এ সেট করা হয়, তখন HttpQuery ফাংশন কল সম্পূর্ণ প্রতিক্রিয়া বার্তা ফেরত দেয়। যখন false এ সেট করা হয়, তখন শুধুমাত্র প্রতিক্রিয়া বার্তার দেহে ডেটা ফেরত দেওয়া হয়। ডিবাগ বুল অনুরোধ শিরোনামের তথ্য কী-মানের জোড়া (জেএসওএন কাঠামো) আকারে বিদ্যমান এবং বিভিন্ন তথ্য যেমন সামগ্রী প্রকার, প্রমাণীকরণ তথ্য, ক্যাশ নিয়ন্ত্রণ ইত্যাদি প্রেরণে ব্যবহৃত হয়। শিরোনাম 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 LogStatus}

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 স্ট্যাটাস বার বোতামটি ক্লিক অপারেশন ট্রিগার করার পরে পপ-আপ বক্সে কন্ট্রোলের ডিফল্ট মান। যদি এটি একটি ড্রপ-ডাউন বক্স টাইপ কন্ট্রোল (নির্বাচিত) হয়, তবে ডিফভ্যালু ক্ষেত্রটি ড্রপ-ডাউন বক্স বিকল্পগুলি সেট করতে ব্যবহৃত হয়। উদাহরণস্বরূপঃ"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 LogStatus}

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"]}. JSON কাঠামোর নামের মানটি ফেরত ইন্টারেক্টিভ তথ্যের ক্ষেত্রের নাম হিসাবে ব্যবহৃত হয়, উদাহরণস্বরূপঃ 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=selected হলে বৈধ, একাধিক নির্বাচন সমর্থিত। 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 (multi-line input), date (time selector returns yyyy-MM-dd hh:mm:ss), color (color selector returns #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 LogStatus}

চার্ট অপশন

এই JSON কাস্টম অঙ্কন ফাংশনের চার্ট কনফিগারেশন তথ্য সেট করতে ব্যবহৃত হয়Chart(). ব্যবহৃত চার্ট লাইব্রেরি হল হাইচার্টস। এখানে শুধুমাত্র কয়েকটি মৌলিক কনফিগারেশন ক্ষেত্র তালিকাভুক্ত করা হয়েছে।

প্ল্যাটফর্ম এক্সটেনশন ক্ষেত্র। হাইস্টক চার্ট ব্যবহার করতে সত্য সেট করুন; হাইচার্ট চার্ট ব্যবহার করতে মিথ্যা সেট করুন।

__isস্টক স্ট্রিং

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

সম্প্রসারণ JSON চার্ট শিরোনাম নাম স্ট্রিং এক্স-অক্ষ কনফিগারেশন। xঅক্ষ JSON Y-অক্ষ কনফিগারেশন। 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)
    }
}

{@fun/Log/Chart Chart} {@fun/Log/Chart Chart} {@fun/Log/Chart Chart}

KLineChart-বিকল্প

এই JSON কাস্টম অঙ্কন ফাংশনের চার্ট কনফিগারেশন তথ্য সেট করতে ব্যবহৃত হয়KLineChart. এখানে কেবলমাত্র কয়েকটি মৌলিক কনফিগারেশন ক্ষেত্র তালিকাভুক্ত করা হয়েছে।

প্রধান চার্টে আঁকতে হবে কিনা। আচ্ছাদন বুল এক্স-অক্ষ কনফিগারেশন। xঅক্ষ JSON Y-অক্ষ কনফিগারেশন। yঅক্ষ JSON ক্যান্ডেলস্টিক চার্ট কনফিগারেশন। মোমবাতি JSON

অনুগ্রহ করে দেখুনKLineChart ফাংশন ব্যবহার করে চার্ট অঙ্কন সম্পর্কিত বিশেষ নিবন্ধ.

{@fun/Log/KLineChart KLineChart}

সেটডাটা-ডেটা

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)
    }
}

{@ফান সেটডাটা}, {@ফান গেটডাটা}

ইভেন্টলুপ-রিটার্ন

এই JSON হল ডাটা স্ট্রাকচার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-return

এই JSON হল ডাটা স্ট্রাকচারDBExec()ফাংশন; এটি 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}
অর্থায়ন অন্তর্নির্মিত পরিবর্তনশীল