ChartNavigate durante a inicialização - página 3

 
Dina Paches:

Por que isso acontece? Será que escrevi/tracei bobagens?

Não que seja um disparate... mas é que estamos investigando a navegação aqui e o redesenho do gráfico não tem qualquer efeito (como foi claramente afirmado no início da experiência que a rolagem do gráfico deve ser desativada).

O código de teste funciona por um ou dois minutos no máximo, nossos computadores são potentes - portanto, a carga é leve.

 
Vladimir Karputov:

Não que seja um disparate... mas é que estamos investigando a navegação aqui e o redesenho gráfico não tem qualquer efeito (como foi claramente afirmado no início da experiência que a rolagem gráfica deve ser desativada).

O código de teste é executado por um ou dois minutos no máximo, nossos computadores são potentes - portanto, a carga é insignificante.

Os códigos de teste podem ser executados com freqüência. /* Agora um minuto aqui, depois um minuto ali, depois uma hora em outro lugar, etc...

Eu estava me referindo , neste post, às palavras de Renat. Presumo que ele tenha computadores mais poderosos do que você.

Você, Vladimir, publicou estes códigos de teste para mostrar o trabalho (resultados de pesquisa), para download. Redesenhar a tabela em cada carrapato neles é inapropriado

 
P./S.: Nos parâmetros de entrada, você tem a opção de desabilitar/habilitar somente o desenho do gráfico através deChartRedraw(). No entanto, dentro dos códigos de teste você tem um gráfico redesenhado a cada tick via Comentário
 
Dina Paches:

Os códigos de teste podem ser executados com freqüência. /* Agora um minuto aqui, depois um minuto ali, depois uma hora em outro lugar, etc...

Eu estava me referindo neste post ao que Renat disse. Presumo que ele tenha computadores mais poderosos do que você.

Você, Vladimir, publicou estes códigos de teste para mostrar o trabalho (resultados de pesquisa), para download. O redesenho de gráficos em cada um deles não é apropriado.

Você tem razão no que diz sobre re-desenhar. Não é apropriado agora ))

 
Ihor Herasko:

Você está certo sobre o redesenho. Só não é a coisa certa a fazer neste momento).

Um... Não é o lugar para redesenhar em cada carrapato. Não é o lugar para tentar convencê-lo de que não vale a pena prestar atenção.

E não dito sobre isso.

Mas agora, às custas dos seus esforços e dos de Vladimir para convencer que está fora do lugar e não merece atenção, a ênfase se desviou realmente do tema)

 

Construir 1865.

Fez uma mudança no indicador:

   if(count%12==0/* || count==19*/)

Ou seja, a cada 12º tique, movemos o gráfico à força. Para que serve:

  1. Você pode mover manualmente a tabela entre 12 ticks e ver o número da primeira barra visível
  2. Rastreamento visual do movimento.


Até agora temos uma teoria: a mudança do gráfico depende do GRÁFICO LARGO!

Arquivos anexados:
 

Versão indicadora 1.002:

removeu todos os Comentários (agora saída via Impressão)

Default:

//--- input parameters
input bool redraw=false;
input ENUM_CHART_POSITION position=CHART_END;

Clara dependência da escala do gráfico. E há alguma memória se uma vez se desloca o gráfico manualmente.

Arquivos anexados:
 
Ihor Herasko:

Encontrei um problema com a função ChartNavigate. Fazendo algo errado ou há realmente um problema com a função. Escreva de volta se você já o usou com freqüência suficiente.

Portanto, a essência do problema: ChartNavigate não desloca o gráfico Ao iniciar o terminal Se eu chamar esta função no OnInit(). Eu li a documentação propositalmente várias vezes. Em nenhum lugar se diz que a função não pode ser chamada durante a inicialização.

Código indicador para reprodução:

Passos a serem dados:

  1. Desligar o autoplay do gráfico.
  2. Anexar indicador ao gráfico. ChartNavigate acionará movendo a carta para a posição desejada.
  3. Descarregue o terminal.
  4. Carregue o terminal. O ChartNavigate não funcionará exibindo o gráfico sem uma compensação.
OK, se a função der um erro. Mas não. Todas as chamadas são bem sucedidas, mas é quando o terminal é recarregado que o offset da carta não ocorre.

Diga-me, por favor, antes de descarregar o terminal, você repõe o gráfico nos preços mais recentes?

Por que eu pergunto:

Estou usando seu código para ver como ele funcionaria para mim nestas condições. No início pensei que o problema descrito por você está reproduzido em meu código. Mais tarde entendi que não. Se a tabela for restaurada aos últimos preços antes de ser descarregada, ela funciona de acordo com o código quando o terminal é carregado. Se eu não voltar aos últimos preços antes de descarregar, o gráfico permanece onde estava antes de descarregar.

 
Vladimir Karputov:

Construir 1865.

Fez uma mudança no indicador:

Ou seja, a cada 12º tique, movemos o gráfico à força. Para que serve:

  1. Você pode mover manualmente a tabela entre 12 ticks e ver o número da primeira barra visível
  2. Rastreamento visual do movimento.


Até agora temos uma teoria: a mudança do gráfico depende do GRÁFICO LARGO!

Vladimir Karputov:

Versão indicadora 1.002:

...

Há uma clara dependência daescala do gráfico. E há alguma memória se você mudar a tabela manualmente uma vez.


O autor do tópico o criou com base na seguinte pergunta - ChartNavigate durante a inicialização:

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

ChartNavigate sobre a inicialização

Ihor Herasko, 2018.06.25 12:17

...

Portanto, o cerne do problema: ChartNavigate não desloca o gráfico No início do terminal Se você chamar a função no OnInit().


Você, Vladimir, faz sua pesquisa não no OnInit(), mas no OnCalculate(). Não sobre a questão descrita pelo autor do fio.

Ou seja, você está considerando algo mais neste tópico.

Se você detectou um problema real, talvez você deva contatar o Service Desk com sua descrição?


P./S.: De acordo com o último código de teste do indicador anexado aqui, você não tem mais uma recompra forçada do gráfico em cada carrapato. Mas, em vez disso, agora ele imprime no diário de bordo a cada tique. Devido ao fato de que não há verificação se o número da primeira barra no gráfico mudou.

Além disso, seu código contém a eliminação ativa de comentários. Ou seja, se você colocar seu código na tabela, onde algum outro programa criará alguns comentários necessários, seu código de teste irá removê-los

P./S.: Removida uma citação duplicada no início do post, colocadas citações de outra, interligada em seu lugar.

 
Dina Paches:


O autor do tópico o criou sobre a seguinte questão - ChartNavigate durante a inicialização:


Você, Vladimir, está fazendo sua pesquisa não no OnInit(), mas no OnCalculate(). Não sobre a questão descrita pelo autor do fio.

Ou seja, você está considerando algo mais neste tópico.

Se você tiver detectado um problema real, talvez você deva contatar o Service Desk com sua descrição?


P./S.: De acordo com o último código de teste do indicador anexado aqui, você não tem mais uma recompra forçada do gráfico em cada carrapato. Mas, em vez disso, agora ele imprime no diário de bordo a cada tique. Devido ao fato de que não há verificação se o número da primeira barra no gráfico mudou.

Além disso, seu código contém a eliminação ativa de comentários. Ou seja, se você colocar seu código na tabela, onde algum outro programa criará alguns comentários necessários, seu código de teste irá removê-los

Dina, ele está trabalhando para você? Estou lutando há 2-3 horas (só hoje, sem contar os testes de ontem) tentando obter uma versão não funcional do OnInit, mas sem sucesso. Tudo sempre funciona como deveria. Se eu colocar o indicador em dois gráficos e reiniciar o terminal, ele funciona apenas no gráfico que estava ativo no momento do fechamento e da abertura do terminal. No segundo, o gráfico não ativo não funciona. Mas isto, em minha opinião, é compreensível, não há renderização gráfica e não há gráfico em si, apesar do fato de que os dados são recebidos.

Razão: