Errores, fallos, preguntas - página 2345

 
Aleksey Vyazmikin:

Cómo entiendo esto - estoy probando con OHLC en M1 y al cerrar en SL obtengo una ganancia/pérdida sensata (33606-33608=-2), pero cuando cierro en take profit - sin sentido (33591-33506=29), sí, veo que el precio es "33562" pero ¿de dónde salió ese precio? La barra de minutos es menor.

Si alguien sabe la razón, y no se trata de un bug, ¡le ruego que lo diga!

Las pruebas con garrapatas reales no cambian el panorama.

Por favor, dé un registro del momento de cierre y de los ticks reales (CTRL+U) alrededor de este evento.

 
Error durante la compilación
class A {
    static int i;
} a; //Error: unresolved static variable 'A::i'
int A::i;
Por lo demás:
class A {
    static A i;
} a;
A A::i;
Está bien. ¿Qué diferencia hay?
 

He buscado en todo el foro y no lo he encontrado (((.

Aquí está mi clase:

class Myclass
  {
public:
                     Myclass();
                    ~Myclass();
   void              OnInit();
   void              OnDeinit();
   void              OnTick();
   void              OnTester();
   void              OnTimer();
  };

Quiero llamar a los manejadores de eventos de la clase en funciones estándar de manejo de eventos

¿Cómo puedo hacer una macro sustitución? (o una plantilla de funciones... que establecerá automáticamente los manejadores de eventos para las instancias de la clase)

 
Igor Makanu:

He buscado en todo el foro y no lo he encontrado (((.

Aquí está mi clase:

Quiero llamar a los manejadores de eventos de la clase en funciones estándar de manejo de eventos

¿Cómo puedo hacer una macro sustitución? (o una plantilla de funciones..., algo que asigne automáticamente los manejadores a las instancias de la clase)

Puede ver un ejemplo aquí.

Init_Sync
Init_Sync
  • www.mql5.com
Если в MT изменить таймфрейм или имя символа чарта, то все индикаторы на чарте выгрузятся с чарта и загрузятся на него снова. При этом, в отличие от MT4, в MT5 последовательность выгрузиться/загрузиться не определена из-за особенности внутренней архитектуры. Данное обстоятельство иногда вызывает не сразу очевидные проблемы, связанные с тем, что...
 
fxsaber:

Puede ver un ejemplo aquí.

por desgracia, he estudiado todos tus ejemplos durante la última hora, no puedo ser un maestro de las definiciones)))

Aquí está su respuesta, me hice por analogía, compila, todo funciona, pero puedo "envolver" una instancia de la clase en la sustitución de macro

class Myclass
  {
public:
                     Myclass(){};
                    ~Myclass(){};
   void              OnInit(){Print(__FUNCSIG__," выполнен");};
   void              OnDeinit();
   void              OnTick();
   void              OnTester();
   void              OnTimer(){Print(__FUNCSIG__," выполнен");};
  } m_class;
//+------------------------------------------------------------------+
#define  CHECK_INIT_TIMER m_class.OnTimer();
void OnTimer( void )
{
  CHECK_INIT_TIMER;
  ::OldOnTimer();
}
#define OnTimer OldOnTimer
//+------------------------------------------------------------------+

#define  CHECK_INIT_INIT m_class.OnInit();
void OnInit( void )
{
  CHECK_INIT_INIT;
  ::OldOnInit();
}
#define OnInit OldOnInit

pero si tengo 3-5 instancias de una clase, ¿cómo puedo envolverla en macro sustituciones?

 
fxsaber:

Traiga el registro de la hora de cierre y los ticks reales (CTRL+U) alrededor de este evento.

Mirado - no hay ticks, dos terminales se colgaron al intentar solicitar - solicitado sólo para un día... pero por el tráfico parece que se ha descargado todo el tiempo (estoy descargando un futuro, no una cola).

Entonces, que no haya garrapatas condicionalmente, ¿entonces qué?

 
Aleksey Vyazmikin:

Entonces, que no haya garrapatas convencionalmente, ¿entonces qué?

Lo que sea. En aletas o asc podría haber cerrado. La propagación en la barra puede ser cualquier cosa, etc. Es un juego de adivinanzas, realmente.

 
Igor Makanu:

y si tengo 3-5 instancias de la clase, ¿cómo envuelvo esto en sustituciones de macros?

Todavía no entiendo la tarea.

 
fxsaber:

Todavía no entiendo la tarea.

Quiero escribir sólo #include <fileclass.mqh> en el código experto

y luego declarar 3 instancias de la clase en el código myclass: Myclass m_class1, m_class2, m_class3

y desea obtener sustituciones de macros en funciones estándar de manejo de eventos

SZY: para una instancia de la clase, usted ha ayudado, aconsejó dónde buscar - todo funciona, pero para 3 instancias de cómo hacer que no entiendo (((

 
fxsaber:

Lo que sea. En aletas o asc podría haber cerrado. La propagación en la barra podría haber sido cualquier cosa, etc. Un juego de adivinanzas, en definitiva.

De la documentación.

La diferencia entre los precios de compra y venta se denomina "spread". Durante las pruebas, el diferencial no se modela, sino que se toma de los datos históricos. Si el diferencial es menor o igual a cero en los datos históricos, se utiliza el último diferencial conocido en el momento de la generación.

Como no hay garrapatas, la dispersión es la misma durante todo el intervalo de pruebas, y es pequeña.