porque não há atualização
Results 1 to 6 of 6

Thread: porque não há atualização

  1. #1
    Olá pessoal,

    Esta é minha primeira mensagem neste fórum. Algumas semanas de negociação. Alguns anos de programação (pascal, básico e um pouco c).

    Mas aqui, tento tentar .... Mas não consigo encontrar nenhuma solução. Então eu tentei com um pequeno exemplo de S. Kovalyov, Programming in Algorithmic Language, mas isso não funciona também.

    Aqui está um pouco, código modificado
    -----------COMEÇAR-----------
    //countiter.mq4
    //O código deve ser usado apenas para fins educacionais.
    //------------------------------------------------ --------------------

    int init ()

    //-
    Alerta (Função init () acionada no início)/Alerta

    Retorna;/Sai do init ()
    //-
    retorno (0);


    int start ()/Particular funct. Começar()

    int eu, conde;/Declarando variáveis
    para (I = 1; ilt; = 5; I )/Prove por 5 ticks

    Contagem = 0;/contador de compensação
    while (RefreshRates () == false)/Até que ...
    //. Um novo tick vem
    Contagem = contagem 1;/Contador de iteração

    Alerta (Tick, I, loops, Count);/Após cada tick

    Retorna;/Sair do começo ()



    A única mensagem que aparece na janela de alerta:
    Função init () acionada no lançamento

    e eu antecipei algo como

    Tick ​​3 98622348
    Tick ​​2 64534421
    Tick ​​1 32343443

    o gráfico é um simples gráfico M1 EURUSD sem quaisquer outros EA's ou indicadores.
    Mas é uma conta de demonstração.



    Alguém pode me ajudar? Isso seria muito gentil de sua parte

  2. #2
    Problema está resolvido - Obrigado e desculpe, tão estúpido, foi apenas o fato de que o EA não foi acionado em MT. Ah não

  3. #3
    O código acima funciona como um script, pelo menos. Vai ficar um pouco duro com a CPU embora. Pode valer a pena adicionar chamada Sleep () (ou mesmo um indicador) e IsStopped () ao loop interno. Como você pode executar o caso?

  4. #4
    Oi Irtron, muito obrigado pela sua resposta. A questão é quando eu começo a partir da conclusão, o que significa com o código, em vez de desde o início - a manipulação de MT. Eu pensei: o Init é executado, por que não o resto, sem saber, que o EA tem que ser acionado junto com uma saída inclui start (). Curioso
    O código acima funciona como um script, pelo menos. Vai ficar um pouco difícil na CPU. Pode valer a pena adicionar chamada Sleep () (se não um indicador) e IsStopped () ao loop interno. Como você pode executar o exemplo?
    O código acima funciona como um script, pelo menos. Vai ficar um pouco difícil na CPU. Pode valer a pena adicionar chamada Sleep () (se não um indicador) e IsStopped () ao loop interno. Como você pode executar o exemplo?

  5. #5

    Código Inserido para (I = 1; ilt; = 5; I )/Display para 5 ticks Count = 0;/Limpando o contador while (RefreshRates () == false)/Até .../.. Um novo sinal vem Count = Count 1;/Alerta do contador de iteração (Tick, I, loops, Count);/Após cada tick
    Você não deveria fazer assim. Start () em si provavelmente será chamado para cada tick, seu script deve ser orientado a eventos, o evento é a vinda de um novo tick. Você deve proceder apenas a este tick no lançamento () e retornar instantaneamente. O uso de loops de polling estendidos nessas funções é possível, mas você só deve fazer se não houver outra opção e não pode fazer isso em indicadores, apenas em consultores especialistas, pois os indicadores operam no thread da GUI e você também bloqueia o Metatrader inteiro GUI até o lançamento () retornar. Se você precisa apenas de 5 ticks, você pode especificar um contador global para 0, em seguida, em start () escrever o preço atual em um intervalo, aumentar o sentido anti-horário e somente se o contador tiver atingido 5, tudo deve ser realizado com os últimos 5 ticks e redefinir o contador, senão apenas retornar.

  6. #6

    start () será chamado para cada sinal, seu script deve ser orientado por evento, o evento é a chegada de um novo tick. Você deve processar apenas este 1 tick em start () e retornar imediatamente.
    Você está intrigando a EA e os scripts. A função Start () do anterior é acionada por ticks futuros e RefreshRates () é imperativo para garantir que o ambiente de negociação não seja alterado enquanto start () estiver sendo conduzido. O último (um script) executa seu start () apenas uma vez e é aceitável para processamento assíncrono como o código acima. Está longe de ser perfeito, como já mencionei e deve ser considerado como uma instância para fins de instrução apenas os estados de direitos autorais.

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.