Características da linguagem mql4, sutilezas e técnicas - página 32

 
Andrey Khatimlianskii:

Se o ciclo de 500 bar e a comparação de seus valores com os armazenados tivesse que ser feito muitas vezes, e seria mais longo do que calcular o hash e compará-lo com o armazenado no mesmo ciclo, então faria sentido.
Mas este dificilmente é o caso.

Por que você está demorando tanto para contar que você percebe a rara ocorrência da reinicialização do pré-cálculo?

O Expert Advisor chama o indicador a cada minuto e verifica o que é novo. Se prev_calculado=0 for notado, então é um recálculo completo, talvez não seja tão longo, mas ainda assim. Por exemplo, o par USDCNH não é tão raro no reset do meu corretor.
O tempo de reset (pré-cálculo=0):


P.S. Eu mesmo estou curioso para saber qual vela muda se a barra Max na história/chart está definida para 2000/2000 no terminal.
 
Nauris Zukas:

P.S. Eu até me pergunto qual vela muda se a barra Max do terminal na história/chart está definida para 2000/2000.

criar um indicador com 4 buffers indicadores que armazenam OHLC - preenchê-lo quando você executar o indicador pela primeira vez

quando pré_calculado=0 escreve no arquivo de log onde há uma discrepância entre OHLC e buffers e depois sincroniza buffers indicadores com os novosOHLC

HH: em princípio, não faz sentido preencher os amortecedores no início do primeiro indicador - pode ser feito em pré-cálculo=0

 
Nauris Zukas:

O Conselheiro Especialista chama o indicador a cada minuto e verifica o que há de novo, se for visto prev_calculado=0, então há um recálculo completo, pode não levar muito tempo para contar, mas ainda assim. Por exemplo, o par USDCNH não é tão raro no reset do meu corretor.
Tempo de reinicialização (prev_calculado=0):


P.S. Eu até me pergunto qual vela muda se a barra Max na história/chart está definida para 2000/2000 no terminal.

Dificilmente uma mudança de barra. É mais provável que se trate de um serviço.

Não vejo a necessidade de se preocupar com isso de forma alguma.

 
Andrey Khatimlianskii:

Mais como algo oficial.

Não sabia disso. Bem, então definitivamente não vale a pena se preocupar com isso. Basta ler no manual "Se desde a última chamada do OnCalculate() os dados de preço foram alterados (um histórico mais profundo foi bombeado ou as lacunas do histórico foram preenchidas), então o valor do parâmetro de entrada pré_calculado será ajustado a zero pelo próprio terminal".

 
Igor Makanu:

escrever um indicador com 4 buffers indicadores que armazenam OHLC - preenchê-lo no primeiro início do indicador

Quando pré_calculado=0 você escreve no log onde há uma discrepância entre OHLC e buffers e então sincroniza os buffers indicadores com os novosOHLC

HH: em princípio, não faz sentido preencher buffers indicadores na primeira ocorrência - você pode fazer isso em pré-cálculo=0

Sim, obrigado, por interesse, vou fazer um indicador separado, verificar se as velas estão mudando ou se há algo de serviço.

 
OrderModify TP e SL falham em um par (HSI50), todos os outros pares estão OK em DC. Manualmente tudo muda, mas assim que a OrderModify é tentada, não há como, mesmo TP e SL não podem ser removidos da OrderModify. O erro mostra um preço inválido (129). Obviamente a OrderModify é proibida lá (não sei bem por quê).
Pergunta, alguém verificou por OrderModify? Como verificá-lo?
P.S. A especificação do contrato é HSI50 (Full acces.)
 
Bom dia!
Em um broker MarketInfo() constantemente (uma ou duas vezes por dia) voa, recebe valor 0 (especificamente MODE_MARGINREQUIRED). É meio normal, mas ao mesmo tempo não há nenhuma tentativa de alcançar o indicador iCustom() (conectado através de um recurso). Mesmo após a MarketInfo() receber dados, iCustom() permanece em silêncio. Somente o reinício do terminal ajuda. Como acessar o indicador sem reiniciar o terminal, alguma idéia? O indicador pode desaparecer de um recurso em algum lugar?
 
Nauris Zukas:
Bom dia!
Um corretor constantemente (uma ou duas vezes por dia) MarketInfo() voa, recebe valor 0 ( MODE_MARGINREQUIRED especificamente). É meio normal, mas ao mesmo tempo não há nenhuma tentativa de alcançar o indicador iCustom() (conectado através de um recurso). Mesmo após a MarketInfo() receber dados, iCustom() permanece em silêncio. Somente o reinício do terminal ajuda. Como acessar o indicador sem reiniciar o terminal, alguma idéia? O indicador pode desaparecer de um recurso em algum lugar?

Essa é a pergunta para a qual eu gostaria de uma resposta.

 
É tecnicamente possível descobrir se o corretor está trabalhando em modo normal ou FIFO sem abrir negócios? Procurei em toda a documentação e não encontrei tal parâmetro. Se você é um tipo de conta líquida, então a cobertura é desativada.
 
Olá!

Não me lembro de encontrar "array out of range" para o Time[1], mas este fato aconteceu na EA. Você faz algum tipo de verificação de "array out of range" para variáveis de array pré-definidas - séries temporais?
Razão: