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

 
-Aleks-:

Allora, ho una tale sonda - si può mettere una linea in lungo, ma ho bisogno del doppio per i calcoli con un punto decimale.

Questo sembra funzionare bene.

double CalcY=StringToDouble("0.01234567890001");
Print ("CalcY=",DoubleToString(CalcY,14));

2017.02.05 23:52:50.190 00 EURUSD,M1: CalcY=0.01234567890001

 
Vitalie Postolache:

Questo sembra funzionare bene.

double CalcY=StringToDouble("0.01234567890001");
Print ("CalcY=",DoubleToString(CalcY,14));

Ho 18 cifre in un numero.

 
-Aleks-:

Ho 18 cifre in un numero.

Chi ha vita facile al giorno d'oggi...

L'output del testo è solo fino a 16 caratteri, è scritto in bianco e nero nella documentazione. E i calcoli sono fino al limite del tipo di dati.

 
Vitalie Postolache:

Chi ha vita facile al giorno d'oggi...

L'output del testo è solo fino a 16 caratteri, è scritto in bianco e nero nella documentazione. E calcoli - fino al limite previsto dal tipo di dati.

Quindi sto parlando di calcolo - il numero va bene senza preformare in stringa. Ma il doppio calcolo stesso con un numero è limitato, per quanto ne so, a 15 cifre. O sono 15 cifre in entrambe le direzioni - prima del punto decimale e dopo?

DBL_MIN

Valore positivo minimo che può essere rappresentato dal doppio

2.2250738585072014e-308

DBL_MAX

Valore massimo che può essere rappresentato dal tipo doppio

1.7976931348623158e+308

DBL_EPSILON

Il numero più piccolo per il quale è soddisfatta la condizione 1.0+DBL_EPSILON != 1.0

2.2204460492503131e-016

DBL_DIG

Numero di cifre decimali significative

15

DBL_MANT_DIG

Numero di bit nella mantissa

53

DBL_MAX_10_EXP

Massimo valore decimale del grado di esponente

308

DBL_MAX_EXP

Massimo valore binario del grado di esponente

1024

DBL_MIN_10_EXP

Valore decimale minimo dell'esponente

(-307)

DBL_MIN_EXP

Valore binario minimo del grado di esponente

(-1021)

 
-Aleks-:

Capisco che il doppio con un numero è limitato a 15 cifre. O sono 15 cifre in entrambe le direzioni - prima e dopo il punto decimale?

Il limite è un massimo di 15 cifre, quindi la virgola è irrilevante.

 
int Counter (int type, string sy, enum counterEnum{TIME_1_SY, TOTAL, LOCK})
{
...
}
Per favore consigliatemi, voglio dichiarare un'enumerazione nei parametri della funzione, in modo che solo i seguenti valori possano essere selezionati come terzo parametro quando la funzione viene chiamata:
TIME_1_SY, TOTAL o LOCK

Come implementare questo?

L'ho capito e si è rivelato molto semplice:

enum CE {TIME_1_SY, TOTAL, LOCK};
int Counter (int type, string sy, int counterEnum)
{
...
}
 

Ciao, potresti dirmi il codice di questo programma

se(ObjectFind("Rectangle 33579")==0) Alert("YES");
altrimenti Alert("NO");

Segnala più volte "SI" poi più volte "NO" se l'oggetto esiste e tutte le volte "NO" se l'oggetto non esiste, ma perché una tale simaphore quando l'oggetto esiste?

 
Maksym Mudrakov:
int Counter (int type, string sy, enum counterEnum{TIME_1_SY, TOTAL, LOCK})
{
...
}
Per favore consigliatemi, voglio dichiarare un'enumerazione nei parametri della funzione, in modo che solo i seguenti valori possano essere selezionati come terzo parametro quando la funzione viene chiamata:
TIME_1_SY, TOTAL o LOCK

Come implementare questo?
Dichiarare un'enumerazione nell'ambito globale. E usate l'enumerazione come tipo di parametro nella funzione.
 
vivatforex:

Ciao, potresti dirmi per favore, ecco il codice del programma

se (ObjectFind("Rectangle 33579")==0) Alert("YES");
else Alert("NO");

Segnala più volte "SI" poi più volte "NO" se l'oggetto esiste e tutte le volte "NO" se l'oggetto non esiste, ma perché una tale simaphore quando l'oggetto esiste?

Prova così:

if (ObjectFind(0,"Rectangle 33579")<0) Alert("НЕТ");
else Alert("ДА");
 

Ciao a tutti.

Chi può vedere perché si visualizza così?

Cioè le funzioni sono proprietà diverse ma la visualizzazione è la stessa.

Anche con altri due oggetti dello stesso tipo, solo uno di essi funziona, gli altri parametri sono ignorati

File: