資源の読み込みに... 荷物...

インタラクティブな制御

JavaScript, Python, C++,およびMyLanguage戦略は,インタラクション制御で設計することができます. 戦略のインタラクション制御は,戦略がライブ取引で実行されているときに実行中の戦略プログラムにインタラクティブなコマンドを送信するために使用されます. についてJavaScript, PythonそしてC++言語タイプ戦略を活用するGetCommand()インタラクション制御によって生成されたメッセージを得るための戦略コードの関数です

Interactive Control

インタラクティブなコントロールからのメッセージを処理するために戦略に設計されたコードにより,ライブ取引中にインタラクティブなコントロールを使用すると,以下のような機能が有効になります.

  • 手動で戦略位置を閉じる
  • 戦略のパラメータを動的に変更して,戦略のライブ取引を再開するのを避ける.
  • 戦略のロジックを変える
  • 特定のデバッグ情報やデータの印刷を誘発し,特定の機能をテストするために使用されます.

相互作用制御の種類

変数 (名前例) 記述 タイプ デフォルト値 (記述) 構成要素の構成 (説明) コメント
cmdNum インタラクティブな制御装置 cmdNum の説明 番号 デフォルト値はオプションで,空白にしておくことができます. 現在のインタラクティブアイテムに縛られたインターフェースコントロールを設定するために使用される:コンポーネントタイプ,最小値,最大値,グループ化など. インタラクティブな制御 cmdNum に関する注釈
cmdBool について インタラクティブなコントロール cmdBool の記述 ブール式 (真/偽) デフォルト値が必要,オンまたはオフ 上記と同じです インタラクティブなコントロール cmdBool に関する注釈
cmdStr インタラクティブな制御 cmdStr の説明 文字列 デフォルト値はオプションで,空白にしておくことができます. 上記と同じです インタラクティブな制御 cmdStr に関する注釈
cmdCombox について インタラクティブな制御装置 cmdCombox の説明 選択された デフォルト値はオプションで,空白にしておくことができます. 上記と同じです インタラクティブな制御 cmdCombox に関する注釈
cmdBtn インタラクティブな制御装置 cmdBtn の説明 ボタン ボタン制御は入力項目に縛られていない. 上記と同じです インタラクティブな制御 cmdBtn に関する注釈

インタラクティブなコントロールが起動した後,戦略に送信されるメッセージ (文字列): インタラクティブなコントロール cmdNum入力ボックスに,インタラクティブなコントロール cmdNum ボタンをクリックすると,戦略プログラム内の関数 GetCommand() はメッセージ cmdNum:123 を受信します. cmdBool のスイッチをオンに設定し, cmdBool のボタンをクリックします.GetCommand()戦略プログラム内の機能は,次のメッセージを受け取ります.cmdBool:true- わかった インタラクティブなデータを入力した後:abcインタラクティブなコントロール cmdStr 入力ボックスで,インタラクティブなコントロール cmdStr ボタンをクリックします.GetCommand()戦略プログラム内の機能は,次のメッセージを受け取ります.cmdStr:abc- わかった インタラクティブなコントロール cmdCombox のドロップダウンボックスで2番目のオプションを選択した後,インタラクティブなコントロール cmdCombox のボタンをクリックします.GetCommand()戦略プログラム内の機能は,次のメッセージを受け取ります.cmdCombox:11 は選択されたオプションのインデックスで,最初のオプションのインデックスは0で,2番目のオプションのインデックスは1です. cmdBtnのボタンをクリックします.GetCommand()戦略プログラム内の機能は,次のメッセージを受け取ります.cmdBtn.

コンポーネント構成

戦略インタラクティブな制御の"コンポーネント構成"オプションは,プラットフォーム上の5種類のインタラクティブな制御に対応する制御を設定するために使用され,機能性を向上させ設計を簡素化します.

インタラクティブな制御装置がサポートする5種類の部品:

  • 数値インタラクティブ制御 サポートされるコンポーネントタイプ:入力ボックス制御 (デフォルト),タイムセレクター制御,スライディング入力バー制御.
  • ブール式 (真/偽) インタラクティブな制御 スイッチ制御のみがサポートされています (デフォルト)
  • 文字列インタラクティブな制御 サポートされるコンポーネントタイプ:入力ボックス制御 (デフォルト),テキストボックス制御,時間選択制御,色選択制御,通貨,取引コード.
  • 選択されたインタラクティブな制御 サポートされるコンポーネントタイプ:ドロップダウンボックス制御 (デフォルト),セグメントコントローラー制御,通貨,取引コード.
  • ボタンのインタラクティブな制御 ボタンのコントロールだけ (デフォルト) が入力制御なし

インタラクティブなコントロールは,インターフェースパラメータ設定と同様にグループ化することもできます.コンポーネント構成ではグループ化設定があります.

  • グループ化 コンポーネント構成の グループ入力ボックスでは,複数の戦略インタラクション コントロールをグループラベルにグループ化するためのラベルの名前 (プラットフォームの古い機能の インタラクション コントロール グループ化) を入力できます.

ステータスバーのインタラクティブなコントロール

戦略インタラクション列でインタラクティブなコントロールをデザインするだけでなく,戦略状態列でインタラクティブなコントロールをデザインすることも可能です.現在,インタラクティブなコントロールタイプボタンのタイプのみがサポートされています.LogStatusSyntax Guideの関数セクション- わかった ステータスバーのボタン制御は以下のカテゴリーに分類できます.

  • 共通のボタンの制御 データ構造の例は:

    {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    
  • データ入力付きのボタン制御 試しにinput入力制御オプションを設定するプロパティ,データ構造の例:

    {"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}]
            }
        },
    }
    
  • 入力データセットのボタン制御 試しにgroup入力制御のグループのためのオプションを設定するプロパティ,データ構造の例:

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

JSON 文字列にエンコードし,それを`JavaScript を例に挙げましょう.

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

このボタンのコントロールは,状態バーのフォームに書き込むこともできます.文法ガイド詳細な例について

構造についてinput単一のコントロールの構造と一致します.group詳細な説明は以下のとおりです

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

コンポーネント構成settings各フィールドは詳細に記述されています.

  • 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=selectedは有効で,カスタマイゼーションがサポートされていることを示す.ユーザーはドロップダウンボックスのコントロールで直接編集し,新しいオプションを追加することができます.新しく編集したオプションが選択された場合,インタラクションが起動するときにオプションが表示する値の代わりにオプションの名前を使用します.
  • settings.options: 効力のあるときtype=selected選択オプションのデータ形式を示す:["option 1", "option 2"], [{'name':'xxx','value':0}, {'name':'xxx','value':1}].
  • settings.render: レンダリングコンポーネントタイプ いつtype=number, settings.render設定されていない (デフォルト番号入力ボックス),オプション:slider(スライダーバー)date(タイムセレクターはタイムスタンプを返します) いつtype=string, settings.render設定されていない (デフォルトの単行入力ボックス)textarea(複数行入力)date(時間選択器はyyyy-MM-dd hh:mm:ss を返します)color(色選択器は#FF00FFを返します) いつtype=selected, settings.render設定されていない (デフォルトのドロップダウンボックス),オプション:segment(セグメントセレクター)type=boolean標準チェックボックスのみです.

テキストコンテンツの設定をサポートします.'选项 | options'言語環境に合わせて調整されます.group完全な例は以下のとおりです.

{
    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}]
    }
}
戦略パラメータ オプション取引