Erros, bugs, perguntas - página 1886
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Então, qual é a questão?
Onde se pode ver que sob o número "i" existe uma posição com bilhete de sucção, para símbolo de sucção e tal? Em geral, para além da simples saída do número de sequência, também se emite o bilhete e o símbolo.
É normal que para situações diferentes, uma função dê o mesmo valor?
ZS: a propósito, havia uma pergunta no correio.
O ponto é, se eu seleccionar comprar, a função(PositionGetInteger(POSITION_TYPE)) retorna 0
E se seleccionar uma posição inexistente, a função também retornará 0
É normal que para situações diferentes uma função dê o mesmo valor?
O que são "situações diferentes"? E fazer como recomendei acima:
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Insectos, insectos, perguntas
Vladimir Karputov, 2017.05.12 11:15
...
Em geral, para além da simples saída do número de sequência, também se emite o bilhete e o símbolo.
Eu sei que preciso de verificar, mas as coisas podem acontecer...
A função devolve a propriedade solicitada de uma posição aberta, previamente seleccionada usando a funçãoPositionGetSymbol ouPositionSelect. A propriedade da posição deve ser do tipo data/hora, int. Existem 2 variantes da função.
1. Devolve directamente o valor do imóvel.
longGetInteger(
ENUM_POSITION_PROPERTY_INTEGERpropriedade_id// identificador da propriedade
);
2. Devolve verdadeiro ou falso, dependendo do sucesso da função. Se bem sucedido, o valor da propriedade é colocado na variável alvo, que é passada por referência ao último parâmetro.
boolPositionGetInteger(
ENUM_POSITION_PROPERTY_INTEGERproperty_id,// identificador da propriedade
longo&long_var//tomar o valor do bem
);
Parâmetros
property_id
O identificador [in] da propriedade da posição. O valor pode ser um dos valores de enumENUM_POSITION_PROPERTY_INTEGER.
long_var
[Variável do tipo longo, tomando o valor do bem solicitado.
Valor devolvido
Valor da tipografia ao longo da vida. Em caso de execução falhada, devolve 0.
A situação é mais subtil com a magia. Portanto, é lógico fazer uma verificação (PositionGetInteger(POSITION_TICKET) > 0).
Sim, é bom fazer uma verificação.
Mas quando se escreve uma função, tenta-se sempre assegurar que ela devolve um valor diferente em situações diferentes.
Penso que é incorrecto que o mesmo valor saia da função em situações diferentes.mas quando se escreve uma função, tenta-se sempre obter um valor diferente para situações diferentes.
Esta é a razão pela qual a Magic o mencionou. O que devolver em caso de erro PositionGetInteger(POSITION_MAGIC) ?
Não há problema se uma função dá o mesmo valor para situações diferentes?
ZS: a propósito, havia uma pergunta no correio.
o ponto é, se eu seleccionar comprar, a função(PositionGetInteger(POSITION_TYPE)) retorna 0
e se seleccionar uma posição inexistente, a função também retornará 0
Assim, a primeira chamada é utilizada quando se GARANTE uma posição (como tem no laço). E aqui está a segunda forma de chamada
para os casos em que a posição é seleccionada a partir do nada.
Faça isso e acredite no que obtém na variável "resultado" - tudo se encaixa no lugar:
0 - a posição é aberta manualmente. correcto?
Assim, a primeira chamada é utilizada quando se GARANTE uma posição (como tem no laço). E aqui está a segunda forma de chamada
para os casos em que a posição é seleccionada a partir do nada.
Faça isto e acredite no que obtém na variável "resultado" - tudo se encaixa no lugar:
não é essa a questão, é que a função devolve o mesmo valor para situações diferentes.
Eu sei como verificar.
a questão original era se é de todo normal?
SZY: um erro pode ser cometido involuntariamente e depois, em código 100000, cansar-se-á de o procurar.
O quê? Não tem de cometer erros? )
não é esta a questão, mas a função retorna o mesmo valor para situações diferentes.
Eu sei como verificá-lo
A questão era originalmente sobre se isto é de todo normal?
Vós, como eu vejo, não verificastes o código que vos mostrei. Que tal isto: verifica-se primeiro, depois volta-se a fazer a pergunta.