Les ressources ont été chargées... Je charge...

Contrôles interactifs dans la barre d'état

En plus de concevoir des commandes interactives dans la colonne Strategy Interaction, il est également possible de concevoir des commandes interactives dans la colonne Strategy Status.LogStatussection fonction du Guide de syntaxe- Je ne sais pas. Les commandes de bouton dans la barre d'état peuvent être classées comme suit:

  • Contrôles de boutons communs Un exemple de structure de données est:

    {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    
  • Contrôle des boutons avec entrée de données Utilisez leinputpropriété permettant de définir les options de commande d'entrée, avec une structure de données par exemple:

    {"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}]
            }
        },
    }
    
  • Contrôle par bouton avec un ensemble de données d'entrée Utilisez legrouppropriété permettant de définir les options pour un groupe de commandes d'entrée, avec une structure de données par exemple:

    {
        "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"
        }],
    }
    

Codifier ces données JSON de contrôle de bouton dans une chaîne JSON, puis l'envelopper avec`Prenons le langage JavaScript comme exemple:

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

Ces commandes de bouton peuvent également être écrites sur les formulaires de barre d'état, veuillez vous référer àGuide de syntaxepour des exemples détaillés.

La structure de lainputLe champ est cohérent avec la structure d'un seul contrôle dans legroupVoici une description détaillée:

{
    "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
}

Configuration des composantssettingschaque champ est décrit en détail:

  • settings.required: Si cette option est requise.
  • settings.disabledSi vous devez désactiver.
  • settings.min: Valide lorsquetype=number, indiquant la valeur minimale ou la longueur minimale de chaîne.
  • settings.max: Valide lorsquetype=number, indiquant la valeur maximale ou la longueur maximale de chaîne.
  • settings.step: type=number, valable lorsquerender=slider, indique la longueur de la marche.
  • settings.multiple: type=selectedest valide, ce qui indique que des sélections multiples sont prises en charge.
  • settings.customizable: type=selectedest valide, indiquant que la personnalisation est prise en charge; les utilisateurs peuvent directement modifier et ajouter de nouvelles options dans le contrôle de la fenêtre déroulante.
  • settings.options: Valide lorsquetype=selected, indiquant le format de données de l'option sélecteur:["option 1", "option 2"], [{'name':'xxx','value':0}, {'name':'xxx','value':1}].
  • settings.render: Type de composant de rendu. Quand?type=number, settings.rendern'est pas réglé (boîte de saisie de numéro par défaut), facultatif:slider(barre coulissante),date(le sélecteur d'heure renvoie l'horodatage). Quand?type=string, settings.rendern'est pas réglé (boîte de saisie par défaut d'une ligne).textarea(entrée à plusieurs lignes),date(le sélecteur d'heure renvoie yyyy-MM-dd hh:mm:ss),color(le sélecteur de couleur renvoie #FF00FF). Quand?type=selected, settings.rendern'est pas réglé (boîte déroulante par défaut), facultatif:segment(sélecteur de segment).type=booleanprésente actuellement une case à cocher par défaut.

Prend en charge les paramètres bilingues, par exemple:'选项 | options'La mise en place d'un système de contrôle unique dans le domaine de l'apprentissage des langues sera adaptée à l'environnement linguistique actuel.groupchamp comme exemple, l'exemple complet est:

{
    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}]
    }
}
Configuration des composants Options de négociation