В процессе загрузки ресурсов... загрузка...

Визуализация редактирования стратегии расширения пользовательских библиотек

Автор:Изобретатели количественного измерения - мечты, Создано: 2020-10-17 11:27:43, Обновлено: 2023-09-27 19:39:37

img

Визуализация редактирования стратегии расширения пользовательских библиотек

Например, я хочу вычислить показатели MA, но система сама по себе имеет только:imgКак можно добавить к этим показателям некоторые персонализированные коды? Мы объясняем, как расширить модуль визуализации, добавляя модуль для вычисления индивидуальных показателей MA.

Классификация цифровых валют

Для начала, давайте поговорим о шаблоне, который используется для создания электронной валюты.https://www.fmz.com/strategy/10989Несмотря на то, что этот шаблон является шаблоном языка JavaScript для платформы FMZ, студенты, которые не понимают концепцию шаблона, могут обратиться к документации FMZ API:https://www.fmz.com/api#模板类库(См. Но в комментариях к началу шаблона есть код, который определяет визуализацию модуля, и в определённом коде можно ссылаться на код этого шаблона JavaScript.

Начальная часть - визуализированное определение:

/*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

Если у вас есть готовые примеры, то создать их своими руками проще, чем просто рисовать.

Сначала мы создали новый шаблон для языка JavaScript.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: текст, отображаемый на модуле.
  • template: код, выполняемый модулем.
  • output: тип вывода модуля.
  • args0: параметр ввода модуля, в коде определения модуля %1 представляет первый параметр ввода, %2 - второй.

Смотрите, как создается новый шаблон, и сохраните его. В политике, в которой мы должны использовать этот шаблон, выберите этот шаблон.img

Посмотрите, как появились два дополнительных модуля:

  • img

    Он создал модуль под названием testA, и мы посмотрим на его код выполнения:img

    function(){return 99;}()
    

    Это очень простая функция JavaScript, которая выполняется и возвращает значение 99.

  • img

    Он называется модуль MA Cycle, и мы посмотрим на его код выполнения:

    img

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

    Код является анонимным вызовом функции, в которой первым выполняется операция по получению данных K-строка, K-строка данных.r◄ затем, если r, полученный дляnullИлиrДлина не меньше, чем входный параметр модуля%1ВернутьсяfalseИли вернуться?TA.MA(r, %1)Результаты вычисления индикаторов.

Если вы хотите, вы можете использовать его позже.

Проверка расчета показателя MA

Визуализация стратегии редактора:img

Работает:img

Вы можете увидеть, что выше приведены данные по расчету показателя MA.

Выше приведены только параметры, которые можно расширить с помощью функций шаблона для дизайна визуализированных модулей.


Связанные

Больше