![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
longo é um tipo variável, mas repito que não é correcto.
PositionGetInteger() devolve tipo longo. Não precisa de se preocupar com tipos tão longos comoENUM_POSITION_TYPE.
De qualquer modo, o programador efectua uma conversão de tipo. É melhor que o escreva mais curto.
Aqui dão conselhos a programadores novatos...
Nextor257:
...
Porque é (longo) especificado antes de POSITION_TYPE_BUY ?
...
Trata-se de uma mudança de tipo por uma variável na mosca.
PositionGetInteger() devolve tipo longo. Não precisa de se preocupar com tipos tão longos comoENUM_POSITION_TYPE.
De qualquer modo, o programador efectua uma conversão de tipo. É melhor que o escreva mais curto.
Aqui dão conselhos a principiantes...
Incorrecto, porque depois disso a função de comparação é executada:
E POSITION_TYPE não é longo, mas
ENUM_POSITION_TYPE
Identificador
Descrição
POSITION_TYPE_BUY
Comprar
POSITION_TYPE_SELL
Venda
Errado, porque depois vem a comparação:
E POSITION_TYPE não é longo, mas
ENUM_POSITION_TYPE
Identificador
Descrição
POSITION_TYPE_BUY
Comprar
POSITION_TYPE_SELL
Venda
Sim... tem um conhecimento muito profundo em programação.
Parece não ter qualquer conhecimento - apenas ambição!
ENUM_POSITION_PROPERTY_INTEGER
Identificador
Descrição
Tipo
POSIÇÃO_TIME
Tempo de abertura da posição
data/hora
POSITION_TIME_MSC
Tempo de abertura da posição em milissegundos a partir de 01.01.1970
longo
POSITION_TIME_UPDATE
Tempo de mudança de posição em segundos desde 01.01.1970
longo
POSITION_TIME_UPDATE_MSC
Tempo de mudança de posição em milissegundos desde 01.01.1970
longo
POSIÇÃO_TIPO
Tipo de posição
ENUM_POSITION_TYPE
POSIÇÃO_MAGIC
Número mágico para a posição (ver ORDER_MAGIC)
longo
POSITION_IDENTIFIER
O identificador da posição é um número único, que é atribuído a cada posição recentemente aberta e permanece inalterado durante toda a sua vida útil. A inversão de uma posição não altera o identificador da posição.
longo
Parece não ter qualquer conhecimento - apenas ambição!
ENUM_POSITION_PROPERTY_INTEGER
Identificador
Descrição
Tipo
POSIÇÃO_TIME
Tempo de abertura da posição
data/hora
POSITION_TIME_MSC
Tempo de abertura da posição em milissegundos a partir de 01.01.1970
longo
POSITION_TIME_UPDATE
Tempo de mudança de posição em segundos desde 01.01.1970
longo
POSITION_TIME_UPDATE_MSC
Tempo de mudança de posição em milissegundos desde 01.01.1970
longo
POSIÇÃO_TIPO
Tipo de posição
ENUM_POSITION_TYPE
POSIÇÃO_MAGIC
Número mágico para a posição (ver ORDER_MAGIC)
longo
POSITION_IDENTIFIER
O identificador da posição é um número único, que é atribuído a cada posição recentemente aberta e permanece inalterado durante toda a sua vida útil. A inversão de uma posição não altera o identificador da posição.
longo
Para a função PositionGetDouble()
É o caso em que as pessoas dizem: "quando se olha para o livro, vê-se uma estatueta".
Tente compilá-lo primeiro:
Haverá um aviso.
Uma função não pode produzir tipos diferentes em casos diferentes. Será longa em qualquer caso. E acreditava que a mesma função devolve tipos diferentes? Sim... Ninguém se surpreende com superstições neste fórum, é normal...
ENUM_POSITION_TYPE na coluna de tipo significa que todos os valores de retorno possíveis estão no enumerador correspondente.
Também ajudaria a prestar mais atenção, o quadro acima refere-se ao PositionGetInteger(), e o PositionGetDouble() escrito abaixo não tem absolutamente nada a ver com ele.
Pergunto-me quem vê a "figura" ....
Escrevi-o desta forma:
Isto é uma mudança de tipo na mosca.
Pergunto-me quem vê a "figura" ....
Escrevi-o desta forma:
ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));
Porquê escrever ENUM_POSITION_TYPE antes do PositionGetInteger? Porque, segundo a sua crença, a função PositionGetInteger com o identificador POSITION_TYPE já devolve o tipo ENUM_POSITION_TYPE.
Porquê escrever ENUM_POSITION_TYPE antes de PositionGetInteger? Porque, segundo a sua crença, a função PositionGetInteger com identificador POSITION_TYPE já devolve o tipo ENUM_POSITION_TYPE.
Você é o Guru da programação - vá responder você mesmo....
E esta não é a minha "crença", mas a documentação...
Mas penso que a funçãoPositionGetInteger() devolve sempre o valor do tipo LONG e não importa o que estava "dentro" do INTRGER ou LONG.
Os programadores fizeram-no para evitar escrever duas funções.
Portanto, para obter o tipo de posição(e é INTEGER) é correcto fazer o que escrevi: