// You can also construct a button in the form, and use GetCommand to receive the contents of the cmd attribute.
var table = {
type: 'table',
title: 'position operation',
cols: ['Column1', 'Column2', 'Action'],
rows: [
['abc', 'def', {'type':'button', 'cmd': 'coverAll', 'name': 'close position'}],
]
};
LogStatus('`' + JSON.stringify(table) + '`')
// Or construct a separate button
LogStatus('`' + JSON.stringify({'type':'button', 'cmd': 'coverAll', 'name': 'close position'}) + '`')
// Button styles can be customized (bootstrap's button attributes)
LogStatus('`' + JSON.stringify({'type':'button', 'class': 'btn btn-xs btn-danger', 'cmd': 'coverAll', 'name': 'close position'}) + '`')
Tài liệu API cho thấy hiển thị bảng, chuỗi, hình ảnh, biểu đồ, vv trong thanh trạng thái chiến lược được thực hiện bằng cách gọi hàm API:
LogStatus
- Không. Chúng ta cũng có thể thiết lập một nút tương tác bằng cách xây dựng một dữ liệu JSON.
function test1(p) {
Log("Calls a custom function with parameters:", p);
return p;
}
function main() {
while (true) {
var table = {
type: 'table',
title: 'position operation',
cols: ['Column1', 'Column2', 'Action'],
rows: [
['a', '1', {
'type': 'button', // To display a button, you must set the type to button.
'cmd': "CoverAll", // String, sent data, accepted by the GetCommand() function.
'name': 'close position' // The name displayed on the button.
}],
['b', '1', {
'type': 'button',
'cmd': 10, // numerical value
'name': 'Send value'
}],
['c', '1', {
'type': 'button',
'cmd': _D(), // The function is called for the duration of the strategy run
'name': 'call the function'
}],
['d', '1', {
'type': 'button',
'cmd': 'JScode:test1("ceshi")', // String, the JS code to execute.
'name': 'Send JS Code'
}]
]
};
LogStatus('`' + JSON.stringify(table) + '`')
var str_cmd = GetCommand();
if (str_cmd) {
Log("Received Interaction Data str_cmd:", "type:", typeof(str_cmd), "value:", str_cmd);
}
if (str_cmd && str_cmd.split(':', 2)[0] == "JScode") { // Determine if there is a message
var js = str_cmd.split(':', 2)[1]; // Split the returned message string, limit it to two, and assign the element with index 1 to a variable named js.
Log("Execute debugging code:", js); // Output executed code
try { // Abnormal detection
eval(js); // Executes the eval function, which executes the parameters (code) passed in.
} catch (e) { // throw an exception
Log("Exception", e); // Output error messages
}
}
Sleep(500);
}
}
Chúng ta hãy chạy nó. Chiến lược hoạt động như hình:
Chúng ta có thể kích hoạt tương tác bằng cách nhấp vào các nút trong bảng trên thanh trạng thái. Chúng ta sẽ nhấp vào các nút
> But it doesn't work when you click on "Send value" because[ ```'cmd': 10, // value``` ]Here is 10. Numeric types cannot be sent.
https://www.fmz.com![img](/upload/asset/2d8e0f86599f1b82da792544b7b840bc824d4a96.png)
# It has been optimized to be compatible with numeric values, and returns a string of values.
Tiếp theo chúng ta nhấp vào nút
Dữ liệu nhận được được in trong nhật ký:
Cuối cùng, chúng ta hãy nhấp vào nút
function test1(p) {
Log("Calls a custom function with parameters:", p);
return p;
}
Nhấp vào nút:
Bạn có thể thấy rằng Log (("Gọi chức năng tùy chỉnh với các tham số: ", p); tuyên bố trong test1 chức năng đã được thực hiện.
Chèn
Bắt đầu luyện tập ngay!