Erros, bugs, perguntas - página 524

 
idispatch:
Além disso, tanto quanto percebi, o encerramento de uma transacção por um stop loss está relacionado com uma transacção perdida no relatório de resultados do verificador (onde se encontra a percentagem de transacções perdedoras e rentáveis)
Os negócios deficitários diferem dos lucrativos pelo sinal menos, e a cor do símbolo não afecta a distribuição dos negócios no relatório.
 

Após a actualização para Build 507, estou a ter dois problemas no testador:

1. Durante a optimização ao trocar as tabulações de teste, o terminal ocasionalmente (nem sempre) trava;

2. Se uma enumeração foi seleccionada como parâmetro optimizado, então ao tentar executar um dos resultados da optimização, o Expert Advisor não vê o valor desta enumeração, ou seja, é sempre igual a zero.

 
Diubakin:

Após a actualização para Build 507, estou a ter dois problemas no testador:

1. Durante a optimização ao trocar as tabulações de teste, o terminal ocasionalmente (nem sempre) trava;

2. Se uma enumeração foi seleccionada como parâmetro optimizado, então ao tentar lançar um dos resultados da optimização, o Expert Advisor não vê o valor desta enumeração, ou seja, é sempre igual a zero.

Por favor escreva para Servicedesk com o maior número de detalhes possível.

Sabemos que há um problema com enumerações durante a optimização, mas não podemos reproduzir o erro de forma alguma

 
Escrevi ao Service Desk...
 
Diubakin:
Escrevi para Servicedesk...

Aceitei a vossa candidatura e fiz perguntas complementares

 

...E aqui surge a questão (retórica?)...

Há repetidos cálculos adicionais dos mesmos valores no indicador, os quais, naturalmente, dão os mesmos resultados. A solução parece ser óbvia: para calcular uma vez (ao aceder aos dados históricos pela primeira vez), colocar tudo no buffer e, noutros casos, aplicar aos resultados prontos. Mas...

O indicador tem um número já enorme de buffers (pelo menos 10 para armazenar os dados calculados de todo o histórico em vários períodos de tempo diferentes) - já estão a ser acedidos com os dados correspondentes inicialmente calculados. Agora, na ideia e como opção, existe a necessidade de duplicar o número de amortecedores.

Naturalmente, tudo isto depende das especificações do hardware: o poder de processamento do processador e a quantidade de memória. E é isso que vai ganhar. Mas tomemos o hardware como muito médio - não o mais recente PC doméstico. Não demasiado de nenhum dos dois, e não demasiado pouco. É difícil decidir de imediato se deitar fora a memória ou o poder computacional.

Então a pergunta a um público conhecedor: o que é que recomenda? Talvez haja argumentos para uma ou outra opção... Ou não desorganiza a memória duplicando os buffers indicadores calculados, e aquece o processador, calculando a mesma coisa sempre que precisar, ou vice-versa?

Obrigado.

 
x100intraday:

...O que suscita a pergunta (retórica?)...

...

Evidentemente, tudo depende dos parâmetros técnicos do hardware: o poder de processamento do processador e a quantidade de RAM. E é isso que vai ganhar. Mas consideremos o hardware como sendo bastante médio - não um PC doméstico recente. Não demasiado de nenhum dos dois, e não demasiado pouco. É difícil decidir de imediato se se deve deitar fora a memória ou o poder computacional.

...

Fiz indicadores para uma centena de matrizes e nada, o meu conselho é comprar alguma memória (graças a Deus que agora não é caro).
 
x100intraday:

...E aqui surge a questão (retórica?)...

Há repetidos cálculos adicionais dos mesmos valores no indicador, os quais, naturalmente, dão os mesmos resultados. A solução parece ser óbvia: para calcular uma vez (ao aceder aos dados históricos pela primeira vez), colocar tudo no buffer e, noutros casos, aplicar aos resultados prontos. Mas...

O indicador tem um número já enorme de buffers (pelo menos 10 para armazenar os dados calculados de todo o histórico em vários períodos de tempo diferentes) - já estão a ser acedidos com os dados correspondentes inicialmente calculados. Agora, na ideia e como opção, existe a necessidade de duplicar o número de amortecedores.

Naturalmente, tudo isto depende das especificações do hardware: o poder de processamento do processador e a quantidade de memória. E é isso que vai ganhar. Mas tomemos o hardware como muito médio - não o mais recente PC doméstico. Não demasiado de nenhum dos dois, e não demasiado pouco. É difícil decidir de imediato se deitar fora a memória ou o poder computacional.

Então a pergunta a um público conhecedor: o que é que recomenda? Talvez haja argumentos para uma ou outra opção... Ou não desorganiza a memória duplicando os buffers indicadores calculados, e aquece o processador, calculando a mesma coisa sempre que precisar, ou vice-versa?

Obrigado.

Em alternativa, porque não utilizar bases de dados para as suas necessidades? Calculado, registado... chegou o momento - extraído na forma mais conveniente, utilize-o.

Arquitecturalmente, a solução permite separar o cálculo e o cache dos resultados.

 
Vladix:

Em alternativa, porque não utilizar bases de dados para as suas necessidades? Calculado, registado... está na hora - extraído na forma mais conveniente, utilize-o.

Arquitecturalmente, a solução permite separar o cálculo e o cache dos resultados.

Não o nego, mas a frase "está na hora" soa engraçada, dado que cada referência será reproduzida em OnCalculate a cada tick. Ou o BD tem de ficar inteiramente em RAM, ou terá de aceder lentamente ao disco e empurrá-lo para as cinzas. Embora... o que entendo eu de SGBD...

No entanto, a MQL não é uma linguagem de consulta para a DB? Se assim for, já está a trabalhar com a base de dados do disco e o disco parece estar vivo por agora. Não há necessidade de inventar nada de novo aqui.

Se se referia a uma base de dados diferente e a uma forma específica (não normalizada) de aceder à mesma, por favor explique. Se sugeriu integrar a interacção MQL5 com outra coisa, é demasiado cedo para mim, pois acabo de começar a estudar o MLQ e estou a avançar para o kindling avançado...

 

Muito frequentemente a ligação ao servidor é desconectada. No entanto, o indicador mostra uma ligação estável:

O terminal não volta a ligar-se. Tenho de fazer o login manualmente. É possível fazer isto programmaticamente usando a MQL5?