Errores, fallos, preguntas - página 3026

 
Сергей Таболин:

¿Y en qué TF superior no aparece la vela junto con la vela del inferior?

El indicador de M1 utiliza otro indicador de M5.

En general, no sería un problema, si no fuera por el aumento del consumo injustificado de recursos computacionales, críticos durante la optimización (en mi caso, cada nuevo M5 provoca el reajuste completo del indicador en todo el historial, y el proyecto aún no está totalmente terminado, tengo previsto utilizar 16 indicadores de diferentes TFs).

 
Andrey Dik:

El indicador de M1 utiliza otro indicador de M5.

En general, no sería un problema, si no fuera por el aumento del consumo injustificado de recursos computacionales, críticos durante la optimización (en mi caso cada nuevo M5 provoca la reejecución completa del indicador en todo el historial, mientras que el proyecto no está totalmente terminado todavía, planeo utilizar 16 indicadores de diferentes TFs).

Andrey, pero la vela M5 se abre al mismo tiempo que la vela M1. ¿O te refieres a la carga de los indicadores redibujados (recalculados)? Entonces, si les prohibimos volver a dibujar, ¿qué diablos necesitan entonces? Entonces no obtendrá nuevos datos de ellos...

 

Error de compilación:

#define  MACRO( X )      X##X
void OnStart()
{
    Print( 11 );        //(1) нормально
    Print( MACRO( 1 )); //(2) Error: '11' - undeclared identifier
}
¿y cuál es la diferencia entre (1) y (2)?
 
Сергей Таболин:

Andrey, pero la vela M5 se abre en el mismo momento que la vela M1. ¿O te refieres a la carga de redibujar (recalcular) los indicadores? Entonces, si les prohibimos volver a dibujar, ¿qué diablos necesitan entonces? Entonces no obtendrás nuevos datos de ellos...

en cuanto aparezca una nueva barra del timeframe de la que se obtienen los datos, se pondrá a cero el contador prev_calculado, lo que significa que el indicador se recalculará como si se hubiera lanzado la primera vez.

¿le resulta familiar esta construcción?

if (rates_total == prev_calculated) return rates_total;
  
int startInd = rates_total - prev_calculated;

for (int i = startInd; i >= 0; i--)
{
  //тут считаем индикатор, который обращается к другому индикатору на старшем ТФ
}

no se trata de la lógica del EA (redibujar, no redibujar, infradibujar o lo que sea), sino del hecho de que prev_calculated se reinicia cuando nadie se lo ha pedido.

 
Andrey Dik:

en cuanto hay una nueva barra del timeframe de la que se obtienen los datos, el contador prev_calculated se pone a cero. significa que todo el indicador se recalcula como si se hubiera ejecutado la primera vez.

¿le resulta familiar esta construcción?

no se trata de la lógica de EA (redibujar, no redibujar, infradibujar o lo que sea), se trata de que prev_calculated se reinicia cuando nadie se lo ha pedido.

Los indicadores son mi punto más débil ))))

¡Pero!

O no entiendo nada de nada, o estás un poco equivocado.

Hasta donde yo sé, prev_calculated es un contador de datos no calculados. Y una vez que se cuentan los datos entrantes, ese contador se pone a cero... Como, eso es todo, chico, no hay más datos nuevos para calcular.... )))

Y por qué razón el indicador debería recalcular completamente en tal caso - ¡no lo sé!

---------------

Mintió un poco ))))

No son los indicadores los que se recalculan, son los "índices" los que se redibujan sólo para que queden "bien" en el historial ;)

 
Сергей Таболин:


Mentí un poco ))))

Los indicadores no se redibujan, los "índices" se redibujan sólo para que se vean bien en el historial ;)

Por eso se venden como churros. Porque siempre se ven HERMOSOS y HERMOSAS.

 
Vladislav Andruschenko:

Por eso se venden como churros. Porque siempre se ven HERMOSOS y HERMOSAS.

100500 ))))))

 
Сергей Таболин:


Hasta donde yo sé, prev_calculated es un contador de datos no calculados.

Por desgracia, sus conocimientos no coinciden con la documentación.

OnCalculate()

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

¿Cómo puedo saber internamente que EX5 está compilado en modo de depuración? No se ejecuta en modo Debug, sino que se compila una vez a través de Debug y se ejecuta en modo normal.

Lo encontré.

void OnStart()
{      
  #ifdef _DEBUG
    Alert("EX5 - debug.");
  #endif

  if (MQLInfoInteger(MQL_DEBUG))
    Alert("Debugging...");
}


¿Y cómo sé que la EX5 está protegida?

Razón de la queja: