failed modify order #265238079 buy 0.00 WINZ19 at market sl: 0 tp: 0 -> 112040, sl: 112050 tp: 111045 [Invalid request]
Olá amigos! apresenta esse erro constantemente no meu Expert! alguém pode me ajudar? =
void ModificarOrdem(double preco)
{
for(int i = 0; i < OrdersTotal(); i++)
{
ulong ticket = OrderGetTicket(i);
//Verifica o número mágico
if(OrderGetInteger(ORDER_MAGIC) == numero_magico && OrderGetString(ORDER_SYMBOL) == _Symbol)
{
double askNow =NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
double bidNow =NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
double SL = (bidNow-qtd_pontos*_Point)+stop*_Point;
double TP = (askNow-qtd_pontos*_Point)-take*_Point;
PRC = NormalizeDouble(ticks.last, _Digits);
//Modifica a ordem
if(trade.OrderModify(ticket, PRC - qtd_pontos*_Point, SL, TP, ORDER_TIME_GTC, 0, 0))
{
}
else
{
Print("Erro ao modificar ordem ", GetLastError());
}
}
}
}
Como é que você faz um BUY à mercado e o preço de SL é maior que o TP ??!
Olá. Obrigado por sua ajuda! Por favor pode me auxiliar em algo mais... acho que estou programando errado a função NormalizeDouble, veja o codigo a baixo!
void OnTick()
{
int copied = CopyRates(_Symbol, _Period, 0, 2, rates);
if(copied < 0)
return;
if(!SymbolInfoTick(_Symbol, ticks))
{
Alert("Erro ao obter informações de Preços: ", GetLastError());
return;
}
//Estratégia
if(SemOrdem() && SemPosicao())
{
Venda(ticks.last - qtd_pontos * _Point);
{
ModificarOrdem(ticks.last);
if(TotalOrdens() == 0)
{
Sleep(10000);
}
ModificarOrdem(ticks.last);
}
// ------------------------------------------------------------------------------
void Venda(double pr)
{
double askNow =NormalizeDouble(ticks.last,_Digits);
double PRR = askNow;
double SL = askNow+stopLoss*_Point;
double TP = askNow-takeProfit*_Point;
if(trade.SellStop(lote, PRR, _Symbol, SL, TP, ORDER_TIME_GTC, 0, "Compra"))
{
}
else
{
Print("Erro ao adicionar compra ", GetLastError());
}
}
// ---- ERRO: 2019.12.17 11:26:09.222 Trades '3000836776': failed sell stop 1.00 WINZ19 at 112275 sl: 112285 tp: 111775 [Invalid price]
void ModificarOrdem(double preco)
{
for(int i = 0; i < OrdersTotal(); i++)
{
ulong ticket = OrderGetTicket(i);
//Verifica o número mágico
if(OrderGetInteger(ORDER_MAGIC) == numero_magico && OrderGetString(ORDER_SYMBOL) == _Symbol)
{
double askNow =NormalizeDouble(ticks.last,_Digits);
double PRR = askNow;
double SL = (askNow-qtd_pontos*_Point)+stopLoss*_Point;
double TP = (askNow-qtd_pontos*_Point)-takeProfit*_Point;
//Modifica a ordem
if(trade.OrderModify(ticket, PRR - qtd_pontos*_Point, SL, TP, ORDER_TIME_GTC, 0, 0))
{
}
else
{
Print("Erro ao modificar ordem ", GetLastError());
}
}
}
}
// ------------------------------------------------------------------------------
int TotalOrdens()
{
int contador = 0;
for(int i = 0; i < OrdersTotal(); i++)
{
ulong ticket = OrderGetTicket(i);
if(OrderSelect(ticket))
{
if(OrderGetInteger(ORDER_MAGIC) == numero_magico && OrderGetString(ORDER_SYMBOL) == _Symbol)
{
contador++;
}
}
}
return contador;
}
- 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á amigos! apresenta esse erro constantemente no meu Expert! alguém pode me ajudar? =
failed modify order #265238079 buy 0.00 WINZ19 at market sl: 0 tp: 0 -> 112040, sl: 112050 tp: 111045 [Invalid request]
void ModificarOrdem(double preco)
{
for(int i = 0; i < OrdersTotal(); i++)
{
ulong ticket = OrderGetTicket(i);
//Verifica o número mágico
if(OrderGetInteger(ORDER_MAGIC) == numero_magico && OrderGetString(ORDER_SYMBOL) == _Symbol)
{
double askNow =NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
double bidNow =NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
double SL = (bidNow-qtd_pontos*_Point)+stop*_Point;
double TP = (askNow-qtd_pontos*_Point)-take*_Point;
PRC = NormalizeDouble(ticks.last, _Digits);
//Modifica a ordem
if(trade.OrderModify(ticket, PRC - qtd_pontos*_Point, SL, TP, ORDER_TIME_GTC, 0, 0))
{
}
else
{
Print("Erro ao modificar ordem ", GetLastError());
}
}
}
}