JavaScript
, Python
, C++
, 및 MyLanguage 전략은 상호 작용 컨트롤로 설계될 수 있다. 전략의 상호 작용 컨트롤은 실시간 거래에서 전략이 실행될 때 실행 중인 전략 프로그램에 상호 작용 명령어를 보내는데 사용됩니다.
에 대해JavaScript
, Python
, 그리고C++
언어 유형 전략,GetCommand()
상호 작용 제어에 의해 생성되는 메시지를 얻기 위해 전략 코드에서 함수.
대화형 제어 장치의 메시지를 처리하기 위해 전략에 설계된 코드에 따라 실시간 거래 중 대화형 제어 장치의 사용은 다음과 같은 기능을 가능하게 할 수 있습니다.
변수 (명 예제) | 설명 | 종류 | 기본 값 (설명) | 부품 구성 (설명) | 언급 |
---|---|---|---|---|---|
cmdNum | 인터랙티브 컨트롤 cmdNum의 설명 | 번호 | 기본 값은 선택적이며 빈 상태로 남겨질 수 있습니다. | 현재 인터랙티브 항목에 묶인 인터페이스 컨트롤을 설정하는 데 사용됩니다: 컴포넌트 유형, 최소 값, 최대 값, 그룹화 등. | 인터랙티브 컨트롤 cmdNum에 대한 언급 |
cmdBool | 인터랙티브 컨트롤 cmdBool의 설명 | 부올어 (진짜/거짓) | 기본값 요구, 켜거나 꺼 | 위와 동일합니다. | 인터랙티브 컨트롤 cmdBool에 대한 언급 |
cmdStr | 인터랙티브 컨트롤 cmdStr의 설명 | 문자열 | 기본 값은 선택적이며 빈 상태로 남겨질 수 있습니다. | 위와 동일합니다. | 인터랙티브 컨트롤 cmdStr에 대한 언급 |
cmdCombox | 인터랙티브 컨트롤 cmdCombox의 설명 | 선택 | 기본 값은 선택적이며 빈 상태로 남겨질 수 있습니다. | 위와 동일합니다. | 인터랙티브 컨트롤 cmdCombox에 대한 언급 |
cmdBtn | 인터랙티브 컨트롤 cmdBtn의 설명 | 버튼 | 버튼 컨트롤은 입력 항목에 묶여 있지 않습니다 | 위와 동일합니다. | 인터랙티브 컨트롤 cmdBtn에 대한 언급 |
인터랙티브 컨트롤이 트리거된 후에 전략에 보내는 메시지 (string):
인터랙티브 컨트롤 cmdNum 입력 상자에 인터랙티브 데이터 GetCommand()
전략 프로그램에서 함수는 메시지를 받게 됩니다:cmdBool:true
...
인터랙티브 데이터를 입력한 후:abc
상호 작용 제어 cmdStr 입력 상자에서, 상호 작용 제어 cmdStr 버튼을 클릭합니다.GetCommand()
전략 프로그램에서 함수는 메시지를 받게 됩니다:cmdStr:abc
- 네
인터랙티브 컨트롤 cmdCombox의 드롭다운 박스에서 두 번째 옵션을 선택 한 후, 인터랙티브 컨트롤 cmdCombox의 버튼을 클릭합니다.GetCommand()
전략 프로그램에서 함수는 메시지를 받게 됩니다:cmdCombox:1
1이 선택된 옵션의 인덱스를 나타내는 경우 첫 번째 옵션의 인덱스는 0이고 두 번째 옵션의 인덱스는 1입니다
인터랙티브 컨트롤 cmdBtn의 버튼을 클릭합니다.GetCommand()
전략 프로그램에서 함수는 메시지를 받게 됩니다:cmdBtn
.
전략 인터랙티브 컨트롤의
상호 작용 제어 장치로 지원되는 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 문자열로 이 버튼 제어 JSON 데이터를 인코드하고,`
자바스크립트 언어를 예로 들어보죠.
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}]
}
}
전략 매개 변수
옵션 거래