Errores, fallos, preguntas - página 1397

 
Ilya Malev:

Y en segundo lugar, necesitamos utilizar este valor de búfer del indicador en otros indicadores y Asesores Expertos,

y algo me dice que si haces un buffer para los cálculos, será imposible obtener su valor a través de iCustom.

Por cierto, no recuerdo exactamente, pero parece que es posible. Pruébalo. )
 
Anatoli Kazharski:
Por cierto, no recuerdo exactamente, pero creo que sí. Pruébalo. )
Aun así, tengo una docena de indicadores con atributos como DRAW_NONE llamándose unos a otros, y entonces ya necesito algún subsistema separado que agrupe en un solo lugar las lecturas de todos los indicadores de trabajo por posición del puntero del ratón. :)
 
Ilya Malev:
Aun así, tengo una docena de indicadores con atributos como DRAW_NONE llamándose unos a otros, y entonces ya necesito algún subsistema separado que agrupe en un solo lugar las lecturas de todos los indicadores que funcionan por posición del puntero del ratón. :)
Este argumento es más serio. Podríamos añadirlo en el servicio Desk. ))
 
Si puede obtener valores como INDICATOR_CALCULATIONS a través de iCustom, entonces sí, todo lo que tiene que hacer es permitir que estos valores aparezcan en la ventana de datos. Si recibo una respuesta a mi solicitud de servicedesk, sugeriré esta opción.
 
A100:
Error de compilación:'a' - no es un miembro estático
pero no pasa nada. ¿Cuál es la diferencia?

//должен обращаться к функции, хотя бы потому что уж стоят скобки и тип, да еще a базового класса приватный
class A     { int a; };
class B : A { void a(); };
void B::a() {}
// здесь инлайнится, все правильно
class A     { int a; };
class B : A { void a() {} };
// так работает, видно проблема с компилятором
class A     {int h; void f(); };
class B : A {void a(); };
void B::a() {}
 

No sé tú, pero yo ya veo varios errores de compilación.

1) no distingue entre funciones y variables al heredar.

2) la variable de la clase base es privada, por lo que primero debería salir el mensaje de que es imposible acceder a los miembros privados

 
sigma7i:

No sé tú, pero yo ya veo varios errores de compilación.

1) no distingue entre funciones y variables al heredar.

2) la variable de la clase base es privada, por lo que primero debería salir el mensaje de que es imposible acceder a los miembros privados

Por favor, cite algunos ejemplos. Sería interesante ver qué casos concretos causan esos problemas en cuanto al formato del código.
 
Anatoli Kazharski:
Dame algunos ejemplos. Es interesante ver qué casos tienen esos problemas en cuanto al diseño del código.

Creo que ya he dado ejemplos. Pero lo haré más detallado para que quede más claro:

Observa que en el tercer ejemplo de la clase A he sustituido el nombre de la variable por "h" y este código compila (por supuesto, si comentas los ejemplos 1 y 2), lo que confirma mi suposición.

//+------------------------------------------------------------------+
//|                                                           ds.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+



//должен обращаться к функции, хотя бы потому что уж стоят скобки и тип, да еще a базового класса приватный
class A     { int a; };
class B : A { void a(); };
void B::a() {}
// здесь инлайнится, все правильно
class A     { int a; };
class B : A {void a() {} };
// так работает, видно проблема с компилятором
class A     {int h; void f(); };
class B : A {void a(); };
void B::a() {}


void OnStart()
  {
    // c объектами работает правильно
  
    B variable;
    variable.a();   // ошибка доступа, здесь все нормально
    variable.a = 1; // ошибка доступа, как и следовало ожидать, здесь все нормально
  }
//+------------------------------------------------------------------+
 

Situación: la prueba es en H1 (creo que es importante - estamos hablando de una prueba multiperiodo). La última barra diaria (D1) en el probador SeriesInfoInteger da por ejemplo 2015.10.08. Tomo el indicador iMA en D1 con un desplazamiento de 2. Da el valor de 2015.10.05 (que debería ser 2015.10.06 con un desplazamiento de 2).

Significa que el indicador se retrasa en el probador en comparación con la creación de la serie temporal. Ocurre claramente al comienzo de una nueva barra D1. ¿Alguien ha experimentado una situación así? Todavía no voy a simular el ejemplo.

 
Ilya Malev:

Situación: La prueba es en H1. La última barra diaria (D1) en el probador SeriesInfoInteger da por ejemplo 2015.10.08. Tomo las lecturas del indicador iMA con un desplazamiento de 2. Da el valor de 2015.10.05 (que debería ser 2015.10.06 con un desplazamiento de 2).

Es decir, el indicador se retrasa en el probador en comparación con la construcción de la serie temporal. ¿A alguien le ha pasado esto? Todavía no voy a simular un ejemplo.

Sí, eso puede ocurrir cuando se trabaja con el TF, por lo que recuerdo, sólo más antiguo que el actual en el probador. Los datos no han tenido tiempo suficiente para ser actualizados. Es decir, cuando es un nuevo día en H1, el día anterior está en el primer tick de este nuevo día en D1.
Razón de la queja: