Sumber daya yang dimuat... Pemuatan...

Kontrol interaktif

JavaScript, Python, C++, dan strategi MyLanguage dapat dirancang dengan kontrol interaksi. Kontrol interaksi dari strategi digunakan untuk mengirim perintah interaktif ke program strategi yang sedang berjalan ketika strategi sedang berjalan dalam perdagangan langsung. UntukJavaScript, Python, danC++menggunakan strategi jenis bahasaGetCommand()fungsi dalam kode strategi untuk mendapatkan pesan yang dihasilkan oleh kontrol interaksi.

Interactive Control

Dengan kode yang dirancang dalam strategi untuk menangani pesan dari kontrol interaktif, penggunaan kontrol interaktif selama perdagangan langsung dapat memungkinkan (tidak terbatas pada) fungsi, seperti:

  • Tutup posisi strategi secara manual.
  • Mengubah parameter strategi secara dinamis untuk menghindari memulai kembali strategi perdagangan langsung.
  • Mengubah logika strategi.
  • Memicu pencetakan informasi debugging tertentu, data, dan digunakan untuk menguji fungsi tertentu.

Jenis Kontrol Interaksi

Variabel (contoh nama) Deskripsi Jenis Nilai default (deskripsi) Konfigurasi komponen (deskripsi) Pengamatan
cmdNum Deskripsi kontrol interaktif cmdNum nomor Nilai default adalah opsional dan dapat dibiarkan kosong Digunakan untuk mengatur kontrol antarmuka yang terikat pada item interaktif saat ini: jenis komponen, nilai minimum, nilai maksimum, pengelompokan, dll. Catatan tentang kontrol interaktif cmdNum
cmdBool Deskripsi kontrol interaktif cmdBool Boolean (benar/salah) Nilai default yang diperlukan, dihidupkan atau dimatikan Sama seperti di atas. Catatan pada kontrol interaktif cmdBool
cmdStr Deskripsi kontrol interaktif cmdStr string Nilai default adalah opsional dan dapat dibiarkan kosong Sama seperti di atas. Catatan tentang kontrol interaktif cmdStr
cmdCombox Deskripsi kontrol interaktif cmdCombox dipilih Nilai default adalah opsional dan dapat dibiarkan kosong Sama seperti di atas. Catatan tentang kontrol interaktif cmdCombox
cmdBtn Deskripsi kontrol interaktif cmdBtn tombol Kontrol tombol tidak terikat pada item input Sama seperti di atas. Catatan tentang kontrol interaktif cmdBtn

Pesan yang dikirim ke strategi setelah kontrol interaktif dipicu (string): Setelah memasukkan data interaktif 123 di kotak input kontrol interaktif cmdNum, klik tombol kontrol interaktif cmdNum. Fungsi GetCommand() dalam program strategi akan menerima pesan cmdNum:123. Atur kontrol saklar dari kontrol interaktif cmdBool ke on, dan klik tombol dari kontrol interaktif cmdBool.GetCommand()fungsi dalam program strategi akan menerima pesan:cmdBool:trueAku tidak tahu. Setelah memasukkan data interaktif:abcdi kotak input cmdStr kontrol interaktif, klik tombol cmdStr kontrol interaktif.GetCommand()fungsi dalam program strategi akan menerima pesan:cmdStr:abcAku tidak tahu. Setelah memilih opsi kedua di kotak drop-down dari kontrol interaktif cmdCombox, klik tombol dari kontrol interaktif cmdCombox.GetCommand()fungsi dalam program strategi akan menerima pesan:cmdCombox:1, di mana 1 mewakili indeks opsi yang dipilih, opsi pertama memiliki indeks 0, dan opsi kedua memiliki indeks 1. Klik tombol kontrol interaktif cmdBtn.GetCommand()fungsi dalam program strategi akan menerima pesan:cmdBtn.

Konfigurasi komponen

Opsi Component Configuration dari kontrol interaktif strategi digunakan untuk mengatur kontrol yang sesuai dengan 5 jenis kontrol interaktif di platform, meningkatkan fungsionalitas dan menyederhanakan desain.

5 jenis komponen yang didukung oleh kontrol interaktif:

  • Kontrol interaktif nomor Tipe komponen yang didukung: kontrol kotak input (default), kontrol selektor waktu, dan kontrol batang input geser.
  • Kontrol interaktif Boolean (benar/salah) Hanya kontrol switch yang didukung (default).
  • Kontrol interaktif string Jenis komponen yang didukung: kontrol kotak input (default), kontrol kotak teks, kontrol selektor waktu, kontrol selektor warna, mata uang, dan kode perdagangan.
  • Kontrol interaktif yang dipilih Tipe komponen yang didukung: kontrol drop-down box (default), kontrol pengontrol segmen, mata uang, dan kode perdagangan.
  • Kontrol interaktif tombol Hanya ada kontrol tombol (default) dan tidak ada kontrol input.

Kontrol interaktif juga dapat dikelompokkan, seperti pengaturan parameter antarmuka.

  • Pengelompokan Dalam kotak input Group dari konfigurasi komponen, Anda dapat memasukkan nama untuk label untuk mengelompokkan beberapa kontrol interaksi strategi ke dalam label grup (menggantikan fungsi lama platform Interaction Control Grouping).

Kontrol interaktif di Bar Status

Selain merancang kontrol interaktif di kolom Strategy Interaction, juga mungkin untuk merancang kontrol interaktif di kolom Status Strategi.LogStatusbagian fungsi dari Syntax GuideAku tidak tahu. Kontrol tombol di bilah status dapat dikategorikan sebagai:

  • Kontrol tombol umum Contoh dari struktur data adalah:

    {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    
  • Kontrol tombol dengan input data Gunakaninputproperti untuk mengatur opsi kontrol input, dengan contoh struktur data:

    {"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button.", "input": {"name": "number of open positions", "type": "number", "defValue": 1}}
    
    {
        "type": "button",
        "cmd": "test1",
        "name": "test1",
        "input": {
            "type": "selected",
            "name": "selected",
            "label": "drop-down box",
            "description": "description",
            "default": 100,
            "settings": {
                "multiple": true,
                "customizable": true,
                "options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
            }
        },
    }
    
  • Kontrol tombol dengan satu set data masukan Gunakangroupproperti untuk mengatur opsi untuk sekelompok kontrol input, dengan contoh struktur data:

    {
        "type": "button",
        "cmd": "open",
        "name": "open positions",
        "group": [
            {"name": "orderType", "description": "下单方式|order type", "type": "selected", "defValue": "market order|pending order"},
            {"name": "tradePrice@orderType==1", "description": "交易价格|trade price", "type": "number", "defValue": 100},
            {"name": "orderAmount", "description": "委托数量|order amount", "type": "string", "defValue": 100},
            {"name": "boolean", "description": "yes/no|boolean", "type": "boolean", "defValue": True}
        ]
    }
    
    {
        "type": "button",
        "cmd": "test2",
        "name": "test2",
        "group": [{
            "type": "selected",
            "name": "selected",
            "label": "drop-down box",
            "description": "description",
            "default": 200,
            "group": "group1",
            "settings": {
                "multiple": true,
                "options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
            }
        }, {
            "type": "string",
            "name": "string",
            "label": "input box",
            "description": "description",
            "default": "ABC",
            "group": "group1"
        }],
    }
    

Mengenkode data JSON kontrol tombol ini ke dalam string JSON, kemudian membungkusnya dengan`Mengambil bahasa JavaScript sebagai contoh:

function main() {
    var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    LogStatus("`" + JSON.stringify(btn) + "`")
}

Kontrol tombol ini juga dapat ditulis ke formulir bilah status, silakan lihatPanduan Sintaksuntuk contoh rinci.

Struktur dariinputbidang konsisten dengan struktur kontrol tunggal dalamgroupBerikut ini adalah deskripsi rinci:

{
    "type": "selected",     // Control type (required field), supports the following settings: number, string, selected, boolean
    "name": "test",         // Name (required when used in group)
    "label": "topic",       // Title (required field)
    "description": "desc",  // Component tips
    "default": 1,           // Default value; if the settings field is not set in the current JSON structure, defValue is compatible and can be used instead of default
    "filter": "a>1",        // Selector. If this field is not set, no filtering (controls are displayed). If this field is set, no filtering (controls are displayed) occurs when the expression is true. Filtering occurs when the expression is false (controls are not displayed)
                            // For the selector, take the expression a>1 in the current example as an example, a refers to the value of the control with name a under the group field in the structure of type=button. This value is used to determine whether to filter.
    "group": "group1",      // Grouping
    "settings": { ... },    // Component configuration
}

Konfigurasi komponensettingssetiap bidang dijelaskan secara rinci:

  • settings.required: Apakah opsi ini diperlukan.
  • settings.disabledApakah untuk menonaktifkan.
  • settings.min: Berlaku kapantype=number, menunjukkan nilai minimum atau panjang string minimum.
  • settings.max: Berlaku kapantype=number, menunjukkan nilai maksimum atau panjang string maksimum.
  • settings.step: type=number, berlaku ketikarender=slider, menunjukkan panjang langkah.
  • settings.multiple: type=selectedadalah valid, menunjukkan bahwa beberapa pilihan didukung.
  • settings.customizable: type=selectedJika pilihan yang baru diedit dipilih, nama opsi digunakan sebagai pengganti nilai yang diwakili oleh opsi ketika interaksi dipicu.
  • settings.options: Berlaku kapantype=selected, yang menunjukkan format data opsi selector:["option 1", "option 2"], [{'name':'xxx','value':0}, {'name':'xxx','value':1}].
  • settings.render: Jenis komponen rendering. Kapan?type=number, settings.rendertidak ditetapkan (kotak input nomor default), opsional:slider(slider bar),date(selector waktu mengembalikan time stamp). Kapan?type=string, settings.rendertidak ditetapkan (default kotak input satu baris). Opsional:textarea(masukan multi-line),date(pemilih waktu mengembalikan yyyy-MM-dd hh:mm:ss),color(pemilih warna mengembalikan #FF00FF). Kapan?type=selected, settings.rendertidak diatur (kotak drop-down default), opsional:segment(selector segmen).type=booleansaat ini hanya memiliki kotak centang default.

Mendukung pengaturan bilingual, misalnya:'选项 | options'akan disesuaikan sesuai dengan lingkungan bahasa saat ini;groupbidang sebagai contoh, contoh lengkap adalah:

{
    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}]
    }
}
Parameter Strategi Perdagangan Opsi