Servicedesk. Reclamações, sugestões. - página 6

 
Ilya Malev:
De qualquer forma, não funcionará em um loop, já que todos os indicadores têm a mesma linha, com ou sem temporizador. Ou eu não entendo sua idéia.
Digamos que existe um indicador1. Ele chama indicador2. O Indicator2 carece de dados sobre alguns símbolos/TF. Ele envia estes dados para o indicador1 e fez o download dos dados necessários no temporizador. Após recebermos a confirmação de que todos os dados necessários foram baixados, tentamos novamente baixar os dados do indicador2 e, assim que todos os dados necessários estiverem disponíveis, calculamos o indicador1.
 
Alexey Kozitsyn:

Para baixar e verificar o histórico, similar ao MT5: https://www.mql5.com/ru/docs/series/timeseries_access

Repito a pergunta, você sabe como obter esta data por meio do antigo mql4?

Eu tenho. Tempo[Bars-1].
 
Alexey Kozitsyn:

... Transferibilidade de programas de MT4 para MT5 e de volta para MT5.

De 4 a 5 - compreensível. Ao contrário - nem tanto.

 
Alexey Kozitsyn:
Digamos, há um indicador1. Ele chama indicador2. Indicator2 carece de alguns dados sobre alguns símbolos/TF. Ele envia estes dados para o indicador1 e fez o download dos dados necessários no temporizador. Após recebermos a confirmação de que todos os dados necessários foram baixados, tentamos novamente baixar os dados do indicador2 e, assim que todos os dados necessários estiverem disponíveis, calculamos o indicador1.

A memória é alocada 5 vezes. Sob o espaço de endereços de comando para a mesma coisa.

O que você está chorando sobre a liberação agressiva de memória do espaço de endereços de dados? Pelo menos as extensões estão presentes ali.

 
Vasyl Nosal:
Esperando por uma arbitragem por muito tempo. Terceira semana (eles me pediram para esperar pela segunda semana, está bem).
Ó moderadores todo-poderosos, por favor, voltem seus olhos para o problema:)
 
Алексей Тарабанов:
Eu sei. Tempo[Bars-1].

Você está errado. Eu já escrevi abaixo que a construção que você deu dará a primeira data não no servidor, mas no gráfico.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Balcão de serviço. Reclamações, sugestões.

Alexey Kozitsyn, 2015.10.30 16:42

Usando o iTime( _Símbolo, ponto, barras( _Símbolo, ponto)-1 ) podemos obter a hora da primeira vela disponível no gráfico.

Mas para conseguir o tempo da primeira vela no servidor, ainda não decidi qual a construção a usar.

Tudo é feito simplesmente usando SeriesInfoInteger: SeriesInfoInteger( _Symbol, period,SERIES_SERVER_FIRSTDATE);


 
Алексей Тарабанов:

A memória é alocada 5 vezes. Sob o espaço de endereços de comando para a mesma coisa.

O que você está chorando sobre a liberação agressiva de memória do espaço de endereços de dados? Pelo menos existem extensões lá.

Você tem algo de substancial a dizer?
 

De modo geral, é muito provável que haja uma solução normal para o problema do iCustom que mencionei.

Se o MT5 já carregou o cabo do indicador com os parâmetros especificados para este símbolo/tf, então, como eu entendo, quando você o chama de qualquer outro lugar, o cálculo do mesmo indicador não é realizado novamente, mas o cabo existente é usado.

E desde o primeiro "nível de aninhamento" antes da chamada do iCustom, a chamada do OnTimer funciona, podemos esperar por um cálculo seqüencial de todos os indicadores, começando pelos mais básicos, depois aqueles que os utilizam, e assim por diante até qualquer nível de aninhamento, criando suas alças somente quando todos os indicadores e séries de tempos utilizados neles tiverem sido calculados. Então a necessidade do botão "Refresh" provavelmente desaparece. Gostaria de ter adivinhado isso há uma semana...

P.S. Ao utilizar o OnTimer, observe que os buffers indicadores não serão exibidos na tabela e janela de dados até que o OnCalculate, chamado pelo terminal, retorne um valor diferente de 0. E o terminal chama o OnCalculate apenas uma vez, logo após o Inite, quando as séries de tempos e indicadores ainda não foram calculados. Quando OnCalculate é chamado de Ontimer, não importa o valor de retorno, se o primeiro retorno for 0, então o indicador não será exibido na tabela até que o próximo tick venha ou você pressione "Refresh".

 
Alexey Kozitsyn:

O segundo problema é de um tipo semelhante. O indicador está na TF MN1. Estou tentando receber dados através da função SeriesInfoInteger() da TF M5. A função retorna valores corretos por algum tempo, e então simplesmente pára de fazer isso e começa a retornar zeros

Acabei de ver seu problema no indicador MT5, sem deixar um ciclo OnTimer, eu verifico as séries temporais em outro símbolo/período (não o atual) - a função diz que ele é construído e dá o número correto de barras. Imediatamente depois chamo outra função para construir o indicador - dentro desta função, chamada da mesma chamada do OnTimer, as séries de tempos conseguem ser descarregadas e o SeriesInfoInteger retorna zeros. Tive que incorporar uma verificação cíclica adicional, de modo que tudo se constrói a si mesmo sem carrapatos de entrada.
 
Vasyl Nosal:
Ó moderadores todo-poderosos, por favor, olhem para o problema:)
Em breve será a quarta semana da arbitragem...a ser continuada:)))))