MQL4 aggiornato e vecchio codice (condivisione delle esperienze di problem-solving) - pagina 2

 

Anche il codice di questo articolo ha smesso di funzionare. https://forum.mql4.com/ru/3481

In particolare, non scriverà o leggerà i file dall'unità C.

 
Ho un 509 bild. Oggi ho visto che l'editore è cambiato. Avevo bisogno di cambiare il lotto nel codice di EA, e durante la compilazione ho avuto errori relativi a stdlib.mqh e stderror. Ho copiato questi file in /MQL4/Include e l'Expert Advisor è riuscito a copiare .
 

La notte ha aggiornato ME su entrambi i Real su 509 e con posizioni aperte. Il punto è risultato essere 0,0001 e le cifre, rispettivamente, 4! Ho dovuto fare urgentemente le variabili come indicato nella documentazione, ma lo StopLoss è per qualche motivo impostato con zero sulla quinta cifra. E l'unico indicatore DailyPivotPoints, che uso per "calmare la mia coscienza", è scomparso. Ho dovuto ricompilarlo.

Nella demo, i punti e le cifre aggiornate in precedenza erano normali in una sola volta e i DailyPivotPoints non volavano via.

 
Che storie dell'orrore che raccontate qui, questo dovrebbe essere raccontato all'ora di andare a letto, come facevamo nel campo dei pionieri)))
 
evillive:
Quali orrori racconti qui, dovrebbero essere raccontati di notte, come si faceva nel campo dei pionieri )))

Quindi, arriveremo a MT0 e solo a tutto il lotto. Finora ho fatto come descritto nella documentazione, e Punto e Cifre, non importa come li colorate, sono gli stessi di un lotto a 4 cifre.

  double point = MarketInfo(Symbol(),MODE_POINT);
  int   digits = MarketInfo(Symbol(),MODE_DIGITS);
E la demo va bene, relativamente, ovviamente.
 
borilunad:

Quindi, arriveremo a MT0 e solo a tutto il lotto. Finora ho fatto come descritto nella documentazione, ma Punto e Cifre, non importa come li colorate, sono gli stessi di un lotto a 4 cifre.

E la demo va bene, relativamente, ovviamente.

Hai aggiornato il riferimento? Sono entrato e ho trovato quanto segue - prima non c'era.

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

int _Digits

La variabile _Digits memorizza il numero di cifre decimali dopo il punto decimale che determina la precisione del prezzo del simbolo grafico corrente.

Potete anche usare la funzione Digits().

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

Ho controllato, la linea Print(_Digits, " ", Digits()); così su AUDJPY e EURUSD dà quanto segue

2014.02.07 18:52:54.313 TestFileOpen EURUSD.e,M30: 5 5
2014.02.07 18:52:33.317 TestFileOpen AUDJPY.e,M15: 3 3

 
VDev:

Avete aggiornato l'aiuto? Sono entrato e ho trovato quanto segue - prima non c'era.

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

int _Digits

La variabile _Digits memorizza il numero di posizioni decimali dopo il punto decimale che determina la precisione del prezzo del simbolo del grafico corrente.

Potete anche usare la funzione Digits().

Questo deve essere quando si passa a un linguaggio aggiornato, e non lo faccio, tutto si compila! Ma è molto strano che su Demo con lo stesso Expert Advisor su un altro terminale aggiornato il lunedì Point e Digits sono normali, cinque cifre, ma qui su Real dovrebbe ottenere cinque cifre attraverso MarketInfo() :((((

Qui, c'è un controllo nel commento del grafico:

  "\n\n                                  ",DoubleToStr(Point,Digits), //тут выводится 0.0001
  "\n                                  ",DoubleToStr(point,5),   //а тут с переменной 0.00001
Naturalmente, sono rimasto "inorridito" quando SL è stato fissato a 10 volte il suo valore! Mantenendo questo controllo per ora con la speranza che funzioni correttamente, e lo metterò via.
 

Ci saranno altri problemi, è un inizio))) Ora il compilatore sembra richiedere una stretta conformità con i linguaggi normali come C/C++, e MQL5, naturalmente. Cioè, tali sciocchezze non possono più essere compilate.

switch(n)
{
case 1: double d=1; break;
case 2: d=2; break;
}
 
VDev:

Ci saranno altri problemi, è un inizio))) Ora il compilatore sembra richiedere una stretta conformità con i linguaggi normali come C/C++, e MQL5, naturalmente. Cioè, tali sciocchezze non possono più essere compilate.

Non indulgo in queste sciocchezze! La cosa principale è se...altro - funziona e basta! È vero, l'interruttore è nelle funzioni prese in prestito fuori dall'avvio, e tutto funziona. Forse inizierà normalmente lunedì dopo un po' di riposo! ;))
 
borilunad:
Non mi diletto in questo! La cosa principale è se...altro funziona e basta! Il vero interruttore è nelle funzioni prese in prestito fuori dall'inizio, e tutto funziona. Forse inizierà normalmente lunedì dopo un po' di riposo! ;))
Ho provato questa versione solo per un'ora oggi, non ne sono a conoscenza. Un mio conoscente mi ha fatto ridere oggi )))) Ama mettere i punti nei nomi delle variabili. Gliel'ho detto per molto tempo - cambialo in underscore. Oggi non ha compilato bene. Allora lui mi dice - perché, perché ora le variabili devono solo diventare classi!
Motivazione: