3
focar em
1444
Seguidores

Resolva o problema de precisão da ordem obtendo a profundidade

Criado em: 2020-03-20 09:10:52, atualizado em: 2020-03-20 09:11:16
comments   2
hits   1602

Devido à falta de uniformidade entre as plataformas, a FMZ não tem uma função de precisão de retorno de pedidos uniforme. Se a estratégia for apenas uma moeda, é bom, se for compatível com vários pares de negociação, também compatível com várias plataformas, é recomendável usar a profundidade de aquisição, com base na informação de profundidade para calcular automaticamente a precisão de pedidos. A função é a seguinte:

function GetPrecision(){
    var precision = {price:0, amount:0}
    var depth = exchange.GetDepth()
    for(var i=0;i<exchange.GetDepth().Asks.length;i++){
        var amountPrecision = exchange.GetDepth().Asks[i].Amount.toString().indexOf('.') > -1 ? exchange.GetDepth().Asks[i].Amount.toString().split('.')[1].length : 0
        precision.amount = Math.max(precision.amount,amountPrecision)
        var pricePrecision = exchange.GetDepth().Asks[i].Price.toString().indexOf('.') > -1 ? exchange.GetDepth().Asks[i].Price.toString().split('.')[1].length : 0
        precision.price = Math.max(precision.price,pricePrecision)
    }
    return precision
}