Errori, bug, domande - pagina 2751

 
Igor Makanu:

è una specie di paradosso che ci sia l'accesso a _Symbol .... ma nessun accesso a

const MqlTick _Tick; // Текущий _Symbol-тик.

anche se MQL è posizionato come un linguaggio per lo sviluppo di strategie di trading

_Symbol è una costante, per questo non c'è nessun problema (anche se è più corretto chiamare Symbol()). Un tick è una variabile, come immaginate che sia dichiarato come const, ma il suo valore cambia?

 
Alexey Navoykov:

Com'è che l'avete dichiarato come const, ma il suo valore cambia.

Ahimè, sono proprio come te... Lo stesso idealista, per il quale è più logico e comprensibile scrivere in VS C# - lì il compilatore non permette di separare un concetto logico di costante dal controllo macchina del C++ prima della compilazione

non ha esitato a fare domande

https://www.mql5.com/ru/forum/1111/page2680#comment_15546412


il punto è che è tutto logico in C++ ;)

 
Alexey Navoykov:

Non avete bisogno di questo ***. _Symbol è una costante, quindi non ci sono problemi(anche se è più corretto chiamare Symbol()).

Cosa c'è di male a scriverlo per un utente?

const string _Symbol = ::Symbol();

E un tick è una variabile - come immaginate che sia dichiarata come const, ma il suo valore cambia.

Bid/Ask in MT4. Naturalmente, RefreshRates() è lì.


Recentemente ho scoperto un simbolo su cui le cifre erano impostate in modo errato. Ho chiesto al mio broker di correggerlo. L'ha fatto al volo. Non ha guardato se ha cambiato il valore della variabile _Digits e Digits(). Ma solo il fatto che il simbolo può cambiare i suoi valori al volo.

 
Cari sviluppatori, è possibile rendere la finestra del grafico simile ad altre finestre, come in WIN 10? In alternativa, c'è la possibilità di "ridipingere" la cornice della finestra del grafico, e la cornice del terminale in generale, con il colore nero.
A seconda della combinazione di colori, per esempio. Le cornici bianche larghe sui grafici neri sono fastidiose, irritanti e impediscono di arricchirsi. per favore!!!
 
Igor Makanu:

Ahimè, sono proprio come te... Sono lo stesso idealista che trova più logico e comprensibile scrivere in VS C# - il compilatore non permette di separare la nozione logica di costante dal controllo macchina del C++ prima della compilazione

non ha esitato a fare domande

https://www.mql5.com/ru/forum/1111/page2680#comment_15546412

Nel primo caso avete una variabile statica, non un membro della classe, quindi la costante non ha nulla a che fare con essa.

 
Alexey Navoykov:

Non hai bisogno di questo ***. _Symbol è una costante, quindi non c'è nessun problema (anche se è più corretto chiamare Symbol()). Un tick è una variabile. Come immagini che sia dichiarato come const, ma il suo valore cambia.

Si confonde la costanza dal lato MQL e dal lato kernel. L'essenza del dichiarare una struttura con il modificatore const è che il codice MQL non può modificarla. Per analogia, si può descrivere un metodo di classe const, che impedisce all'oggetto di cambiare in questo metodo, ma non significa che l'oggetto stesso non possa cambiare il suo stato per altre condizioni.

 

Perché non posso vedere le variabili globali del terminale nel tester in modalità visiva (emulata, ovviamente)?

Le variabili globali del terminale funzionano nel tester?

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
 
Andrey Dik:

Perché non posso vedere le variabili globali del terminale nel tester in modalità visiva (emulata, ovviamente)?

Le variabili globali del terminale funzionano nel tester?

È sempre stato possibile (F3). Funzionano.

 
Alexey Navoykov:

Nel primo caso, state cambiando una variabile statica, non un membro della classe, quindi la costante non ha niente a che fare con essa.

Questo script dovrebbe restituire somma = 0?

o questo script dovrebbe addirittura restituire un errore di compilazione?

void OnStart()
{
   int sum = 0;
   for(int i = 0; i < 3 ; i++)
   {
      const int j = f(i);
      sum += j * i;
   }
   printf("sum = %i", sum);
}
//+------------------------------------------------------------------+
int f(int v)
{
   return(v);
}
//+------------------------------------------------------------------+
 
Igor Makanu:

lo script dovrebbe restituire sum = 0 ?

O questo script dovrebbe addirittura restituire un errore di compilazione?

Almeno esegui un debugger prima di scrivere dichiarazioni ridicole.
Nel secondo ciclo i == 1 e j == 1, e nel terzo e così via entrambi sono uno in più.

Motivazione: