시각화 편집 정책 확장 사용자 정의 클래스 라이브러리

저자:작은 꿈, 2020-10-17 11:27:43, 업데이트: 2023-09-27 19:39:37

img

시각화 편집 정책 확장 사용자 정의 클래스 라이브러리

어떻게 시각화 전략에 필요한 사용자 정의 클래스 라이브러리를 확장할 수 있습니까? 예를 들어, 저는 MA 지표를 계산하고 싶지만, 시스템 자체는 다음과 같은 것만을 가지고 있습니다.img이 지표들은 어떻게 사용자 정의 코드를 추가할 수 있을까요? 우리는 사용자 지정 MA 지표 계산 모듈을 추가하여 시각화 모듈을 확장하는 방법을 설명합니다.

디지털 화폐 현금 거래 목록

먼저, 디지털 화폐 현금 거래소 의 템플릿에 대해 이야기 해 보겠습니다.https://www.fmz.com/strategy/10989이 템플릿은 FMZ 플랫폼 자바스크립트 언어의 템플릿이지만, 템플릿 개념을 이해하지 못하는 학생들은 FMZ API 문서에 문의할 수 있습니다:https://www.fmz.com/api#模板类库(중략) 하지만 템플릿의 시작 부분의 주석에 정의된 시각화 모듈의 코드가 있고 정의된 코드는 이 자바스크립트 템플릿의 코드를 참조할 수 있다. 이것은 우리가 직접 확장하는 것이 매우 편리하다. (좋은 예제를 제공해, 따라가자.)

디지털 화폐 현금 거래 클래식, 시작 부분의 시각화 정의:

/*blockly
    {
        "type": "ext_Trade",
        "message0": "%1 币数 %2|%1 Coins %2",
        "args0": [{
            "type": "field_dropdown",
            "options": [
                ["买入|Buy", "Buy"],
                ["卖出|Sell", "Sell"]
            ]
        }, {
            "type": "input_value",
            "check": "Number"
        }],
        "template": "(function(){var r = $.%1(%2); return r ? r.amount : 0; })()",
        "order": "ORDER_ATOMIC",
        "output": "Number",
        "colour": 85
    }, {
        "type": "ext_CancelPendingOrders",
        "message0": "取消 %1 订单|Cancel %1 Orders",
        "args0": [{
            "type": "field_dropdown",
            "name": "TYPE",
            "options": [
                ["所有|All", " "],
                ["买单|Buy", "ORDER_TYPE_BUY"],
                ["卖单|Sell", "ORDER_TYPE_SELL"]
            ]
        }],
        "previousStatement": null,
        "nextStatement": null,
        "template": "$.CancelPendingOrders(%1);",
        "colour": 85
    }, {
        "type": "ext_Cross",
        "message0": "计算交叉 周期 %1 与 %2|Cross Period %1 and %2",
        "inputsInline": true,
        "args0": [{
            "type": "input_value"
        }, {
            "type": "input_value"
        }],
        "template": "$.Cross(%1,%2)",
        "order": "ORDER_ATOMIC",
        "output": "Number"
    }, {
        "type": "ext_GetAccount",
        "message0": "获取资产信息|GetAccount",
        "template": "$.GetAccount()",
        "order": "ORDER_ATOMIC",
        "output": null
    }
*/

각 모듈은 시각화 편집 페이지에 해당합니다.img

자기 정의된 계산 MA 지표를 구성하는 모듈

이미 준비된 예시들을 가지고 있으면, 직접 직접 만드는 것이 훨씬 쉬워, 심지어는 그림 그리는 것보다도.

먼저, 새로운 자바스크립트 언어 템플릿을 만들었습니다.img

템플릿 코드를 편집합니다.

/*blockly
    {
        "type": "ext_testA",
        "message0": "testA|testA",
        "template": "function(){return 99;}()",
        "order": "ORDER_ATOMIC",
        "output": "Number"
    },{
        "type": "ext_MA",
        "message0": "MA 周期 %1| MA Period %1",
        "args0": [{
            "type": "input_value",
            "check": "Number"
        }],
        "template": "(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()",
        "order": "ORDER_ATOMIC",
        "output": null,
        "colour": 85
    }
*/
  • type: 속성이 모듈의 유형을 정의하고, 이름을 스스로 정의할 수 있다.
  • message0: 모듈에 표시되는 텍스트.
  • 템플릿: 모듈이 실행하는 코드.
  • output: 모듈의 출력 유형.
  • args0: 모듈의 입력 매개 변수, 모듈 정의 코드에서 %1는 첫 번째 입력 매개 변수, %2는 두 번째를 나타냅니다.

이 새 템플릿은 편집 후 저장합니다. 이 템플릿을 사용해야 하는 정책에서 이 템플릿을 선택합니다.img

이 글은 다른 모드에서 볼 수 있습니다.

  • img

    이 모듈은 testA라고 불리며, 이 모듈의 실행 코드를 살펴보면 다음과 같습니다.img

    function(){return 99;}()
    

    이 함수는 99의 값을 반환하는 간단한 자바스크립트 함수입니다.

  • img

    "MA 사이클의 모듈"이라고 불리는 이 모듈의 실행 코드를 살펴보면 다음과 같습니다.

    img

    (function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
    

    코드는 익명 함수 호출이며, 익명 함수에서는 먼저 K선 데이터, K선 데이터를 획득하는 작업을 수행합니다.rr가 r에 해당하는지 여부에 따라null또는r길이는 모듈의 입력 파라미터보다 작지 않습니다%1다시 돌아와서false다시 돌아가는 것TA.MA(r, %1)이 지표의 결과는

이 글은 다른 글과 비교해 볼 수 있습니다.

테스트 계산 MA 지표

비주얼 전략 편집자:img

실행:img

위와 같이 MA 지표 계산을 위해 원하는 대가를 받는 데이터를 볼 수 있습니다.

위의 것은 단지 어 놓는 것입니다. 시각화 모듈의 디자인을 위해 템플릿 기능을 사용하여 자체 확장할 수 있습니다.


관련

더 많은