리소스 로딩... 로딩...

인터랙티브 제어

JavaScript, Python, C++, 및 MyLanguage 전략은 상호 작용 컨트롤로 설계될 수 있다. 전략의 상호 작용 컨트롤은 실시간 거래에서 전략이 실행될 때 실행 중인 전략 프로그램에 상호 작용 명령어를 보내는데 사용됩니다. 에 대해JavaScript, Python, 그리고C++언어 유형 전략,GetCommand()상호 작용 제어에 의해 생성되는 메시지를 얻기 위해 전략 코드에서 함수.

Interactive Control

대화형 제어 장치의 메시지를 처리하기 위해 전략에 설계된 코드에 따라 실시간 거래 중 대화형 제어 장치의 사용은 다음과 같은 기능을 가능하게 할 수 있습니다.

  • 전략 위치를 수동으로 닫습니다.
  • 전략 매개 변수를 역동적으로 수정하여 실시간 거래로 전략을 다시 시작하지 않도록 합니다.
  • 전략 논리를 바꿔
  • 특정 디버깅 정보, 데이터의 인쇄를 유발하고 특정 기능을 테스트하는 데 사용됩니다.

상호 작용 제어 장치의 종류

변수 (명 예제) 설명 종류 기본 값 (설명) 부품 구성 (설명) 언급
cmdNum 인터랙티브 컨트롤 cmdNum의 설명 번호 기본 값은 선택적이며 빈 상태로 남겨질 수 있습니다. 현재 인터랙티브 항목에 묶인 인터페이스 컨트롤을 설정하는 데 사용됩니다: 컴포넌트 유형, 최소 값, 최대 값, 그룹화 등. 인터랙티브 컨트롤 cmdNum에 대한 언급
cmdBool 인터랙티브 컨트롤 cmdBool의 설명 부올어 (진짜/거짓) 기본값 요구, 켜거나 꺼 위와 동일합니다. 인터랙티브 컨트롤 cmdBool에 대한 언급
cmdStr 인터랙티브 컨트롤 cmdStr의 설명 문자열 기본 값은 선택적이며 빈 상태로 남겨질 수 있습니다. 위와 동일합니다. 인터랙티브 컨트롤 cmdStr에 대한 언급
cmdCombox 인터랙티브 컨트롤 cmdCombox의 설명 선택 기본 값은 선택적이며 빈 상태로 남겨질 수 있습니다. 위와 동일합니다. 인터랙티브 컨트롤 cmdCombox에 대한 언급
cmdBtn 인터랙티브 컨트롤 cmdBtn의 설명 버튼 버튼 컨트롤은 입력 항목에 묶여 있지 않습니다 위와 동일합니다. 인터랙티브 컨트롤 cmdBtn에 대한 언급

인터랙티브 컨트롤이 트리거된 후에 전략에 보내는 메시지 (string): 인터랙티브 컨트롤 cmdNum 입력 상자에 인터랙티브 데이터 123을 입력한 후 인터랙티브 컨트롤 cmdNum 버튼을 클릭합니다. 전략 프로그램에서 GetCommand() 함수는 메시지 cmdNum:123을 수신합니다. 인터랙티브 컨트롤 cmdBool의 스위치 컨트롤을 켜고, 인터랙티브 컨트롤 cmdBool의 버튼을 클릭합니다.GetCommand()전략 프로그램에서 함수는 메시지를 받게 됩니다:cmdBool:true... 인터랙티브 데이터를 입력한 후:abc상호 작용 제어 cmdStr 입력 상자에서, 상호 작용 제어 cmdStr 버튼을 클릭합니다.GetCommand()전략 프로그램에서 함수는 메시지를 받게 됩니다:cmdStr:abc- 네 인터랙티브 컨트롤 cmdCombox의 드롭다운 박스에서 두 번째 옵션을 선택 한 후, 인터랙티브 컨트롤 cmdCombox의 버튼을 클릭합니다.GetCommand()전략 프로그램에서 함수는 메시지를 받게 됩니다:cmdCombox:11이 선택된 옵션의 인덱스를 나타내는 경우 첫 번째 옵션의 인덱스는 0이고 두 번째 옵션의 인덱스는 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 문자열로 이 버튼 제어 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}]
    }
}
전략 매개 변수 옵션 거래