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!!
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.
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
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;
}
- www.mql5.com
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.
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 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
- www.mql5.com
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)
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);
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.
- 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
-----------------------------------------------------------------------------------
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();
}
}