Politique d'édition visualisée pour étendre les bibliothèques personnalisées

Auteur:Le petit rêve, Créé: 2020-10-17 11:27:43, Mis à jour: 2023-09-27 19:39:37

img

Politique d'édition visualisée pour étendre les bibliothèques personnalisées

Comment étendre la bibliothèque de classes personnalisée dont vous avez besoin à la stratégie de visualisation? Par exemple, je veux calculer un indicateur MA, mais le système n'apporte que:imgCes indicateurs, comment ajouter des codes personnalisés? Nous avons expliqué comment étendre le module de visualisation en ajoutant un module de calcul d'indicateur MA personnalisé.

Bibliothèque de négociation de devises

Tout d'abord, un exemple de ce modèle est celui de l'outil de trading de crypto-monnaie, qui s'appelle:https://www.fmz.com/strategy/10989Bien que ce modèle soit un modèle pour le langage JavaScript de la plateforme FMZ, les élèves qui ne comprennent pas le concept de modèle peuvent consulter la documentation de l'API FMZ:https://www.fmz.com/api#模板类库Je vous en prie. Mais il y a un commentaire au début du modèle qui définit le code pour visualiser le module, et le code défini peut citer le code de ce modèle JavaScript.

La bibliothèque de transactions instantanées de crypto-monnaie, définition visualisée dans la première partie:

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

Les modules correspondant à la page d'édition visualisée:img

Construire un module pour calculer des indicateurs de MA définies par vous-même

Avec des exemples prêts à l'emploi, c'est plus facile de construire soi-même, que de peindre une peinture.

Tout d'abord, nous avons créé un nouveau modèle pour le langage JavaScript.img

Modifier le code du modèle.

/*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: l'attribut définit le type de module, qui peut être défini par son propre nom.
  • message0: le texte affiché sur le module.
  • Template:Code exécuté par le module.
  • Output: le type de sortie du module.
  • args0: paramètre d'entrée du module, dans le code de définition du module, %1 représente le premier paramètre d'entrée et %2 représente le second.

Ce nouveau modèle a été édité et sauvegardé. Dans la stratégie pour utiliser ce modèle, cliquez sur ce modèle.img

Vous pouvez voir deux modules supplémentaires:

  • img

    Il s'agit d'un module appelé testA, et nous allons voir son code d'exécution:img

    function(){return 99;}()
    

    C'est une fonction JavaScript très simple qui est exécutée et qui renvoie une valeur de 99.

  • img

    Il s'agit d'un module appelé MA Cycle, et nous allons voir son code d'exécution:

    img

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

    Le code est un appel à une fonction anonyme, dans laquelle l'opération d'obtention de données de ligne K est effectuée en premier lieu.rEnsuite, si on obtient r, c'est pournullOu alorsrLa longueur est inférieure à la paramètre d'entrée du module%1Pour juger.falseOu retourner.TA.MA(r, %1)Les résultats de l'indicateur calculé.

Il est possible de l'utiliser plus tard.

Le test de calcul de l'indicateur MA

Le site Web de l'organisation est en ligne.img

Il fonctionne:img

Vous pouvez voir ci-dessus les données pour le calcul de l'indicateur MA.

Ce qui précède n'est qu'une simple mise en page, et pour la conception des modules de visualisation, la fonctionnalité de modèle peut être étendue par elle-même.


Relationnée

Plus de