Envio do preço para a bolsa: 50115 ou 50110
Abraço!
Evandro Teixeira.
Olá Evandro,
Uma solução para a situação apresentada é carregar as informações de book e usar os preços disponíveis para compra e venda, de uma olhada na estrutura MQL BOOK.
https://www.mql5.com/en/docs/marketinformation/marketbookget
Espero ter ajudado.
![Documentation on MQL5: Market Info / MarketBookGet Documentation on MQL5: Market Info / MarketBookGet](/i/community/logo_mql5_small.png)
- www.mql5.com
Olá Evandro,
Uma solução para a situação apresentada é carregar as informações de book e usar os preços disponíveis para compra e venda, de uma olhada na estrutura MQL BOOK.
https://www.mql5.com/en/docs/marketinformation/marketbookget
Espero ter ajudado.
Olá Marcos,
essa solução parece perfeita :)
Obrigado pela ajuda!
Olá, gostaria de saber se alguma solução foi implementada, pois tenho testado um EA (tradexpert) para negociação manual, e ele parece apresentar o mesmo problema: funciona quando a execução é a mercado,
porém, quando a ordem é do tipo stop/limit, somente funciona quando se acerta a pontuação com final 0 ou 5, no mais retorna INVALID PRICE.
Olá, gostaria de saber se alguma solução foi implementada, pois tenho testado um EA (tradexpert) para negociação manual, e ele parece apresentar o mesmo problema: funciona quando a execução é a mercado,
porém, quando a ordem é do tipo stop/limit, somente funciona quando se acerta a pontuação com final 0 ou 5, no mais retorna INVALID PRICE.
Olá fasspa,
eu cheguei a essa solução...
{
double last = SymbolInfoDouble(Symbol(),SYMBOL_LAST);
double resP = MathCeil(last-priceBL);
double pricebuyLimit = last-((MathCeil(resP/5))*5);
Print("Buy Limit: "+DoubleToString(priceBL,Digits())+" "+MathCeil(resP/5)+" "+pricebuyLimit);
sendBL(pricebuyLimit);
}
void buyStop(double priceBS)
{
double last = SymbolInfoDouble(Symbol(),SYMBOL_LAST);
double resP = MathCeil(priceBS-last);
double pricebuyStop= last+((MathCeil(resP/5))*5);
Print("Buy Stop: "+DoubleToString(priceBS,Digits())+" "+MathCeil(resP/5)+" "+pricebuyStop);
sendBS(pricebuyStop);
}
Abraço!
Olá fasspa,
eu cheguei a essa solução...
{
double last = SymbolInfoDouble(Symbol(),SYMBOL_LAST);
double resP = MathCeil(last-priceBL);
double pricebuyLimit = last-((MathCeil(resP/5))*5);
Print("Buy Limit: "+DoubleToString(priceBL,Digits())+" "+MathCeil(resP/5)+" "+pricebuyLimit);
sendBL(pricebuyLimit);
}
void buyStop(double priceBS)
{
double last = SymbolInfoDouble(Symbol(),SYMBOL_LAST);
double resP = MathCeil(priceBS-last);
double pricebuyStop= last+((MathCeil(resP/5))*5);
Print("Buy Stop: "+DoubleToString(priceBS,Digits())+" "+MathCeil(resP/5)+" "+pricebuyStop);
sendBS(pricebuyStop);
}
Abraço!
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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
Envio do preço para a bolsa: 50115 ou 50110
Abraço!
Evandro Teixeira.