Sumber dimuat naik... memuat...

Kawalan interaktif

JavaScript, Python, C++, dan strategi MyLanguage boleh direka dengan kawalan interaksi. Kawalan interaksi strategi digunakan untuk menghantar arahan interaktif ke program strategi yang sedang berjalan apabila strategi sedang berjalan dalam perdagangan langsung. UntukJavaScript, Python, danC++strategi jenis bahasa, gunakanGetCommand()fungsi dalam kod strategi untuk mendapatkan mesej yang dihasilkan oleh kawalan interaksi.

Interactive Control

Dengan kod yang direka dalam strategi untuk mengendalikan mesej dari kawalan interaktif, penggunaan kawalan interaktif semasa perdagangan langsung boleh membolehkan (tidak terhad kepada) fungsi, seperti:

  • Tutup kedudukan strategi secara manual.
  • Mengubah parameter strategi secara dinamik untuk mengelakkan memulakan semula strategi perdagangan langsung.
  • Ubah logik strategi.
  • Memicu pencetakan maklumat debugging tertentu, data, dan digunakan untuk menguji fungsi tertentu.

Jenis Kawalan Interaksi

Tukar (Contoh Nama) Penerangan Jenis Nilai lalai (penjelasan) Konfigurasi komponen (penggambaran) Catatan
cmdNum Penerangan kawalan interaktif cmdNum nombor Nilai lalai adalah pilihan dan boleh ditinggalkan kosong Digunakan untuk menetapkan kawalan antara muka yang terikat dengan item interaktif semasa: jenis komponen, nilai minimum, nilai maksimum, pengelompokan, dll. Nota mengenai kawalan interaktif cmdNum
cmdBool Penerangan kawalan interaktif cmdBool Boolean (benar/salah) Nilai lalai yang diperlukan, dihidupkan atau dimatikan Sama seperti di atas. Catatan mengenai kawalan interaktif cmdBool
cmdStr Penerangan kawalan interaktif cmdStr senar Nilai lalai adalah pilihan dan boleh ditinggalkan kosong Sama seperti di atas. Catatan mengenai cmdStr kawalan interaktif
cmdCombox Penerangan kawalan interaktif cmdCombox dipilih Nilai lalai adalah pilihan dan boleh ditinggalkan kosong Sama seperti di atas. Nota mengenai kawalan interaktif cmdCombox
cmdBtn Penerangan kawalan interaktif cmdBtn butang Kawalan butang tidak terikat kepada item input Sama seperti di atas. Nota mengenai kawalan interaktif cmdBtn

Mesej yang dihantar ke strategi selepas kawalan interaktif dicetuskan (string): Selepas memasukkan data interaktif 123 dalam kotak input kawalan interaktif cmdNum, klik butang kawalan interaktif cmdNum. Fungsi GetCommand() dalam program strategi akan menerima mesej cmdNum:123. Tetapkan kawalan suis kawalan interaktif cmdBool pada pada, dan klik butang kawalan interaktif cmdBool.GetCommand()fungsi dalam program strategi akan menerima mesej:cmdBool:true. Selepas memasukkan data interaktif:abcdalam kotak input cmdStr kawalan interaktif, klik butang cmdStr kawalan interaktif.GetCommand()fungsi dalam program strategi akan menerima mesej:cmdStr:abc. Selepas memilih pilihan kedua dalam kotak drop-down kawalan interaktif cmdCombox, klik butang kawalan interaktif cmdCombox.GetCommand()fungsi dalam program strategi akan menerima mesej:cmdCombox:1, di mana 1 mewakili indeks pilihan yang dipilih, pilihan pertama mempunyai indeks 0, dan pilihan kedua mempunyai indeks 1. Klik butang kawalan interaktif cmdBtn.GetCommand()fungsi dalam program strategi akan menerima mesej:cmdBtn.

Konfigurasi komponen

Pilihan Component Configuration kawalan interaktif strategi digunakan untuk menetapkan kawalan yang sepadan dengan 5 jenis kawalan interaktif di platform, meningkatkan fungsi dan mempermudah reka bentuk.

5 jenis komponen yang disokong oleh kawalan interaktif:

  • Kawalan interaktif nombor Jenis komponen yang disokong: kawalan kotak input (default), kawalan pilihan masa, dan kawalan bar input yang bergerak.
  • kawalan interaktif Boolean (betul/salah) Hanya kawalan suis yang disokong (default).
  • Kawalan interaktif senar Jenis komponen yang disokong: kawalan kotak input (default), kawalan kotak teks, kawalan pilihan masa, kawalan pilihan warna, mata wang, dan kod perdagangan.
  • Pengendalian interaktif yang dipilih Jenis komponen yang disokong: kawalan kotak drop-down (default), kawalan pengawal segmen, mata wang, dan kod perdagangan.
  • Kawalan interaktif butang Terdapat hanya kawalan butang (default) dan tiada kawalan input.

Kawalan interaktif juga boleh dikelompokkan, sama seperti tetapan parameter antara muka.

  • Pengumpulan Dalam kotak input Group konfigurasi komponen, anda boleh memasukkan nama untuk label untuk mengelompokkan beberapa kawalan interaksi strategi ke dalam label kumpulan (menggantikan fungsi lama platform Interaction Control Grouping).

Kawalan interaktif dalam Bar Status

Selain merancang kawalan interaktif dalam lajur Strategi Interaksi, ia juga mungkin untuk merancang kawalan interaktif dalam lajur Status Strategi.LogStatusbahagian fungsi Panduan Sintaks. Kawalan butang dalam bar status boleh dikategorikan sebagai:

  • Kawalan butang biasa Contoh struktur data ialah:

    {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    
  • Kawalan butang dengan input data Gunakaninputatribut untuk menetapkan pilihan kawalan 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}]
            }
        },
    }
    
  • Kawalan butang dengan satu set data input Gunakangroupatribut untuk menetapkan pilihan untuk sekumpulan kawalan 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"
        }],
    }
    

Enkod ini butang kawalan data JSON ke dalam rentetan 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) + "`")
}

Ini kawalan butang juga boleh ditulis untuk borang bar status, sila rujukPanduan Sintaksuntuk contoh terperinci.

Strukturinputmedan ini adalah konsisten dengan struktur satu kawalan dalamgroupBerikut adalah penerangan terperinci:

{
    "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 diterangkan secara terperinci:

  • settings.required: Apakah pilihan ini diperlukan.
  • settings.disabledAdakah untuk melumpuhkan.
  • settings.min: Berlaku apabilatype=number, yang menunjukkan nilai minimum atau panjang rentetan minimum.
  • settings.max: Berlaku apabilatype=number, menunjukkan nilai maksimum atau panjang tali maksimum.
  • settings.step: type=number, sah apabilarender=slider, menunjukkan panjang langkah.
  • settings.multiple: type=selectedadalah sah, menunjukkan bahawa pelbagai pilihan disokong.
  • settings.customizable: type=selectedadalah sah, menunjukkan bahawa penyesuaian disokong; pengguna boleh mengedit dan menambah pilihan baru secara langsung dalam kawalan kotak drop-down. Jika pilihan yang baru diedit dipilih, nama pilihan digunakan bukannya nilai yang diwakili oleh pilihan apabila interaksi dicetuskan.
  • settings.options: Berlaku apabilatype=selected, yang menunjukkan format data pilihan pilihan:["option 1", "option 2"], [{'name':'xxx','value':0}, {'name':'xxx','value':1}].
  • settings.render: Jenis komponen rendering. Bila?type=number, settings.rendertidak ditetapkan (kotak input nombor lalai), tidak perlu:slider(slider bar),date(pemilih masa mengembalikan cap masa). Bila?type=string, settings.rendertidak ditetapkan (default kotak input satu baris).textarea(masukan berbilang baris),date(pemilih masa mengembalikan yyyy-MM-dd hh:mm:ss),color(pemilih warna mengembalikan #FF00FF). Bila?type=selected, settings.rendertidak ditetapkan (default drop-down box), pilihan:segment(pemilih segmen).type=booleankini hanya mempunyai kotak semak lalai.

Menyokong tetapan dua bahasa, contohnya: kandungan teks'选项 | options'akan disesuaikan mengikut persekitaran bahasa semasa; mengambil satu kawalan dalamgroupmedan 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 opsyen