Por exemplo, eu quero calcular um indicador de MA, mas o sistema só vem com:Como 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.
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:
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.
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
}
*/
Este novo modelo foi editado e salvo. Na política para usar este modelo, selecione este modelo.
A partir daí, você pode ver dois módulos adicionais:
O módulo é chamado testA, e vamos ver o código de execução dele:
function(){return 99;}()
Uma função de JavaScript simples que é executada e retorna um valor de 99.
O módulo é chamado de MA Cycle, e vamos ver o código de execução dele:
(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.r
Então, dependendo do r obtido, seránull
Our
O comprimento é menor do que o parâmetro de entrada do módulo%1
Para julgar o retornofalse
Ou voltar.TA.MA(r, %1)
Os resultados dos indicadores calculados.
A partir de agora, você pode usar o seu site para outras coisas.
A visualização estratégica é editada por:
A partir de:
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.