Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 593

 

Dato che sono al di sotto dei dummies nell'uso delle dll, mi avventurerò a chiedere qui: potreste dirmi come formare correttamente WinExec("shutdown /r", 0) nelle build attuali?

Non necessariamente lo spegnimento, finora non riesco a far funzionare nulla.

Grazie.

 
Ce l'ho.
 

Come opzione, grazie. Anche se continuo a non capire perché questo accada data la normalizzazione.

Un'altra possibile soluzione - se qualcuno ne ha bisogno - ho convertito il doppio in int. Dal momento che ho la precisione richiesta conosciuta in anticipo.

 

Salve. La linea dell'istruzione if nell'EA non viene eseguita

Alert("sell_stop_open= ", sell_stop_open, " Middle= ", Middle);

se (sell_stop_open != Middle)

{

Alert ("sell_stop_open= Middle");

L=L2;

int ticket3=OrderSend(Symb, OP_SELLSTOP, L, Middle, 2, Maximum+4*Point,Minimum_30, Com, Magic);

}

Quando il messaggio di allarme appare prima se vedo i valori sell_stop_open=1.3080, Middle =1.3080, ma se non viene eseguito.

Potete dirmi per favore cosa può causare un tale errore?

 
Garik27p:

Salve. La linea dell'istruzione if nell'EA non viene eseguita

Alert("sell_stop_open= ", sell_stop_open, " Middle= ", Middle);

se (sell_stop_open != Middle)

{

Alert ("sell_stop_open= Middle");

L=L2;

int ticket3=OrderSend(Symb, OP_SELLSTOP, L, Middle, 2, Maximum+4*Point,Minimum_30, Com, Magic);

}

Quando il messaggio di allarme appare prima se vedo i valori sell_stop_open=1.3080, Middle =1.3080, ma se non viene eseguito.

Potete dirmi per favore cosa può causare un tale errore?


Altrimenti.
if (sell_stop_open == Middle)
 
r772ra:

Altrimenti.
Ho provato anche in questo modo. Ma quando funziona sul tester, a volte sì, a volte no.
 
Desead:

Come opzione, grazie. Anche se continuo a non capire perché questo accada data la normalizzazione.

Un'altra possibile soluzione - se qualcuno ne ha bisogno - ho convertito il doppio in int. Dal momento che ho la precisione richiesta conosciuta in anticipo.

I numeri doppi hanno le loro peculiarità, quindi per convertirli in un valore di testo si usa DoubleToString (una funzione del nuovo linguaggio MQL4) o DoubleToStr (una funzione del vecchio linguaggio). Queste funzioni convertono un valore numerico in una stringa di testo contenente la rappresentazione in caratteri del numero nel formato di precisione specificato.

Vi consiglio di leggere "Peculiarità del lavoro con i numeri di tipo doppio in MQL4". Bene e su un forum è possibile cercare informazioni più dettagliate.

P./S.: Non credo che la variante di traduzione double in int, quando è necessario vedere double - sia la decisione adatta.

 
Garik27p:
Ho provato anche in questo modo. Ma quando funziona sul tester, a volte sì, a volte no.

Ecco, la risposta.
 
r772ra:
Proprio lì, la risposta.


Grazie!!!
 
Desead:
P./S.: Per sicurezza, dirò che c'è una risposta parziale alla tua domanda anche nella "Nota" dell'aiuto di NormalizeDouble.

Io stesso mi dimenticavo di inserire DoubleToS... ...e poi si è meravigliato dei molti numeri dopo il punto. :)