Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 158

 
pronych:

Como desencadear uma actualização forçada dos indicadores a partir do interior, ou seja, o evento OnCalculate?

Portanto, se não forem resolvidos (abaixo estão os problemas que podem surgir).

Ou por temporizador (algo parecido com isto).

 
Silent:

Portanto, se não forem resolvidos (abaixo estão os problemas que podem surgir).

Ou num temporizador (o que quer que seja).

Estou a ver. )) Já tentou pedir funcionalidade interna?

 
pronych:

Estou a ver. )) Já tentou pedir funcionalidade interna?

Eu não, em geral sim (penso que o MetaDraiver escreveu ao SD), e a questão foi levantada várias vezes no fórum.

Resposta de programadores, se houver, não sei.

O PS pode ser útil.

Desenvolvimento doindicador de volatilidade de múltiplas moedas em MQL5

O desenvolvimento de um indicador multi-moeda para a análise de divergência de preços

Penso que deveria ter sido publicado aqui, não consegui encontrá-lo.

No primeiro, se houver um erro

Linha 40 de tela de CCanvas; erro

variável estática não resolvida 'CCanvas::m_default_colors'

adicionar

uint CCanvas::m_default_colors[9]={0};

Discutido há muito tempo, não o verificou, o que aí mudou.

Разработка мультивалютного индикатора волатильности на MQL5
Разработка мультивалютного индикатора волатильности на MQL5
  • tol64.blogspot.com
В этой статье рассмотрим разработку мультивалютного индикатора волатильности. Начинающий разработчик на MQL5 может столкнуться с некоторыми сложностями при разработке мультивалютных индикаторов, но после прочтения этой статьи всё станет намного проще. Основные вопросы при разработке мультивалютного индикатора относятся к синхронизации данных...
 

Bem, vamos tentar obter Metadriver. Talvez ele possa lançar alguma luz sobre o que os criadores responderam. Volodya...

Володя (песня измученного ангольского народа)
Володя (песня измученного ангольского народа)
  • my.mail.ru
Песня посвящена ангольскому революционеру одному из командиров MPLA, убитому в 1975 году (в Луанде в честь него названа одна из улиц). Валодя – это было его боевое прозвище. После 75го года песня про Валодю была очень популярна в Анголе. Где только я ни слышал это имя, Незабываемое для сынов Анголы. Володя, Володя, Володя, славный защитник ангольского народа! Володя, Володя, Володя, противник империалиста, Который собирается установить режим...
 
pronych:

Bem, vamos tentar obter Metadriver. Talvez ele possa lançar alguma luz sobre o que os criadores responderam. Volodya...

Não compreendi bem a pergunta. Não pedi um relógio normal. Como o Silêncio, pelo contrário, ia ..., em suma, esperávamos um pelo outro.

Houve um caso indirecto - já depois de se ter descoberto que o pedido de dados fora de TERMINAL_MAX_BAR provoca uma actualização de todos os indicadores no gráfico.

Voltei a trabalhar o meu botão de recarregamento e enviei-o para o Service Desk com a nova versão. Também perguntei nos comentários se esperava que o chip continuasse a funcionar... Eles não disseram nada... Eu estava bem com isso... Fiz uma reportagem a partir dele.

;)

--

Bem, a rigor, não é na verdade um bug. O terminal não se avaria, nem sequer abranda muito, apenas actualiza os dados no gráfico. Compreendo o que estão lá a fazer. Tipo: pedido fora dos dados existentes -> terminal tenta carregar dados, seguido de actualização do gráfico. Simples e eficiente. Porquê mudar se não há vítimas?

// Sobre "recalcular o indicador por dentro", não compreendo o problema. A questão não é clara. Internamente, o indicador é o seu próprio mestre, recalcula o que quiser. Mas se utiliza um sinal externo, é outra questão. Depois rodamos...

 

Meu, talvez não devesses)).

Não é bem claro como é que o cálculo prévio afecta especificamente a renderização de indicadores.

No meu caso, a tentativa de actualização ocorre tanto por OnCalculate() como por temporizador. Multi-instrumento.

Na tentativa mal sucedida de obter filas, a função é interrompida até ao próximo tick ou temporizador, não ocorre nenhum desenho, mas os valores não inicializados (como parece) aparecem no gráfico de algum lugar.

Embora em Init() ArrayInitialize(Buffer ,...) esteja presente.

Talvez eu tenha um insecto algures. Acontece muito raramente e é difícil apanhá-lo.

Parece-me que a função normal de fila de espera forçada na OnCalculate() permitiria minimizar o jogo de pandeiro em índices multi-instrumentos para gráficos com carrapatos raros.

A propósito, está escrito na ajuda ;)

Все необходимые расчеты пользовательских индикаторов необходимо размещать в предопределенной функции OnCalculate().

PS. Já percebi sobre o "chip".

PSPS/ Tenho a sensação de que no caso dado é mais fiável utilizar o cálculo de valores sem utilizar um indicador para uma EA. E, separadamente, um indicador para visualização.

Mas então teria de calcular a mesma coisa duas vezes.

 
MetaDriver:

Não compreendi bem a pergunta. Não pedi ao chamador habitual para o fazer. Pensei que o Silent ia..., em suma, estávamos a contar um com o outro.

...

Refiro-me a isto.

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

Erros, Erros, Perguntas

MetaDriver, 2013.08.03 17:55

"

Se quiser usar um MetaTrader 5 como terminal de entrada, deve usar a função "MetaTrader 5".

Para os meus propósitos, nem sempre é adequado, mas em geral muitos "problemas de fim-de-semana" seriam eliminados.

ForExperts sobre comércio, sistemas de comércio automatizados, e testes de estratégia comercial.

Insectos, insectos, perguntas

MetaDriver, 2013.08.03 18:02

Concordo.

Um "comando" para reiniciar à força todos os cálculos prévios para o símbolo seleccionado também seria útil. Com a subsequente geração de carraças, seria uma boa combinação.



 

Durante os testes visuais, no momento em que o indicador é reinicializado no Expert Advisor, o indicador com configurações antigas continua a ser exibido no gráfico no testador (de facto, cada vez durante a reinicialização é adicionada mais uma "linha paralela"). Tentei fazer o IndicatorRelease sempre antes de conseguir uma nova pega - não ajuda.

Obter novas pegas em código.

void f_indicator_reinit()
 { 
    
   IndicatorRelease(firstHandle);
   IndicatorRelease(secondHandle);
   IndicatorRelease(thirdHandle);
   IndicatorRelease(fourthHandle);  

   bughelper=bughelper+1;
   
   firstHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,HotPink,HotPink,10,MODE_SMA,PRICE_CLOSE,1);
   secondHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,White,White,10,MODE_SMA,PRICE_CLOSE,2);   
   thirdHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Red,Red,10,MODE_SMA,PRICE_CLOSE,3);   
   fourthHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Gold,Gold,10,MODE_SMA,PRICE_CLOSE,4); 
 }  

Introduzi a variável bughelper porque o indicador não se recalcularia a si próprio sem alterar os seus parâmetros de entrada.

 
Silent:

É a isso que me refiro.

Resolvi o problema do recálculo solicitando os dados fora de TERMINAL_MAX_BAR.

E como o gráfico é actualizado em geral - não importa se o pedido é feito de dentro do indicador ou de um programa externo. O principal é que o programa (requisitante) solicita dados para este símbolo e prazo.

Na verdade, não encontrei casos em que tenha de actualizar a tabela "na máquina". Estou completamente satisfeito com o meu botão // ver o link acima.

Com a geração do tick (sem actualização do gráfico) o problema não está resolvido, mas não o resolvi muito - pode ser evitado na maioria dos casos de muitas maneiras (principalmente através da utilização de um temporizador).

 
IndicatorRelease(firstHandle);
Функция возвращает ошибку 4014 - 

ERR_FUNCTION_NOT_ALLOWED

4014

Função do sistema não pode ser chamada

Por favor, informe qual poderia ser a razão para oIndicatorRelease() não ser chamado?

Razão: