Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 96

 

Salve, voglio ottenere una data di scadenzaper i futures

EXPIRATION=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_EXPIRATION_TIME);

Dà 1970 01 01 00 00

 

Salve,


Per favore consigliatemi, l'autovalidazione mostra un errore di"divisione per zero" nella seguente espressione:


NormalizeDouble(STOP/MarketInfo( Symbol(),MODE_TICKVALUE)*10,0)*Point

La stampa di tutti i componenti mostra valori NON nulli.

Quale potrebbe essere la ragione dell'errore?

 

MT4

Dove posso ottenere l'elenco attuale e completo dei valori int OrderType()?

L'aiuto, presumo, non è stato aggiornato.


AccountProfit() conta i depositi e i prelievi?

L'aiuto non dice nulla su come viene contato, cosa viene preso in considerazione...

Anche una definizione precisa del termine aiuterebbe a capire cosa intendevano gli sviluppatori e come dovrebbe essere conteggiato.

Forse c'è una panoramica di funzioni simili da parte degli sviluppatori , il cui risultato è derivato? Devo raccoglierlo a pezzi...

 
Viatcheslav Pashkov:

Salve,


Per favore consigliatemi, l'autovalidazione mostra un errore di"divisione per zero" nella seguente espressione:


La stampa di tutti i componenti mostra valori NON nulli.

Quale può essere la ragione dell'errore?


Per favore, datemi un codice più completo. Tipi di variabili. Quale personaggio. Quali valori sono presi prima della sostituzione nell'espressione. Dov'è il risultato del calcolo di questa espressione usato dopo.

 
Kirill Belousov:

Dare un codice più completo. Tipi di variabili. Che personaggio. Quali valori vengono presi prima di essere sostituiti in un'espressione. Dove è il risultato del calcolo di questa espressione utilizzato ulteriormente.

C'erano solo le variabili predefiniteSymbol() eMODE_TICKVALUE)

Non so cosa sia, ma ho risolto il problema in questo modo:

Ho introdotto un controllo per lo zero come: se l'espressione non è uguale a zero, allora esegui.


E tutto è andato bene.

Non so cosa significhi...ma terrò presente...che l'autovalidatore indica una POSSIBILE divisione per zero nel blocco INI, non una esplicita.

 
Viatcheslav Pashkov:

Salve,


Per favore consigliatemi, l'autovalidazione mostra un errore di"divisione per zero" nella seguente espressione:


La stampa di tutti i componenti mostra valori NON nulli.

Quale potrebbe essere la ragione dell'errore?

double TICK_VALUE = MarketInfo( Symbol(),MODE_TICKVALUE);
if(TICK_VALUE ==0) return;
NormalizeDouble(STOP/TICK_VALUE *10.0)*Point
 
Vitaly Muzichenko:

Come puòTICK_VALUE essere uguale a zero ?

 
Viatcheslav Pashkov:

Comepuò TICK_VALUE essere uguale a zero ?


finché il terminale non è collegato all'account, la maggior parte delle variabili è zero

 
Taras Slobodyanik:

finché il terminale non è collegato all'account, la maggior parte delle variabili è zero


Grazie, lo terrò presente!

 
Viatcheslav Pashkov:

C'erano solo le variabili predefiniteSymbol() eMODE_TICKVALUE)

Non so cosa sia successo, ma ho risolto il problema in questo modo:

Ho introdotto un controllo per lo zero come: se l'espressione non è uguale a zero, allora esegui.


E tutto è andato bene.

Non so cosa significhi ... ma terrò presente ... che l'autovalidatore indica una POSSIBILE divisione per zero nel blocco INI, non una esplicita.

Segnalare una divisione per zero non è il problema, è la conseguenza.

Ma ora sarà difficile trovare il problema, dato che avete semplicemente rimosso lo scomodo messaggio sulla divisione per 0.

Cosa state normalizzando esattamente? Dove sostituisci il risultato?

Per favore, dai il tuo codice dove usi ulteriormente il risultato dell'espressione che hai dato. Credo che il problema sorga lì.

Motivazione: