Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 666

 
Roman Sharanov:

Eu criei uma variável em particular

Eu tento trabalhar com ele em um método de classe

diz que a variável não é declarada

???

Onde está o código?

 
Artyom Trishkin:

Onde está o código?

a função não deve ser acessível a partir de código externo

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
 
Roman Sharanov:

Eu criei uma variável em particular

Eu tento trabalhar com ele em um método de classe

diz que a variável não é declarada

???

Artyom Trishkin:

Mas isso não está certo.

Quem impede a utilização de uma matriz dinâmica nos cálculos? O tamanho de uma matriz dinâmica (se NÃO for um buffer indicador, que é monitorado por um subsistema) você tem que observar por si mesmo, e se necessário, mudar seu tamanho. Uma matriz estática tem um tamanho fixo o tempo todo - tudo depende da tarefa em mãos.

O que é este absurdo injustificado? Os indicadores, em sua grande maioria, estão apenas calculando e exibindo a quantidade necessária e suficiente de dados calculados. O tempo todo, em cada tic-tac.

Do que você está falando? Ignorância? Então é melhor permanecer em silêncio. Então, as pessoas dirão que o leram no fórum oficial da MK. Você está deliberadamente criando uma mentira?

Artem! não me aborreça.

Ninguém está impedindo que você utilize uma matriz dinâmica em seus cálculos.

Mas!!!! Durante os cálculos, o processador está ocupado, e não haverá nenhuma escrita na matriz dinâmica.

Assim, qualquer dado que chega em uma matriz dinâmica durante os cálculos é automaticamente ignorado. (Às vezes eles colocam proteção, e as escrevem em um buffer).

Espero que isto esteja claro...

É por isso que todos os dados em matrizes dinâmicas estão espalhados por matrizes estáticas, de modo que nenhum dado é perdido enquanto o processador trabalha.

E é por isso que todos os cálculos devem ser realizados em arrays estáticos !

É claro que o tamanho das matrizes estáticas deve ser definido "para poupar". Isto é óbvio.

Mas você pode calcular neles o tempo que quiser. Nada se perderá no processo.

Espero que isto esteja claro.

 
Roman Sharanov:

a função precisa ser inacessível a partir de código externo

Onde está o método público de acesso var ?

É mais ou menos assim:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
   int               Var(void)      const { return this.var; }
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+

Você usa o método Var() para obter var();

 
neverness:

Artem! não me aborreça.

Ninguém está impedindo que você utilize uma matriz dinâmica em seus cálculos.

Mas!!!! O processador está ocupado durante os cálculos e não haverá escrita para a matriz dinâmica.

Assim, qualquer dado que chega em uma matriz dinâmica durante os cálculos é automaticamente ignorado. (Às vezes eles colocam proteção, e as escrevem em um buffer).

Espero que isto esteja claro...

É por isso que todos os dados em matrizes dinâmicas estão espalhados por matrizes estáticas, de modo que nenhum dado é perdido enquanto o processador trabalha.

E é por isso que todos os cálculos devem ser realizados em arrays estáticos !

É claro que o tamanho das matrizes estáticas deve ser definido "para poupar". Isto é óbvio.

Mas você pode calcular neles o tempo que quiser. Nada se perderá no processo.

Espero que seja claro.

Besteira.

 
Artyom Trishkin:

Onde está o método público de acesso var ?

É assim:

Use o método Var() para obter o var();

então será acessível por código externo? preciso que estas variáveis só sejam fabricadas dentro da classe

 
Roman Sharanov:

então será acessível a partir de código externo? só preciso que estas variáveis sejam fabricadas dentro da classe

Onde este método é definido?

//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Onde este método é definido?

abaixo no arquivo de classe

 

Если говорить об индикаторах, то индикаторы (вообще говоря!) следует вычислять. Но в МТ4/МТ5 мы этого не наблюдаем!

Que bobagem infundada é essa? Os indicadores, em sua grande maioria, não fazem nada além de calcular e exibir a quantidade necessária e suficiente de dados calculados. O tempo todo, em cada tic-tac.

Por que todo esse absurdo? Por ignorância? Então é melhor permanecer em silêncio. Então, as pessoas dirão que o leram no fórum oficial da MK. Você está deliberadamente criando uma mentira?

Artem!

Existem matrizes estáticas nos indicadores MT4/MT5 ?????????????????????

Em qual delas, eu gostaria de saber?

Que tipo de defeito? - Eu lhe disse imediatamente - se houver um, diga-me onde?

Todos os indicadores em MT4/MT5 que eu conheço são dinâmicos.

Sim, rastreando o tempo todo. Sim, em cada tic-tac.

Mas estas são matrizes dinâmicas, não estáticas.

E não há aqui nenhuma "perturbação".

 
Artyom Trishkin:

Besteira.

Bem, se não faz sentido, é uma experiência testada.

Não apenas "bobagem teórica"!!!

- Se os cálculos forem bastante longos, os carrapatos não são escritos no conjunto de dados envolvidos.

ISTO É UM FATO!!!