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

 

Colegas, estoy perplejo. Necesito ayuda.

Tengo un indicador que funciona normalmente, lo hice a partir de dos, pero eso no es lo importante. Quiero ocultar el primer bloque de variables externas, pero cuando elimino cualquier entrada de este bloque después de la compilación, el terminal con el indicador instalado en el gráfico se cuelga.

El fragmento de código de la línea 76 a la 86

input string     01 = "••  Channel:";   // ------------------------------------------------------------
input string     02 = "";       //  

input ENUM_TF_MINUTES   TMA_TimeFrame = TF_CURR;                        // Time Frame
input uint              TMA_Half_Length = 55;                                                                   // Averaging Period
input ENUM_APPLIED_PRICE        TMA_Price = PRICE_CLOSE;        // Applied _Price
input double    TMA_ATR_Multiplier = 3;                                                         // ATR Multiplier
input uint              TMA_ATR_Period = 100;                                                                   // ATR Period
input double    TMA_Band_Deviation_Percent = 50;                        // Band Deviation Percent
input bool              TMA_Interpolate = true;                                                         // Interpolate?
input uint Bars_Limit=1000;

También se cuelga si muevo todo este bloque más abajo que otras variables e incluso si muevo las variables más externas hacia arriba o hacia abajo:

Si cambio el orden de las variables dentro del bloque, se compila normalmente. El terminal no se congela.

No entiendo lo que está pasando. Quizás no veo algo evidente, se me ha nublado la vista ((( Adjunto el código

P.D. El problema ha sido resuelto, el código ha sido eliminado.
 
Andrey Kaunov #:

Colegas, estoy perplejo. Necesito ayuda.

Tengo un indicador que funciona normalmente, lo hice a partir de dos, pero eso no es lo importante. Quiero ocultar el primer bloque de variables externas, pero cuando elimino cualquier entrada de este bloque después de la compilación, el terminal con el indicador instalado en el gráfico se cuelga.

El fragmento de código de la línea 76 a la 86

También se cuelga si muevo todo este bloque más abajo que otras variables e incluso si muevo las variables más externas hacia arriba o hacia abajo:

Si cambio el orden de las variables dentro del bloque, se compila normalmente. El terminal no se congela.

No entiendo lo que está pasando. Tal vez me estoy perdiendo algo obvio, mi ojo es borrosa (((( Estoy adjuntando el código

Sustituir la entrada por la const

¡y alégrate!

 
Maxim Kuznetsov #:

sustituir la entrada por la const

¡y alégrate!

No ayuda, sigue colgando el terminal al añadir un indicador al gráfico.

 
Andrey Kaunov #:

No ayuda, el terminal sigue colgándose al añadir el indicador al gráfico.

¿Compila?

Entonces, si el parámetro tiene un atributo de entrada, funciona, pero si es constante, se cuelga?

no existe tal milagro

 
Andrey Kaunov #:

Es un shaitan, no entiendo nada. Tal vez no veo algo obvio, mi ojo se ha nublado (((( Adjunto el código

A partir de la línea 379 tienes recursividad al indicador (llamada en sí). Allí hay parámetros y hay que hacerlos coincidir también después de cambiar el orden de los parámetros.

 
Nikolay Ivanov #:

A partir de la línea 379 tienes recursión al indicador (llamándose a sí mismo). Allí hay parámetros y también hay que ajustarlos después de cambiar el orden de los parámetros.

Muchas gracias, Nikolay.

Sí, debería haber investigado más a fondo. Estoy atascado en los parámetros.

 

¿Puede decirme por qué el bucle interno no funciona en este ciclo?

for (int Try=0; Try<1;) 

  {  Print("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Print("цикл 2"); Try=1; Try2=1;
...


El "ciclo 2" no se imprime. Sólo el "ciclo 1".

 
¿Quién sabe cómo fijar el tamaño de OBJ_RECTANGLE_LABEL para que sea el mismo en diferentes monitores? Hice un pequeño panel del tamaño del panel incorporado de OneClickTrading (en píxeles), pero en diferentes monitores el mío cambia de tamaño, pero el incorporado no.
 
Ivan Butko #:

¿Puede decirme por qué el bucle interno no funciona en este ciclo?

for (int Try=0; Try<1;) 

  {  Print("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Print("цикл 2"); Try=1; Try2=1;
...


El "ciclo 2" no se imprime. Sólo "ciclo 1"

todo se imprime, las alertas.

void OnStart()
  {
//---
for (int Try=0; Try<1;) 

  { Alert("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Alert("цикл 2"); Try=1; Try2=1;
        }}
   
  }
//+------------------------------------------------------------------+

2022.03.20 10:28:29.373 Script qqq EURUSD,M1: eliminado
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit reason 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Alerta: Ciclo 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Alerta: Ciclo 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: inicializado

 
Valeriy Yastremskiy #:

todo se imprime, alertas

2022.03.20 10:28:29.373 Script qqq EURUSD,M1: eliminado
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit reason 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Alerta: Ciclo 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Alerta: Ciclo 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: inicializado

¡Gracias por el cheque! Miraré

Razón de la queja: