Erros, bugs, perguntas - página 1623

 
Dmitri Custurov:
Muito obrigado pela solução fornecida. Tudo funciona.
Óptimo. Por isso, a biblioteca e o exemplo usam caso que estou a afixar no KodoBase.
 
-Aleks-:
Seria muito mais rápido ler todo o ficheiro da matriz na memória, e depois trabalhar com ela.
Acho que o optimizador não terá de abrir-leitura-clarar o ficheiro dezenas de milhares de vezes.
 
Aliaksandr Yemialyanau:

Como é que ligo um ficheiro de matriz ao meu EA?

Primeiro, o guião escreve uma matriz:

Conecto o ficheiro na EA:

Ao compilar, erros:

t ...' - o identificador é demasiado longo mas.dat 1 1

'' - símbolo desconhecido mas.dat 1 3015

Qual é o ficheiro de massa? Que tipo de ficheiro? A julgar por estes erros, é apenas um fluxo de bytes, certo?
 

Bugs sérios com variáveis estáticas. Considere este código:

class A  { public:
            int m;
            A() { Alert("A");  m=1; }
         };

class B  { public:
            B() { Alert("B");  static A a;  Alert("a.m==",a.m);  Alert("&a==",&a);}
         };
B b;

void OnStart()
{
};

Ao executá-lo, obtemos a seguinte ordem de alertas:

B
a.m==0
&a==0
A

Ou seja, a variável estática ainda não foi inicializada no momento do acesso. Até o ponteiro é nulo. Foi simplesmente saltado e seguimos em frente em segurança.

Ou inicializa a variável e vai mais longe ou aborta a compilação com um erro.

Mas quando ocorre a repetição de classes mutuamente referenciadas, a compilação deve ser abortada.

 
Aliaksandr Yemialyanau:

Como é que ligo um ficheiro de matriz ao meu EA?

Primeiro, o guião escreve uma matriz:

Conecto o ficheiro na EA:

Ao compilar, erros:

t ...' - o identificador é demasiado longo mas.dat 1 1

'' - símbolo desconhecido mas.dat 1 3015

O seu script deve gerar um ficheiro mas.mqh, que conterá um conjunto de uchar-tipos contendo bytes dos seus dados. Por exemplo, se o ficheiro tiver três bytes de tamanho, o conteúdo do ficheiro mas.mqh deve ser o seguinte:

uchar mass[3] = {25, 127, 89};

A massa de matriz gerada é o que se deve usar no seu programa.

 
Aliaksandr Yemialyanau:
Acho que o optimizador não terá de abrir-leitura-clarar o ficheiro dezenas de milhares de vezes.
Oh, então quer compilar com uma matriz?
 
Não é necessário ler um ficheiro do disco dezenas de milhares de vezes. É para isso que serve a cache do disco, embora não saiba se é utilizado neste caso em particular, mas deve verificá-lo e medi-lo antes de inventar muletas.
 
Se eu interromper uma única corrida em MT5, apenas o gráfico de mudança de balanço é visível. Mas os comércios e as encomendas não estão disponíveis.
A utilização do modo de visualização nem sempre é adequada devido a possíveis cálculos lentos adicionais por MQLInfoInteger(MQL_VISUAL_MODE).
É possível acrescentar a disponibilidade de toda a informação durante o backtest (sem visualização), como acontece no MT4?
 
No modo de depuração de dados históricos, MQLInfoInteger(MQL_VISUAL_MODE) retorna sempre verdadeiro.
 
fxsaber:
No modo de depuração de dados históricos, MQLInfoInteger(MQL_VISUAL_MODE) retorna sempre verdadeiro.
O que deve regressar?