Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 666

 
Roman Sharanov:

He creado una variable en privado

Intento trabajar con él en un método de clase

dice que la variable no está declarada

???

¿Dónde está el código?

 
Artyom Trishkin:

¿Dónde está el código?

la función no debe ser accesible desde un 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:

He creado una variable en privado

Intento trabajar con él en un método de clase

dice que la variable no está declarada

???

Artyom Trishkin:

Pero no está bien.

¿Quién evita utilizar una matriz dinámica en los cálculos? El tamaño de un array dinámico (si NO es un buffer indicador, que es monitoreado por un subsistema) tienes que vigilarlo tú mismo, y si es necesario, cambiar su tamaño. Un array estático tiene un tamaño fijo todo el tiempo - todo depende de la tarea que se realice.

¿Qué es esta tontería injustificada? Los indicadores, en su gran mayoría, sólo calculan y muestran la cantidad necesaria y suficiente de datos calculados. Todo el tiempo, en cada tic.

¿De qué estás hablando? ¿Ignorancia? Entonces es mejor permanecer en silencio. Luego la gente dirá que lo ha leído en el foro oficial de MK. ¿Estás creando una mentira deliberadamente?

¡Artem! No me aburras.

Nadie te impide utilizar una matriz dinámica en tus cálculos.

Pero... Durante los cálculos el procesador está ocupado, y no habrá escritura en el array dinámico.

Así, cualquier dato que llegue a un array dinámico durante los cálculos se ignora automáticamente. (A veces ponen protección, y los escriben en un buffer).

Espero que esto esté claro.

Por eso, todos los datos de las matrices dinámicas se reparten en matrices estáticas, para que no se pierdan datos mientras el procesador trabaja.

¡Y es por eso que todos los cálculos deben realizarse en matrices estáticas !

Por supuesto, el tamaño de las matrices estáticas debe establecerse "de sobra". Esto es obvio.

Pero puedes calcular en ellos todo el tiempo que quieras. Nada se perderá en el proceso.

Espero que le quede claro.

 
Roman Sharanov:

la función debe ser inaccesible desde el código externo

¿Dónde está el método público para acceder a var?

Es algo así:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+

Se utiliza el método Var() para obtener var;

 
neverness:

¡Artem! No me aburras.

Nadie te impide utilizar una matriz dinámica en tus cálculos.

Pero... El procesador está ocupado durante los cálculos y no habrá escritura en el array dinámico.

Así, cualquier dato que llegue a un array dinámico durante los cálculos se ignora automáticamente. (A veces ponen protección, y los escriben en un buffer).

Espero que esto esté claro.

Por eso, todos los datos de las matrices dinámicas se reparten en matrices estáticas, para que no se pierdan datos mientras el procesador trabaja.

¡Y por eso todos los cálculos deben realizarse en matrices estáticas!

Por supuesto, el tamaño de las matrices estáticas debe establecerse "de sobra". Esto es obvio.

Pero puedes calcular en ellos todo el tiempo que quieras. Nada se perderá en el proceso.

Espero que quede claro.

Mentira.

 
Artyom Trishkin:

¿Dónde está el método público para acceder a var?

Es así:

Utiliza el método Var() para obtener var;

¿entonces será accesible desde código externo? necesito que estas variables sólo se elaboren dentro de la clase

 
Roman Sharanov:

para que luego sea accesible desde el código externo? Sólo necesito que estas variables sean elaboradas dentro de la clase

¿Dónde se define este método?

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

¿Dónde se define este método?

a continuación en el archivo de clase

 

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

¿Qué tontería infundada es esta? Los indicadores, en su gran mayoría, no hacen más que calcular y mostrar la cantidad necesaria y suficiente de datos calculados. Todo el tiempo, en cada tic.

¿Por qué tanta tontería? ¿Por ignorancia? Entonces es mejor permanecer en silencio. Luego la gente dirá que lo ha leído en el foro oficial de MK. ¿Estás creando una mentira deliberadamente?

¡Artem!

¿Existen matrices estáticas en los indicadores de MT4/MT5? ?????????????????????

¿En cuál, me gustaría saber?

¿Qué tipo de defecto? - Te lo dije de inmediato: si hay uno, dime dónde.

Todos los indicadores en MT4/MT5 que conozco son dinámicos.

Sí, el seguimiento de todo el tiempo. Sí, en cada garrapata.

Pero se trata de matrices dinámicas, no estáticas.

Y aquí no hay ningún "trastorno".

 
Artyom Trishkin:

Mentira.

Bueno, si es una tontería, está probada por la experiencia.

¡¡¡No son sólo "tonterías teóricas" !!!

- Si los cálculos son bastante largos, los ticks no se escriben en el array de datos correspondiente.

¡¡¡ESTO ES UN HECHO !!!

Razón de la queja: