A EA que escrevi há três meses não pode passar nos testes de estratégia agora, mas funcionava bem há dois ou três meses!!

 
A EA que escrevi há três meses não pode passar no teste agora, mas funcionava bem no servidor MetaQuotes-Demo. Há alguém que tenha encontrado o mesmo problema? O código de erro é sempre como "failed instant sell 0.10 EURUSD a 1.38103 sl: 1.38253 tp: 1.38053 [Invalid request]" e "OrderSend failed with error #4756 ".Minha versão é 5.00 Build 540 . Ajuda , estou totalmente confuso.
-----------------------------------------------------------------------------------
se (condição1)
{
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol;
sell.deviation = 0;
sell.price = NormalizeDouble(mtick.bid,_Dígitos);
sell.volume = 0,1;
sell.tp = NormalizeDouble(vende.preço - mtp*_Ponto,_Dígitos);
sell.sl = NormalizeDouble(venda.preço + msl*_Ponto,_Dígitos);
sell.type_filling = ORDER_FILLING_AON;
if(OrderSend(sell,result_sell)==false)
{
Print("OrderSendido com erro #",GetLastError()));
ResetLastError();
}
}
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Tente adicionar ZeroMemory(vender).

if (condition1)
{
ZeroMemory(sell);
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol; 
Resolvemos este problema, aguarde a próxima construção, por favor.
 
Rosh:

Tente adicionar ZeroMemory(vender).

Resolvemos este problema, aguarde a próxima construção, por favor.

Rosh, acaba de ser atualizado para .565 e recebeu a mesma mensagem #4756

ZeroMemory(estrutura) ajuda. Então, está fixa ou ainda não?

Obrigado

 
Rosh:

Tente adicionar ZeroMemory(vender).

Resolvemos este problema, aguarde a próxima construção, por favor.

Tenho o mesmo erro embora tenha seguido o caminho exato para compor a ordem. Como? Estou usando o build 597.

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 Alerta: O pedido de compra não pôde ser concluído -error:4756

2012.02.26 20:08:18 Núcleo 1 2012.02.23 08:00:00 compra falhada no mercado 0,10 EURUSD sl: 1,32438 tp: 1,33738 [Modo de enchimento sem suporte]

if(Buy_Condition_3 && Buy_Condition_4)

{

// alguma posição de compra aberta?

if(Comprar_aberto)

{

Alerta("Já temos uma posição de compra!!!");

retornar; // Não abra uma nova Posição de Compra

}

ZeroMemória(mrequest);

mrequest.action = TRADE_ACTION_DEAL; // execução imediata da ordem

solicitação.type = ORDER_TYPE_BUY; // Pedido de compra

solicitação.símbolo = _Símbolo; // par de moedas

solicitação.desvio=0; // Desvio em relação ao preço atual

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // último preço pedido

solicitação.volume = Lote; // número de lotes a comercializar

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Parar Perda

solicitação.type_filling = ORDER_FILLING_AON; // Tipo de execução do pedido

//--- enviar pedido

EncomendarEnviar(mrequest,mresultado);

// obter o código do resultado

if(mresult.retcode==10009 || mresult.retcode==10008) //Requeixa é completada ou pedido é feito

{

Alerta("Um pedido de compra foi feito com sucesso com Ticket#:",mresult.order,"!"!);

}

senão

{

Alerta("O pedido de pedido de compra não pôde ser concluído -erro:",GetLastError()));

ResetLastError();

retornar;

}

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Noto na referência MQL5 (última versão atualizada hoje), não há mais ORDER_FILLING_AON, mas mesmo que eu use ORDER_FILLING_FOK, ainda encontro o erro 4756.

ENUM_ORDER_TYPE_FILLING

Identificador

Descrição

ORDER_FILLING_FOK

O negócio pode ser executado exclusivamente com um volume especificado a um preço igual ou melhor do que o preço da ordem especificada. Se não houver volume suficiente de ofertas no símbolo do pedido, o pedido não será executado. Este tipo de preenchimento é usado nos modos de execução SYMBOL_TRADE_EXECUTION_INSTANT ouSYMBOL_TRADE_EXECUTION_REQUEST.

ORDER_FILLING_IOC

Um acordo para executar o acordo com o volume máximo de mercado a um preço igual ou melhor do que o preço especificado no pedido. Neste caso, uma ordem adicional por volume não preenchido não será colocada. Este tipo de preenchimento é usado nos modos de execução SYMBOL_TRADE_EXECUTION_MARKET eSYMBOL_TRADE_EXECUTION_EXCHANGE, dependendo das configurações do símbolo em um servidor comercial.

ORDER_FILLING_RETURN

Um acordo para executar o acordo com o volume máximo de mercado a um preço igual ou melhor do que o preço especificado no pedido. Neste caso, uma ordem adicional por volume não preenchido será colocada. Este tipo de preenchimento é usado somente para ordens pendentes (TRADE_ACTION_PENDING).

 
Olá, algum comentário antes de eu desistir do MT5 e voltar para o MT4? Muito obrigado! Na verdade, sou novo em ambos, mas tentaria primeiro o MT5, embora saiba que é muito novo.
 
lingwuchung:
Olá, algum comentário antes de eu desistir do MT5 e voltar para o MT4? Muito obrigado! Na verdade, sou novo em ambos, mas tentaria primeiro o MT5, embora eu saiba que é muito novo.

Adicione isto antes do pedido:

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 

Eu tive exatamente o mesmo problema que você teve e isso me consertou.

 

Agora tenho o mesmo problema.

Meus assessores especializados estavam trabalhando muito bem. Mas agora todos eles não podem passar no testador.

Quando eu compilar os arquivos, a seguinte messe será mostrada:

'ORDER_FILLING_AON' - identificador não declarado

Como este problema pode ser resolvido?

Isto é o resultado de uma atualização do terminal? (Versão 5.00 Build 642)

(24 de abril de 2012)

Espero que alguém possa me ajudar

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 
lamme.vandriel:

Quando eu compilar os arquivos, a seguinte messe será mostrada:

'ORDER_FILLING_AON' - identificador não declarado

Como este problema pode ser resolvido?

Substituir ORDER_FILLING_AON por ORDER_FILLING_FOK (ver Propriedades do pedido)

 
JohnnyDoe:

Adicione isto antes do pedido:

Eu tive exatamente o mesmo problema que você teve e isso me consertou.

Olá, acrescentei estas 2 linhas no código, mas o erro 4756 ainda está aqui (o envio de pedido comercial falha).

Poderia precisar onde devo acrescentar as 2 linhas? A que diz respeito ao pedido já está presente. Adicionar as duas linhas não muda nada para mim. Obrigado pela ajuda que eu agradeceria.

Estou executando rel.5 build 842.

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 
 
Vivaldi:

Olá, acrescentei estas 2 linhas no código, mas o erro 4756 ainda está aqui (o envio de pedido comercial falha).

Poderia precisar onde devo acrescentar as 2 linhas? A que diz respeito ao pedido já está presente. Adicionar as duas linhas não muda nada para mim. Obrigado pela ajuda que eu agradeceria.

Estou executando rel.5 build 842.

Mostre seu código, para que possamos lhe dizer onde adicionar esta linha.