for (int i = PositionsTotal()-1; i>=0; i--) {string symbol = PositionGetSymbol(i); ulong magic = PositionGetInteger(POSITION_MAGIC); if (symbol == _Symbol && magic == magicnum) {Print(PositionGetDouble(POSITION_PRICE_OPEN))}};
Olá ArmandoJunior70!
Obrigado pela ajuda, agora o EA identifica o preço em que cada posição foi aberta! Porém, o que ainda não consegui fazer é atribuir os valores encontrados a uma variável, ou seja, gostaria de atribuir um nome para cada preço que encontrei. Tomando o exemplo que utilizei anteriormente, gostaria de que o EA identificasse o nível de preço em que cada posição foi aberta (isso o EA está fazendo) e atribuísse “preco1” ao nível de preço em que a primeira posição foi aberta, “preco2” ao nível de preço em que a segunda posição foi aberta, e assim sucessivamente. Se puder me ajudar com mais esse detalhe, ficarei muito grato.
Abraços,
Henrique
Olá Henrique,
a melhor maneira para fazer isso seria trabalhar com uma Array (tabela) onde o preço 1 seria a primeira posição da tabela, o preço 2 seria a segunda e assim por diante. Não se esqueça que a numeração de uma Array começa com zero, então o preço 1 seria a posição 0, o preço 2 seria a posição 1 e assim por diante...
double tab_precos[]; int qt_precos = 0; // a cada posição aberta qt_precos = qt_precos + 1; ArrayResize(tab_precos,qt_precos); tab_precos[qt_precos - 1] = PositionGetDouble(POSITION_PRICE_OPEN); // depois tab_precos[0] = preço 1 tab_precos[1] = preco 2 etc...
Olá,
Sou novo aqui no fórum e comecei a programar EAs há pouco tempo. Estou tentando obter e armazenar os níveis de preços que realizei minhas operações. Exemplo: Realizei 3 compras no ativo “EURUSD”, sendo elas nos níveis de preços “1.21270”; “1.21273” e “1.21275”. Busco de obter a seguinte resposta do EA:
preco1 = 1.21270
preco2 = 1.21273
preco3 = 1.21275
Tentei utilizar o código abaixo, porém ele só me retorna o primeiro preço, “1.21270”.
if(PositionSelect(_Symbol))
Print(PositionGetDouble(POSITION_PRICE_OPEN));
Agradeço se puderem me ajudar.
Abraços,
Henrique
Voce precisa ler o manual basico da ferramenta sobre as diferencas entre os tipos de conta: https://www.mql5.com/pt/articles/2299 . Se nao tu vai precisar fazer isso de uma forma muito mais complexa.
- www.mql5.com
Olá Henrique,
a melhor maneira para fazer isso seria trabalhar com uma Array (tabela) onde o preço 1 seria a primeira posição da tabela, o preço 2 seria a segunda e assim por diante. Não se esqueça que a numeração de uma Array começa com zero, então o preço 1 seria a posição 0, o preço 2 seria a posição 1 e assim por diante...
Olá ArmandoJunior70!
Novamente muito obrigado pela sua ajuda, deu certo aqui!
Abraços,
Henrique
Voce precisa ler o manual basico da ferramenta sobre as diferencas entre os tipos de conta: https://www.mql5.com/pt/articles/2299 . Se nao tu vai precisar fazer isso de uma forma muito mais complexa.
Olá Ricardo Rodrigues Lucca!
Agradeço a dica, vou ler este manual.
Abraços,
Henrique
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Olá,
Sou novo aqui no fórum e comecei a programar EAs há pouco tempo. Estou tentando obter e armazenar os níveis de preços que realizei minhas operações. Exemplo: Realizei 3 compras no ativo “EURUSD”, sendo elas nos níveis de preços “1.21270”; “1.21273” e “1.21275”. Busco de obter a seguinte resposta do EA:
preco1 = 1.21270
preco2 = 1.21273
preco3 = 1.21275
Tentei utilizar o código abaixo, porém ele só me retorna o primeiro preço, “1.21270”.
if(PositionSelect(_Symbol))
Print(PositionGetDouble(POSITION_PRICE_OPEN));
Agradeço se puderem me ajudar.
Abraços,
Henrique