Utilizei o código abaixo em um EA para simular uma compra a mercado de determinada ação na B3.
Observei que o volume tem que ser necessariamente múltiplo de 100 (não aceita requestt.volume= 1, por exemplo)
A ordem, no entanto, correponde a 10.000 ações (100 x 100) e não a apenas 100 ações.
Gostaria de saber se há uma maneira de limitar a 100 ações.
Obrigado.
bool BuyMarket() {
MqlTradeRequest requestt {};
MqlTradeResult resultss {};
double Ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
requestt.action = TRADE_ACTION_DEAL;
requestt.symbol = _Symbol;
requestt.volume = 100;
requestt.type = ORDER_TYPE_BUY;
requestt.price = Ask;
bool ok = OrderSend(requestt, resultss);
if (!ok) {
int errorCode = GetLastError();
Print("buy market:", errorCode);
ResetLastError();
}
return ok;
}
Voce não entende como o mercado funciona, comece estudando o mercado que quer operar primeiro. A propria B3 tem uns materias bons no site dela que explica todo o funcionamento do mercado. O código é exatamente esse e esta comprando 100 ações. O que pode ter ocorrido é que só por esse trecho, não tem como saber. Voce comprou 100 ações, 100 vezes e acabou o dinheiro do simulador. Veja que se voce conhecesse como o mercado funciona saberia responder sua duvida de como ter um volume 1 e só teria que lidar com o problema de não saber depurar o código. Depuração é a segunda coisa mais importante pro desenvolvedor.
- 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
Utilizei o código abaixo em um EA para simular uma compra a mercado de determinada ação na B3.
Observei que o volume tem que ser necessariamente múltiplo de 100 (não aceita requestt.volume= 1, por exemplo)
A ordem, no entanto, correponde a 10.000 ações (100 x 100) e não a apenas 100 ações.
Gostaria de saber se há uma maneira de limitar a 100 ações.
Obrigado.
bool BuyMarket() {
MqlTradeRequest requestt {};
MqlTradeResult resultss {};
double Ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
requestt.action = TRADE_ACTION_DEAL;
requestt.symbol = _Symbol;
requestt.volume = 100;
requestt.type = ORDER_TYPE_BUY;
requestt.price = Ask;
bool ok = OrderSend(requestt, resultss);
if (!ok) {
int errorCode = GetLastError();
Print("buy market:", errorCode);
ResetLastError();
}
return ok;
}