O recurso está a ser carregado... Carregamento...

Visualize a política de edição para expandir a biblioteca de classes personalizada

Autora:Inventor quantificado - sonho pequeno, Criado: 2020-10-17 11:27:43, Atualizado: 2023-09-27 19:39:37

img

Visualize a política de edição para expandir a biblioteca de classes personalizada

Por exemplo, eu quero calcular um indicador de MA, mas o sistema só vem com:imgComo podemos adicionar alguns códigos personalizados a esses indicadores? Como exemplo, adicionamos um módulo de cálculo de indicadores de MA personalizados para explicar como ampliar o módulo de visualização.

Biblioteca de transações de moeda digital

Para começar, vamos falar sobre o template da biblioteca de transações em tempo real da criptomoeda, que tem o endereço:https://www.fmz.com/strategy/10989Embora o modelo seja um modelo para a linguagem JavaScript da plataforma FMZ, os alunos que não entendem o conceito de modelo podem consultar o documento da API FMZ:https://www.fmz.com/api#模板类库Não. No entanto, no início do modelo, há uma nota que define o código para visualizar o módulo, e o código definido pode citar o código do modelo JavaScript.

A biblioteca de transações em tempo real de moedas digitais, visualização da definição da parte inicial:

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

Os módulos correspondentes na página de edição de visualização são:img

Construir um módulo com um indicador de MA calculado que você defina

Com um exemplo pronto, é muito mais fácil construir você mesmo do que pintar um pincel.

Primeiro, criar um novo modelo para a linguagem JavaScript.img

Edite o código do modelo.

/*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: A propriedade define o tipo do módulo, que pode ser definido por seu próprio nome.
  • message0: texto exibido no módulo.
  • template: código executado pelo módulo.
  • Output: Tipo de saída do módulo.
  • args0: Parâmetro de entrada do módulo, em que %1 representa o primeiro parâmetro de entrada no código de definição do módulo e %2 representa o segundo.

Este novo modelo foi editado e salvo. Na política para usar este modelo, selecione este modelo.img

A partir daí, você pode ver dois módulos adicionais:

  • img

    O módulo é chamado testA, e vamos ver o código de execução dele:img

    function(){return 99;}()
    

    Uma função de JavaScript simples que é executada e retorna um valor de 99.

  • img

    O módulo é chamado de MA Cycle, e vamos ver o código de execução dele:

    img

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

    O código é uma chamada de função anônima, em que a função anônima é executada primeiro para obter a operação de dados de linha K, dados de linha K.rEntão, dependendo do r obtido, seránullOurO comprimento é menor do que o parâmetro de entrada do módulo%1Para julgar o retornofalseOu voltar.TA.MA(r, %1)Os resultados dos indicadores calculados.

A partir de agora, você pode usar o seu site para outras coisas.

Teste de cálculo do indicador MA

A visualização estratégica é editada por:img

A partir de:img

O que você pode ver acima são os dados de cálculo do indicador MA.

O que foi dito acima é apenas um parâmetro, para o design de módulos de visualização, o modelo pode ser expandido usando a função de modelo.


Relacionados

Mais.