JavaScript
, Python
, C++
,およびMyLanguage戦略は,インタラクション制御で設計することができます. 戦略のインタラクション制御は,戦略がライブ取引で実行されているときに実行中の戦略プログラムにインタラクティブなコマンドを送信するために使用されます.
についてJavaScript
, Python
そしてC++
言語タイプ戦略を活用するGetCommand()
インタラクション制御によって生成されたメッセージを得るための戦略コードの関数です
インタラクティブなコントロールからのメッセージを処理するために戦略に設計されたコードにより,ライブ取引中にインタラクティブなコントロールを使用すると,以下のような機能が有効になります.
変数 (名前例) | 記述 | タイプ | デフォルト値 (記述) | 構成要素の構成 (説明) | コメント |
---|---|---|---|---|---|
cmdNum | インタラクティブな制御装置 cmdNum の説明 | 番号 | デフォルト値はオプションで,空白にしておくことができます. | 現在のインタラクティブアイテムに縛られたインターフェースコントロールを設定するために使用される:コンポーネントタイプ,最小値,最大値,グループ化など. | インタラクティブな制御 cmdNum に関する注釈 |
cmdBool について | インタラクティブなコントロール cmdBool の記述 | ブール式 (真/偽) | デフォルト値が必要,オンまたはオフ | 上記と同じです | インタラクティブなコントロール cmdBool に関する注釈 |
cmdStr | インタラクティブな制御 cmdStr の説明 | 文字列 | デフォルト値はオプションで,空白にしておくことができます. | 上記と同じです | インタラクティブな制御 cmdStr に関する注釈 |
cmdCombox について | インタラクティブな制御装置 cmdCombox の説明 | 選択された | デフォルト値はオプションで,空白にしておくことができます. | 上記と同じです | インタラクティブな制御 cmdCombox に関する注釈 |
cmdBtn | インタラクティブな制御装置 cmdBtn の説明 | ボタン | ボタン制御は入力項目に縛られていない. | 上記と同じです | インタラクティブな制御 cmdBtn に関する注釈 |
インタラクティブなコントロールが起動した後,戦略に送信されるメッセージ (文字列):
インタラクティブなコントロール cmdNum入力ボックスに,インタラクティブなコントロール cmdNum ボタンをクリックすると,戦略プログラム内の関数 GetCommand()
戦略プログラム内の機能は,次のメッセージを受け取ります.cmdBool:true
- わかった
インタラクティブなデータを入力した後:abc
インタラクティブなコントロール cmdStr 入力ボックスで,インタラクティブなコントロール cmdStr ボタンをクリックします.GetCommand()
戦略プログラム内の機能は,次のメッセージを受け取ります.cmdStr:abc
- わかった
インタラクティブなコントロール cmdCombox のドロップダウンボックスで2番目のオプションを選択した後,インタラクティブなコントロール cmdCombox のボタンをクリックします.GetCommand()
戦略プログラム内の機能は,次のメッセージを受け取ります.cmdCombox:1
1 は選択されたオプションのインデックスで,最初のオプションのインデックスは0で,2番目のオプションのインデックスは1です.
cmdBtnのボタンをクリックします.GetCommand()
戦略プログラム内の機能は,次のメッセージを受け取ります.cmdBtn
.
戦略インタラクティブな制御の"コンポーネント構成"オプションは,プラットフォーム上の5種類のインタラクティブな制御に対応する制御を設定するために使用され,機能性を向上させ設計を簡素化します.
インタラクティブな制御装置がサポートする5種類の部品:
インタラクティブなコントロールは,インターフェースパラメータ設定と同様にグループ化することもできます.コンポーネント構成ではグループ化設定があります.
LogStatus
共通のボタンの制御 データ構造の例は:
{"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}]
}
}
戦略パラメータ
オプション取引