// 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'}) + '`')
API 문서는 전략 상태 표시줄에 테이블, 문자열, 이미지, 차트 등을 표시하는 것은 API 함수를 호출하여 수행된다는 것을 보여줍니다.
LogStatus
.우리는 JSON 데이터를 구성하여 대화형 버튼을 설정할 수도 있습니다.
DEMO 소스 코드:
“
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);
}
}
Let's run it. The strategy runs as shown:
![Constructing Interactive Button Functions in the Strategy Status Bar](/upload/asset/28d692a53d0c76776636b.png)
We can trigger the interaction by clicking on the buttons in the table on the status bar. We will click on the "Close Position" and "Send Value" buttons in turn.
When we click on the "Close Position" button, the message will be sent as normal:
![Constructing Interactive Button Functions in the Strategy Status Bar](/upload/asset/28d692a53d0c76776636b.png)
![Constructing Interactive Button Functions in the Strategy Status Bar](/upload/asset/28d4338ccfcdaf615af37.png)
하지만
Send Value를 클릭하면 작동하지 않습니다. 'cmd': 10, // value
여기 10번이 있습니다. 숫자 타입은 전송할 수 없습니다.https://www.fmz.com!전략 상태 표시줄에 있는 인터랙티브 버튼 함수[(/upload/asset/2d8e0f86599f1b82da792544b7b840bc824d4a96.png)
숫자의 값과 호환되도록 최적화되었으며 값의 문자열을 반환합니다.
”`
다음으로
수신된 데이터는 로그에 인쇄됩니다.
마지막으로, JS 코드를 보내기 버튼을 클릭하면 코드를 테스트하는 사용자 정의 함수를 실행할 수 있습니다.
function test1(p) {
Log("Calls a custom function with parameters:", p);
return p;
}
버튼을 클릭하세요:
로그 (Log)
변수와 사용자 정의 함수를 호출하는 것을 볼 수 있습니다: , p); 함수 테스트1에서 명령어가 실행되었습니다.
당장 연습을 시작해!