Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1933

 

Colleghi, sono perplesso. Ho bisogno di aiuto.

Ho un indicatore che funziona normalmente, l'ho fatto da due, ma non è questo il punto. Voglio nascondere il primo blocco di variabili esterne, ma quando rimuovo qualsiasi input in questo blocco dopo la compilazione, il terminale con l'indicatore installato sul grafico si blocca.

Il frammento di codice dalla linea 76 alla 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;

Si blocca anche se sposto tutto questo blocco più in basso di altre variabili e anche se sposto le variabili più esterne su o giù:

Se cambio l'ordine delle variabili all'interno del blocco, si compila normalmente. Il terminale non si blocca.

Non capisco cosa sta succedendo. Forse non vedo qualcosa di evidente, il mio occhio si è offuscato ((( Allego il codice

P.S. Il problema è stato risolto, il codice è stato rimosso.
 
Andrey Kaunov #:

Colleghi, sono perplesso. Ho bisogno di aiuto.

Ho un indicatore che funziona normalmente, l'ho fatto da due, ma non è questo il punto. Voglio nascondere il primo blocco di variabili esterne, ma quando rimuovo qualsiasi input in questo blocco dopo la compilazione, il terminale con l'indicatore installato sul grafico si blocca.

Il frammento di codice dalla linea 76 alla 86

Si blocca anche se sposto tutto questo blocco più in basso di altre variabili e anche se sposto le variabili più esterne su o giù:

Se cambio l'ordine delle variabili all'interno del blocco, si compila normalmente. Il terminale non si blocca.

Non capisco cosa sta succedendo. Forse mi sfugge qualcosa di ovvio, la mia vista è offuscata (((( Sto allegando il codice

Sostituire l'input con const

e rallegratevi!

 
Maxim Kuznetsov #:

sostituire l'input con const

e rallegratevi!

Non aiuta, si blocca ancora il terminale quando si aggiunge un indicatore al grafico.

 
Andrey Kaunov #:

Non aiuta, il terminale si blocca ancora quando si aggiunge l'indicatore al grafico.

Compila?

Quindi, se il parametro ha un attributo di input, funziona, ma se è const, si blocca?

non esiste un tale miracolo

 
Andrey Kaunov #:

È uno shaitan, non capisco niente. Forse non vedo qualcosa di evidente, il mio occhio si è offuscato (((( Allego il codice

Dalla linea 379 in poi avete una ricorsione all'indicatore (chiamata stessa). Ci sono dei parametri lì e bisogna abbinarli anche dopo aver cambiato l'ordine dei parametri.

 
Nikolay Ivanov #:

Dalla linea 379 in poi avete una ricorsione all'indicatore (che chiama se stesso). Ci sono dei parametri lì e bisogna anche regolarli dopo aver cambiato l'ordine dei parametri.

Grazie mille, Nikolay.

Sì, avrei dovuto scavare più a fondo. Sono bloccato nei parametri.

 

Puoi dirmi perché il ciclo interno non funziona in questo ciclo?

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

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

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

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


Il "ciclo 2" non viene stampato. Solo "ciclo 1".

 
Chi sa come fissare la dimensione di OBJ_RECTANGLE_LABEL in modo che sia la stessa su diversi monitor? Ho fatto un piccolo pannello delle dimensioni del pannello integrato di OneClickTrading (in pixel), ma su diversi monitor il mio cambia dimensione, ma quello integrato no.
 
Ivan Butko #:

Puoi dirmi perché il ciclo interno non funziona in questo ciclo?

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

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

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

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


Il "ciclo 2" non viene stampato. Solo "ciclo 1"

tutto si stampa, avvisi.

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: rimosso
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit reason 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Allarme: Ciclo 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Allarme: Ciclo 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: inizializzato

 
Valeriy Yastremskiy #:

tutto si stampa, avvisi

2022.03.20 10:28:29.373 Script qqq EURUSD,M1: rimosso
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit reason 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Allarme: Ciclo 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Allarme: Ciclo 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: inizializzato

Grazie per il controllo! Guarderò