Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 816

 
Ivan Ivanov:

Apenas informação sobre 1 (seleccionado ) posição está disponível de cada vez:

Está a declarar um facto ou uma referência? Não consegui encontrar nada parecido em lado nenhum com uma busca.

 
pivomoe:

Está a declarar um facto ou está a pedir um certificado? Não consegui encontrar nada parecido em lado nenhum através de uma busca.

A fim de recuperar qualquer propriedade de posição, a posição desejada deve ser pré-seleccionada.
Pode ver qualquer descrição das funções de recuperação das propriedades das posições PosotionGetXXXX na ajuda:
A função devolve a propriedade solicitada de uma posição aberta, previamente seleccionada usando a funçãoPositionGetSymbol ouPositionSelect.
Pode pensar desta forma: no supermercado, se quiser ler o que está escrito no rótulo de um frasco de compota, primeiro tem de pegar no frasco de compota.
 
fxsaber:
A julgar pelo "que resultou no seu erro", não encontraram o erro em 1730, mas numa versão anterior. Isto é, segundo os criadores em 1730, tudo funciona agora perfeitamente a este respeito.
 
Vladimir Karputov:
A fim de obter qualquer propriedade da posição, é necessário seleccionar previamente a posição requerida.
Pode ver qualquer descrição das funções de recuperação das propriedades das posições PosotionGetXXXX na ajuda:
A função devolve a propriedade solicitada de uma posição aberta previamente seleccionada utilizando osímbolo PositionGetSymbol ou afunçãoPositionSelect.
Pode pensar desta forma: no supermercado, se quiser ler o que está escrito no rótulo de um frasco de compota, primeiro tem de pegar no frasco de compota.
Compreendo que temos de seleccionar a posição e encomendar antes de obtermos as suas informações. Não vejo o que a classe CPositionInfo tem a ver com isto. Se tivermos uma classe, podemos criar muitos objectos desta classe. E, por conseguinte, cada um destes objectos pode ser montado para a sua própria posição. Isto é uma loucura - pode criar um milhão de objectos CPositionInfo, mas todos eles funcionarão apenas com a posição que foi seleccionada pela última vez usando o método Select().
 
pivomoe:
Compreendo que temos de seleccionar uma posição e uma ordem antes de obter informações sobre eles. Não percebo o que é que a classe CPositionInfo tem a ver com isto? Se tivermos uma classe, podemos criar muitos objectos dessa classe. E, por conseguinte, cada um destes objectos pode ser montado para a sua própria posição. Isto é um disparate, pelo que se pode criar pelo menos um milhão de objectos CPositionInfo, mas todos eles funcionarão apenas com a posição que foi seleccionada pela última vez utilizando o método Select().
A função PositionSelect() copia os dados de posição para o ambiente do programa e as chamadas subsequentes paraPositionGetDouble(),PositionGetInteger(), ePositionGetString()devolvem os dados previamente copiados
Se quiser guardar um conjunto de dados sobre duas ou mais posições, escreva a sua própria estrutura e copie os dados de posição para a mesma.
 
pivomoe:
Compreendo que tem de seleccionar uma posição e uma ordem antes de obter informações sobre eles. Não compreendo o que a classe CPositionInfo tem a ver com isto. Se tivermos uma classe, podemos criar muitos objectos dessa classe. E, por conseguinte, cada um destes objectos pode ser montado para a sua própria posição. Isto é um disparate, pode criar pelo menos um milhão de objectos CPositionInfo, mas todos eles trabalharão apenas com a posição que foi seleccionada pela última vez utilizando o método Select().
O CArrayObj irá ajudá-lo. E armazenar os objectos de encomenda/posição nesta lista. E obter todos os dados necessários sobre eles.
 

Vamos continuar aqui.

Vladimir Karputov:
A função PositionSelect() copia os dados de posição para o ambiente de programação e chamadas subsequentes paraPositionGetDouble(),PositionGetInteger() ePositionGetString()devolvem os dados previamente copiados

Compreendo tudo isto tal como está bem explicado na ajuda. Não percebo o que é que isto tem a ver com a classe CPositionInfo?

Tem uma função de Volume() . Existem requisitos antes de chamar esta função (seleccionar uma posição antes de a utilizar). Estou a cumprir estes requisitos. Não vejo porque é que devolve um volume absolutamente errado. Bem, é assim, difícil de lembrar no momento da última chamada (para este objecto de classe) Símbolo Select(), que me interessa, e já está no momento da chamada de Volume() para encontrar a posição que corresponde a este símbolo e devolver o volume correspondente a esta posição?



Por outras palavras, a utilização de dois objectos da classe PositionInfo neste caso está errada.

Acontece que não faz sentido na classe CPositionInfo, porque normalmente só se pode trabalhar com um único objecto desta classe.

 
Compreendo correctamente que o método Volume da classe CPositionInfo devolve o volume correspondente ao ponto no tempo em que o método Select() foi chamado pela última vez? Ou seja, é possível descobrir o volume que foi há um mês atrás para este símbolo?
 
pivomoe:

Vamos continuar aqui.

Compreendo tudo isto tal como está bem explicado na ajuda. Não compreendo o que isto tem a ver com a classe CPositionInfo.

Tem uma função Volume() . Existem requisitos antes de chamar esta função (seleccionar a posição antes de a utilizar). Estou a cumprir estes requisitos. Não vejo porque é que devolve o volume errado. Bem, é realmente difícil memorizar no momento da última chamada (para este objecto de classe) o símbolo Select(), que me interessa, e já está no momento da chamada de Volume() para encontrar a posição que corresponde a este símbolo e devolver o volume correspondente a esta posição?


Acontece que não faz sentido na classe CPositionInfo, porque normalmente só se pode trabalhar com um único objecto desta classe.

A classe comercial CPositionInfo funciona perfeitamente quando se compreende o que ela faz.
Deixe-me explicar: CPositionInfo não é um caixão que armazena todas as propriedades da posição seleccionada, é uma chave (conveniente, rápida, substituindo um monte de linhas de código) para aceder às propriedades da posição seleccionada.