JavaScript
, Python
, C++
Các điều khiển tương tác của một chiến lược được sử dụng để gửi các lệnh tương tác đến chương trình chiến lược đang chạy khi chiến lược đang chạy trong giao dịch trực tiếp.
Đối vớiJavaScript
, Python
, vàC++
sử dụng các phương phápGetCommand()
chức năng trong mã chiến lược để nhận thông điệp được tạo ra bởi điều khiển tương tác.
Với mã được thiết kế trong chiến lược để xử lý tin nhắn từ các điều khiển tương tác, việc sử dụng các điều khiển tương tác trong giao dịch trực tiếp có thể cho phép (không giới hạn) các chức năng, chẳng hạn như:
Chất biến (ví dụ tên) | Mô tả | Loại | Giá trị mặc định (định nghĩa) | Cấu hình của thành phần (viết tả) | Nhận xét |
---|---|---|---|---|---|
cmdNum | Mô tả điều khiển tương tác cmdNum | số | Giá trị mặc định là tùy chọn và có thể được để trống | Sử dụng để thiết lập các điều khiển giao diện gắn liền với mục tương tác hiện tại: loại thành phần, giá trị tối thiểu, giá trị tối đa, nhóm, v.v. | Lưu ý về điều khiển tương tác cmdNum |
cmdBool | Mô tả của điều khiển tương tác cmdBool | Boolean (true/false) | Giá trị mặc định bắt buộc, bật hoặc tắt | Tương tự như trên. | Lưu ý về điều khiển tương tác cmdBool |
cmdStr | Mô tả của bộ điều khiển tương tác cmdStr | chuỗi | Giá trị mặc định là tùy chọn và có thể được để trống | Tương tự như trên. | Lưu ý về cmdStr điều khiển tương tác |
cmdCombox | Mô tả của bộ điều khiển tương tác cmdCombox | được chọn | Giá trị mặc định là tùy chọn và có thể được để trống | Tương tự như trên. | Lưu ý về bộ điều khiển tương tác cmdCombox |
cmdBtn | Mô tả điều khiển tương tác cmdBtn | nút | Điều khiển nút không bị ràng buộc với mục đầu vào | Tương tự như trên. | Lưu ý về điều khiển tương tác cmdBtn |
Thông báo được gửi đến chiến lược sau khi điều khiển tương tác được kích hoạt (dòng chữ):
Sau khi nhập dữ liệu tương tác GetCommand()
chức năng trong chương trình chiến lược sẽ nhận được thông báo:cmdBool:true
.
Sau khi nhập dữ liệu tương tác:abc
trong hộp đầu vào cmdStr điều khiển tương tác, bấm nút cmdStr điều khiển tương tác.GetCommand()
chức năng trong chương trình chiến lược sẽ nhận được thông báo:cmdStr:abc
.
Sau khi chọn tùy chọn thứ hai trong hộp thả xuống của điều khiển tương tác cmdCombox, bấm nút của điều khiển tương tác cmdCombox.GetCommand()
chức năng trong chương trình chiến lược sẽ nhận được thông báo:cmdCombox:1
, trong đó 1 đại diện cho chỉ số của tùy chọn được chọn, tùy chọn đầu tiên có chỉ số 0 và tùy chọn thứ hai có chỉ số 1.
Nhấp vào nút của cmdBtn điều khiển tương tác.GetCommand()
chức năng trong chương trình chiến lược sẽ nhận được thông báo:cmdBtn
.
Tùy chọn
5 loại thành phần được hỗ trợ bởi các điều khiển tương tác:
Các điều khiển tương tác cũng có thể được nhóm, giống như cài đặt tham số giao diện.
Ngoài việc thiết kế các điều khiển tương tác trong cột LogStatus
phần chức năng của
Điều khiển nút chung Một ví dụ về cấu trúc dữ liệu là:
{"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
Điều khiển nút với đầu vào dữ liệu
Sử dụnginput
thuộc tính để thiết lập các tùy chọn điều khiển đầu vào, với một cấu trúc dữ liệu ví dụ:
{"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}]
}
},
}
Điều khiển nút với một bộ dữ liệu đầu vào
Sử dụnggroup
thuộc tính để thiết lập các tùy chọn cho một nhóm điều khiển đầu vào, với một cấu trúc dữ liệu ví dụ:
{
"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"
}],
}
Mã hóa các dữ liệu JSON kiểm soát nút này vào một chuỗi JSON, sau đó bọc nó với`
lấy ngôn ngữ JavaScript làm ví dụ:
function main() {
var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
LogStatus("`" + JSON.stringify(btn) + "`")
}
Các điều khiển nút này cũng có thể được viết vào biểu mẫu thanh trạng thái, vui lòng tham khảoHướng dẫn cú phápcho các ví dụ chi tiết.
Cấu trúc củainput
trường là phù hợp với cấu trúc của một kiểm soát duy nhất tronggroup
Sau đây là mô tả chi tiết:
{
"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
}
Cấu hình thành phầnsettings
mỗi trường được mô tả chi tiết:
settings.required
: Liệu tùy chọn này có cần thiết hay không.settings.disabled
: Có nên vô hiệu hóa hay không.settings.min
: Có hiệu lực khitype=number
, chỉ ra giá trị tối thiểu hoặc chiều dài chuỗi tối thiểu.settings.max
: Có hiệu lực khitype=number
, chỉ ra giá trị tối đa hoặc chiều dài chuỗi tối đa.settings.step
: type=number
, có hiệu lực khirender=slider
, cho thấy chiều dài bước.settings.multiple
: type=selected
là hợp lệ, cho thấy hỗ trợ nhiều lựa chọn.settings.customizable
: type=selected
là hợp lệ, chỉ ra rằng tùy chỉnh được hỗ trợ; người dùng có thể trực tiếp chỉnh sửa và thêm các tùy chọn mới trong điều khiển hộp thả xuống. Nếu tùy chọn mới được chỉnh sửa được chọn, tên của tùy chọn được sử dụng thay vì giá trị đại diện cho tùy chọn khi tương tác được kích hoạt.settings.options
: Có hiệu lực khitype=selected
, chỉ định định dạng dữ liệu tùy chọn chọn:["option 1", "option 2"]
, [{'name':'xxx','value':0}, {'name':'xxx','value':1}]
.settings.render
: Loại thành phần hiển thị.
Khi nàotype=number
, settings.render
không được thiết lập (hộp nhập số mặc định), tùy chọn:slider
(bảng trượt),date
(chọn thời gian trả về dấu thời gian).
Khi nàotype=string
, settings.render
không được thiết lập (hộp nhập một dòng mặc định).textarea
(sản nhập nhiều dòng),date
(chọn thời gian trả về yyyy-MM-dd hh:mm:ss),color
(điểm chọn màu trả về #FF00FF).
Khi nàotype=selected
, settings.render
không được thiết lập (bộ thả xuống mặc định), tùy chọn:segment
(chọn phân đoạn).type=boolean
hiện chỉ có hộp kiểm mặc định.Hỗ trợ cài đặt song ngữ, ví dụ: nội dung văn bản của'选项 | options'
sẽ được điều chỉnh theo môi trường ngôn ngữ hiện tại;group
trường như một ví dụ, ví dụ đầy đủ là:
{
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}]
}
}
Các thông số chiến lược
Giao dịch quyền chọn