Por favor, ajude-me a resolver este mistério!! - página 2

 
WHRoeder:
A menos que você esteja usando o modo visual no testador, nunca existirá nada no diário.
Isso não é correto. Nada é produzido para o diário durante a otimização, mas a produção para o diário funciona bem se o modo Visual NÃO estiver selecionado . (apenas testado no Build 445)
 

EU SOU usando o Modo Visual em qualquer caso!

Há algo mais que é muito estranho. Quando eu executo o SAME EA com os parâmetros SAME mais de uma vez eu recebo diferentes transações no Modo Visual exibido!

Na maioria das vezes 90% são os mesmos - mas em certos lugares há resultados diferentes com múltiplas execuções!

Há alguns buffers (por exemplo, variáveis) que devem ser inicializados ou limpos após cada execução? Eu tento inicializar todas as variáveis na seção de declaração.

Talvez o meu computador tenha ficado sem fio? No momento estou agarrando com palhetas.

 
ernest02:

EU SOU usando o Modo Visual em qualquer caso!

Há algo mais que é muito estranho. Quando eu executo o SAME EA com os parâmetros SAME mais de uma vez eu recebo diferentes transações no Modo Visual exibido!

Na maioria das vezes 90% são os mesmos - mas em certos lugares há resultados diferentes com múltiplas execuções!

Há alguns buffers (por exemplo, variáveis) que devem ser inicializados ou limpos após cada execução? Eu tento inicializar todas as variáveis na seção de declaração.

Talvez o meu computador tenha ficado sem fio? No momento estou agarrando com palhetas.

O que é o Spread para cada corrida?
 

Ok, pessoal! Resolvam esta!

Vejam a parte maior do código que eu afixei.

A primeira linha é uma declaração de "se" e se verdadeira processará as linhas a seguir.

Uma das ações que tem que ocorrer é o fechamento de qualquer ordem de compra em aberto.

Agora, quando eu executo o EA no Testador, ele realmente fecha qualquer ordem de compra MAS...

Ele pula a declaração impressa no meio do código - e isso não fica registrado no Diário!

Portanto, eu sei que o código está sendo processado, mas apenas DETERMINADAS Declarações impressas são gravadas no Diário - mas outras NÃO!

Então, por favor, me explique isso!

 
ernest02:

Agora, quando eu executo o EA no Testador, ele realmente fecha qualquer pedido de compra MAS...

Ele pula a declaração impressa no meio do código - e isso não fica registrado no Diário!

Então eu sei que o código está sendo processado, mas apenas DETERMINADAS Declarações impressas são gravadas no Diário - mas outras NÃO!

Então, por favor, explique-me isso!

O seguinte será impresso para o Diário . . .

   Print("SellTicket is ",SellTicket);    // <----- this will print

   if (SellTicket >= 0) 
      {
      PlaySound("news.wav");
      SellTime = OrderOpenTime();
      SellSignal = false;

      }
   Print("SellSignal2 is ", SellSignal);  // <----- this will print

se eles não estiverem imprimindo, até onde eu posso ver as possibilidades são as seguintes:

  • você não está executando o código que você postou
  • as ordens de compra estão sendo fechadas por algum outro código/função

 

se o SellTicket for igual a zero, a sério?

if (SellTicket >= 0) // ???

Clique com o botão direito no diário, selecione abrir, e abra o diário com o bloco de notas.

A aba do diário nem sempre mostra todos os registros.

 

Dei uma olhada no arquivo de Log e não há nenhuma transação de Venda ou Compra registrada lá ou qualquer outro comando "Imprimir".

Estou tão desmotivado! Estou nisto há duas semanas e não fiz nenhum progresso e fiquei sem idéias sobre qual poderia ser o problema.

(Só quero dizer que também tenho o Metatrader 5 instalado em meu comouter e rodar o Windows 7 que armazena alguns dados e arquivos de log em Loja Virtual sob Usuários)

 
ernest02:

Dei uma olhada no arquivo de Log e não há nenhuma transação de Venda ou Compra registrada lá ou qualquer outro comando "Imprimir".

Estou tão desmotivado! Estou nisto há duas semanas e não fiz nenhum progresso e fiquei sem idéias sobre qual poderia ser o problema.

(Só quero dizer que também tenho o Metatrader 5 instalado em meu comouter e rodar o Windows 7 que armazena alguns dados e arquivos de log em Loja Virtual sob Usuários)

Ah, onde você tem o MT4 instalado é nos Arquivos de Programas ? se você tem talvez um problema UAC. Você poderia tentar uma nova instalação do MT4 em um diretório que não seja Arquivos de Programas, por exemplo, C:\MT4-Installs e tentar seu EA.
 

Criei uma pasta em C:/ onde instalei o MT4, mas tenho duas outras cópias (uma ao vivo e uma demo) que estão instaladas em Arquivos de Programas (x86).

Não tenho nenhum arquivo de log com os dois últimos, mas tenho arquivos de log sob a raiz MT4. (É por isso que eu posso relatar o que está no arquivo de log)

Agora acabo de notar outra anomalia. (Já mencionei o fato de obter resultados diferentes a partir de duas corridas idênticas)

Eu uso iCCI para acompanhar o índice CCI para tomar decisões de compra/venda. Descobri que as transações acontecem mesmo quando a condição da CCI não é verdadeira!

Isto é uma grande confusão! Voltei aos meus dias de XP, onde meu sistema parecia ser muito mais simples e estável!

Estou quase pronto para jogar a toalha!

 
@ernest02: Basta reescrever o código. Use as funções Imprimir/Alertar/Comentário para depurar seus códigos. Se você estiver intrigado com o porquê da OrderSend ser executada, então Imprima os valores das variáveis que acionam [Right Above the OrderSend]. Se você estiver intrigado as-to why CCI == true, então Imprima os valores das variáveis que acionam a chamada CCI [Antes da chamada CCI]. Continue movendo a Declaração de Impressão para trás desta forma até encontrar o Culprit.