Erro ao enviar ordem do tipo Stop_Limit: erro No Money
Com respeito a sua pergunta por que não utiliza a biblioteca padrão do MT, como a "Trade.mqh"?
Obrigado pela dica, quando à postagem de código. Sou novo aqui. Sou novo também na linguagem e não conheço essa biblioteca.
Alguns moderadores sequer te informam e já apagam seu post, por isso avisei :)
Você pode utilizar a bilioteca padrão Trade, ela facilita o gerenciamento das operações. Por exemplo, você pode abrir uma operação com uma linha de código em vez de programar muitas coisas que você fez no seu código.
Essa é a página da biblioteca: https://www.mql5.com/pt/docs/standardlibrary/tradeclasses/ctrade
Olá estou com um problema ao enviar uma ordem do tipo Stop_Limit com mini Índice. Quando envio com SL e TP configurados dá erro "Invalid Stops" e quando deixo sem dá o erro: "No money";
Segue um pedaço do código para análise:
MqlTradeRequest requisicao= {0}; // requisição
MqlTradeResult resposta= {0}; // resposta
ZeroMemory(requisicao);
ZeroMemory(resposta);
if(posAberta())
{
Alert("Não será possível realizar a compra.Existe uma posição em aberto.");
return;
}
requisicao.action = TRADE_ACTION_PENDING; // Executa ordem a mercado
requisicao.magic = magic_number; // Nº mágico da ordem
requisicao.symbol = _Symbol; // Simbolo do ativo
requisicao.volume = Qt_Contratos; // Nº de Lotes
requisicao.price = m_symbol.NormalizePrice(tick.ask - CompraDiminuirValor * _Point);
requisicao.sl = 0;//m_symbol.NormalizePrice(tick.ask - CompraStopLoss * _Point);
requisicao.tp = 0;//m_symbol.NormalizePrice(tick.ask + CompraTakeProft * _Point);
requisicao.deviation = 0; // Desvio Permitido do preço
requisicao.type = ORDER_TYPE_BUY_STOP_LIMIT; // Tipo da Ordem
requisicao.type_filling = ORDER_FILLING_RETURN;//ORDER_FILLING_FOK;
requisicao.type_time = ORDER_TIME_DAY;
requisicao.stoplimit = m_symbol.NormalizePrice(tick.ask+DesvioStopLimiteCompra * _Point);
if(OrderSend(requisicao,resposta))
{
if(resposta.retcode==10008 || resposta.retcode==10009)
{
Print("Ordem de Compra executada com sucesso!");
}
else
{
Print("Erro ao enviar Ordem Compra. Erro = ",GetLastError());
ResetLastError();
}
}
else
{
Print("Erro = ",GetLastError());
ResetLastError();
}
desde já agradeço a atenção.