Erros, bugs, perguntas - página 1887
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Vós, como eu vejo, não verificastes o código que vos mostrei. Coloquemos as coisas desta forma: primeiro verifica-se, depois volta-se a fazer a pergunta.
Não preciso de o verificar, posso ver que devolve o que deveria.
Estava a falar da primeira utilização da função
Não preciso de o verificar, posso ver que me devolve o que preciso
Estava a falar da primeira variante da utilização da função
Ok, então. Vamos da cauda.
1. PositionGetInteger:
A função devolve a propriedade solicitada de uma posição aberta previamente seleccionada utilizando a função...
Ou seja, antes de utilizar a PositionGetInteger, a posição deve ser seleccionada primeiro.
2. Seleccionamos a posição utilizando o PositionGetTicket:
Valor de retorno.
O bilhete de posição. No caso de uma execução mal sucedida, devolve 0.
E onde tem um cheque (após o laço) de que foi devolvido pelo PositionGetTicket? Não há verificação, e aí, a propósito, "zero" é devolvido - ou seja, PositionGetTicket foi accionado com um erro - o que equivale a seleccionar uma posição que não existe. Depois, sem verificar o resultado do PositionGetTicket, tenta-se obter a sua propriedade da posição inexistente. E aí, nas propriedades da posição inexistente, ou o lixo ou apenas dados de estruturas nulas.
Resumindo: sem verificar se o PositionGetTicket devolve "zero", não se pode ir mais longe.
Ok, então. Vamos da cauda.
1. PositionGetInteger:
A função devolve a propriedade solicitada de uma posição aberta previamente seleccionada utilizando a função...
Ou seja, a posição deve ser primeiro seleccionada antes de se utilizar a PositionGetInteger.
2. Seleccionamos a posição utilizando o PositionGetTicket:
Valor de retorno.
O bilhete de posição. No caso de uma execução mal sucedida, devolve 0.
E onde tem um cheque (após o laço) de que foi devolvido pelo PositionGetTicket? Não há verificação, e aí, a propósito, "zero" é devolvido - ou seja, PositionGetTicket foi accionado com um erro - o que equivale a seleccionar uma posição que não existe. Depois, sem verificar o resultado do PositionGetTicket, tenta-se obter a sua propriedade da posição inexistente. E aí, nas propriedades da posição inexistente, ou o lixo ou apenas dados de estruturas nulas.
Para resumir: sem verificar o PositionGetTicket para devolver "zero", não se pode ir mais longe.
Ok, vamos assim. Vamos da cauda.
1. PositionGetInteger:
A função devolve a propriedade solicitada de uma posição aberta previamente seleccionada utilizando a função...
Ou seja, a posição deve ser primeiro seleccionada antes de se utilizar a PositionGetInteger.
2. Seleccionamos a posição utilizando o PositionGetTicket:
Valor de retorno.
O bilhete de posição. No caso de uma execução mal sucedida, devolve 0.
E onde tem um cheque (após o laço) de que foi devolvido pelo PositionGetTicket? Não há verificação, e aí, a propósito, "zero" é devolvido - ou seja, PositionGetTicket foi accionado com um erro - o que equivale a seleccionar uma posição que não existe. Depois, sem verificar o resultado do PositionGetTicket, tenta-se obter a sua propriedade da posição inexistente. E aí, nas propriedades da posição inexistente, ou o lixo ou apenas dados de estruturas nulas.
Resumindo: sem verificar o PositionGetTicket para o retorno do "zero", não se pode ir mais longe.
não precisa de se explicar )
Não é essa a questão.
leia correctamente: uma função pode devolver o mesmo valor para situações diferentes?
a função pode fazer isso?Para resumir: sem verificar PositionGetTicket para um retorno de "zero" não se pode avançar.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Insectos, insectos, perguntas
fxsaber, 2017.05.12 11:19
é lógico fazer uma verificação (PositionGetInteger(POSITION_TICKET) > 0).que a função para situações diferentes devolve o mesmo valor?
é correcto que a função faça isto?Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Insectos, insectos, perguntas
fxsaber, 2017.05.12 11:29
Sim. Mas qualquer outro valor também seria enganador.1. não precisa de se explicar).
não é essa a questão
2. leia-o correctamente: uma função pode devolver o mesmo valor para situações diferentes?
é correcto que uma função o faça?1. É uma pessoa rude que também cometeu um erro no seu código, mas não o quer admitir.
2. A função funciona de forma absolutamente correcta. Porque ele (PositionGetInteger(POSITION_TYPE)) só pode devolver 2 valores - ou POSITION_TYPE_BUY ouPOSITION_TYPE_SELL. Mas sem seleccionar uma posição (e não a selecciona - não verifica o que foi exactamente seleccionado) para exigir algo de (PositionGetInteger(POSITION_TYPE)) é imprudente.
Conclusão: quando o seu código é escrito com um erro lógico - simplesmente não tem o direito de exigir algo das funções do sistema.
Conclusão: quando o seu código é escrito com um erro lógico - simplesmente não tem o direito de exigir nada das funções do sistema.
1. É uma pessoa mal-educada que cometeu um erro no código mas não o admite.
2. A função funciona de forma absolutamente correcta. Porque ele (PositionGetInteger(POSITION_TYPE)) só pode devolver DOIS valores - ou POSITION_TYPE_BUY ouPOSITION_TYPE_SELL. Mas sem seleccionar uma posição (e não a selecciona - não verifica o que foi exactamente seleccionado) para exigir algo de (PositionGetInteger(POSITION_TYPE)) é imprudente.
Conclusão: quando o seu código é escrito com um erro lógico, simplesmente não tem o direito de exigir algo das funções do sistema.
Lamento, não é culpa minha que alguém não consiga ver o problema.
O facto de que existe um erro deliberado no código é reconhecido.
E eu sei como consertá-lo.
Mas a questão é diferente.
Porque é que a função PositionGetInteger(POSITION_TYPE) devolve um valor de compra (igual a 0) em vez de um valor de erro (igual a 0) se os parâmetros de entrada não estiverem correctos?