getposition Esta função dá um erro sem posição

Autora:Jiaozheng, Criado: 2018-04-12 16:36:42, Atualizado:

Como é que eu devo depurar este problema? Use o código abaixo para obter informações sobre posições se a conta não tiver posições enquanto (true) { Var position=_C (exchange.GetPosition)

se ((position==null) { Continuar Não. type=position[0].Type se (type ==PD_LONG) { Se você quiser, você pode fazer isso. Se você quiser, você pode fazer isso. Cancel Pending Orders (Cancelar ordens pendentes) exchange.SetDirection (em inglês) exchange.Sell (sellPrice,position[0].Amount) Exsell=SellPrice Não. Não. Quando a conta não tem posição, o getposition deve ser obtido como uma matriz em branco, então executar o contínuo dentro da expressão if para reiniciar o ciclo, mas o teste de disco real ainda dá um erro. TypeError: can't read property Type of undefined at main (Tipos de erros: não pode ler propriedade)Arquivo:129)

Tentei alterar as condições do if, como position[0]==null ou typeof ((position) ==undefined, mas não funcionaram ou executaram o comando type=position[0].

Como resolver esse problema?


Mais.

XionglonghuiA solução é a seguinte: Var position = _C (exchange.GetPosition); If (position.length > 0) - Não. // Por favor, coloque o código dentro deste grande parêntese. O princípio é o seguinte: primeiro, determine o comprimento da matriz que a função de armazenamento retorna, e o comprimento é maior que 0, o que significa que há informações de armazenamento, não é possível determinar diretamente com null, undefine. Depois, você pode acessar position[0] Não.

YumountO problema é o mesmo, senti a necessidade de configurar uma função tolerante a erros separadamente para o exchange.GetPosition, caso contrário, essa função é quase totalmente inutilizável sem armazenamento. A propósito, pergunte ao proprietário como foi a solução final.

Sonhos pequenosDepois de ler o post, descobri o problema, quando você chama exchange.GetPosition (() se você não tem um armazém, ele retornará [], um armazém vazio, que não é igual a null, é sua decisão. Quando a posição == null, é falsa, por isso não é desencadeada a continuação, então você acessa a posição[0] Este elemento não existe, por isso é indefinido, e a chamada de sua propriedade Type dá um erro.