Problema com o MT4 Abrindo um negócio, depois fechando-o de novo imediatamente - página 5

 
7bit:

Ainda não se sabe qual EA está causando isto.


Tudo o que temos visto até agora são os sintomas e algumas teorias. Precisamos dos registros dos especialistas nas pastas dos especialistas/logs dos 4 terminais que cobrem o mesmo período de tempo para tirar quaisquer outras conclusões. Estes logs poderiam apoiar ou rejeitar minha teoria e mostrarão quem está enviando as ordens de fechamento.

Pensei que ele estava executando cada EA em uma conta/terminal diferente?

//a depois de reler a linha que vi que ele está rodando 30 EA em 4 terminais.

//z.

 
zzuegg:

eu pensava que ele estava executando cada EA em uma conta/terminal diferente?

precisamos de tantos logs quantos os terminais. IIRC ele mencionou 4 terminais, cada um executando alguns EAs. Mas não importa realmente quantos, o mais importante é olhar os logs de todos os terminais ao mesmo tempo.

Um comércio aberto pela EA1 no terminal1 poderia ser fechado pela EA2 rodando no terminal2. O EA1 reabriria imediatamente o comércio e o EA2 fecharia imediatamente este comércio novamente ad infinitum.

O registro especializado do terminal1 seria preenchido com entradas sobre OPEN e o registro especializado do terminal2 seria preenchido com entradas sobre CLOSE. No histórico da conta, todas as perdas serão atribuídas à EA1 porque é ela quem abre a negociação e a EA2 ficará completamente abaixo do radar, seu nome não será mencionado no histórico da conta. Somente no registro de especialistas do terminal em que está rodando.


Eu prometo: se a EA ofensiva tiver sido finalmente encontrada, ela será a única que não sofreu com tudo isso, a única que parecia comportar-se bem o tempo todo, a menos suspeita será a culpada.

 

uma vez, um dos meus EA tinha issius semelhantes, o código de culpado era:

if(Close[1]<Open[1] && Close[2] < Open[2]){
  //CLOSE ALL PROFITALBE BUYS
}

isso aconteceu apenas uma vez... tive a sorte de ter fechado apenas os negócios lucrativos... então minha EA fez 100 negócios e os fechou assim que eles se mostraram positivos.

 



Este problema ocorreu pela primeira vez em maio de 2010 e afetou uma EA chamada "Callibre".

Acordei de manhã e havia um buraco de 4.000 dólares na conta, e a guia Histórico demorou séculos para carregar.

Falei com o corretor, e recebi um depósito de seus logs do servidor MT4 (anexado).

Também anexado está um gráfico mostrando os negócios.

Os logs do servidor correlacionam que as negociações de abertura e fechamento vieram do mesmo EA.

Na época eu culpei a EA, imaginando que o problema só acontecia com essa EA.

*** Do campo Comentários no log de transações do servidor posso dizer que o mesmo EA (Callibre neste exemplo) abriu as transações, depois as fechou imediatamente.

O problema desapareceu por 4 meses e eu apenas assumi que era essa EA.

Nas últimas duas semanas o problema reapareceu, através de 4 EA diferentes que estão funcionando bem há vários meses, e através de 2 corretores diferentes.

Neste fim de semana, vou desinstalar todas as cópias do MT4 e reinstalá-las do zero. Também vou limpar a pasta Experts e me certificar de que estou executando a última cópia de tudo.

Quaisquer outras sugestões são bem-vindas.
 
 
peterc005:
Do campo Comentários no log de transações do servidor, posso dizer que a mesma EA (Callibre neste exemplo) abriu as transações, depois as fechou imediatamente.

Peter: Como já expliquei, o campo de comentários mostra quem abriu o comércio, ele não mostra quem o fechou. Isto pode ser enganoso e contra-intuitivo e é o motivo pelo qual você está procurando no lugar errado. O campo de comentários é definido com o 8º parâmetro na função OrderSend(). Isto é quando a ordem é aberta. Após este momento, o campo de comentário é fixo e não pode mais ser alterado. OrderClose( ) não permite especificar nenhuma informação textual. Não importa como ou por quem a ordem é fechada, ela manterá seu comentário ou será pré-fixada por [sl] ou [tp] ou algumas outras cordas para indicar stoploss ou takeprofit ou fechamento parcial ou chamada de margem, etc.

Uma ordem que é fechada por OrderClose() manterá seu comentário original. O único lugar para descobrir quem ligou para OrderClose() é procurando-o nos logs dos especialistas de todos os terminais que estavam rodando neste momento.

Por favor, anexe os 4 logs experts de todos os 4 terminais que podem ser encontrados na pasta experts/logs/ em cada máquina que você tem um terminal rodando (este é o log da aba "experts" de cada um destes terminais) para descobrir quem fechou os negócios. Não é o calibre EA.

 

oi 7bit, vou carregar os logs em breve.

Uma coisa que eu notei nos logs para os dias em que os ofendi foi um monte desses erros:

00:11:16 Manipulador de memória: não pode alocar 160308896 bytes de memória

00:11:16 HistoryBase: memória insuficiente para 'EURGBP1' em AddTick()

Fazer uma busca no Google mostra que isto é causado por muitas barras em um gráfico. Eu tinha o parâmetro Max Bars definido alto para que eu pudesse baixar mais histórico, mas desde então eu reduzi este parâmetro.

Estou me perguntando se estes erros estragaram os sinais indicadores, causando problemas para os EAs?

Neste momento, esta é minha teoria favorita!!!

 
peterc005:

00:11:16 Manipulador de memória: não pode alocar 160308896 bytes de memória

00:11:16 HistoryBase: memória insuficiente para 'EURGBP1' em AddTick()


Eu não acredito que isto seja relevante. E também não diz quem realmente fez a chamada para OrderClose().
 
7bit:
Eu não acredito que isto seja relevante. E também não diz quem realmente fez a chamada para OrderClose().

Continuo suspeitando que a falta de recursos de memória estragou um indicador, fazendo com que os negócios fossem abertos e fechados. Se for o caso, será muito difícil provar isso.
 

Abaixo estão trechos das pastas dos dois Logs que são um exemplo do que está acontecendo.

Esta EA é a FAP Turbo LT. que tenho executado há anos e sempre foi bem comportada.

A pasta Logs mostra o que o MT4 faz, que é Abrir e depois Fechar o negócio, neste caso o negócio nº 2662451

O estranho é que no arquivo de registro de peritos, o negócio é aberto, depois modificado para definir o SL + TP, mas não há registro para mostrá-lo fechado.

Eu olhei outros registros no registro de Especialistas quando o FAP Turbo está funcionando bem, e este EA definitivamente gera um registro Fechar normalmente, mas não neste caso.

Eu olhei todos os arquivos de registro que pude encontrar para outras instâncias do MT4, mas não há outras referências a este acordo.

pasta MT4\Logs:

17:28:49 '103028': a ordem foi aberta : #2662451 comprar 0,20 EURUSDFXF a 1,2909 sl: 0,0000 tp: 0,0000

17:28:49 '103028': modificar pedido #2662451 comprar 0,20 EURUSDFXF a 1.2909 sl: 0,0000 tp: 0,0000 -> sl: 1,2407 tp: 1,2929

17:29:02 '103028': fechar pedido #2662451 comprar 0,20 EURUSDFXF a 1.2909 sl: 1.2407 tp: 1.2929 ao preço 1.2906

17:29:02 '103028': o pedido foi aceito pelo servidor


MT4\Experts\Logs folder:

17:28:48 FapTurbo50 EURUSDFXF,M5: abrir #2662451 comprar 0.20 EURUSDFXF a 1.2909 ok

17:28:49 FapTurbo50 EURUSDFXF,M5: modificar #2662451 comprar 0.20 EURUSDFXF a 1.2909 sl: 1.2407 tp: 1.2929 ok