Errori, bug, domande - pagina 2053

 

Perché il compilatore salta questo? (MT4/MT5).

double x=1;
double a=1/(x*0);

Solo a runtime appare la divisione per 0.

 
Kirill Belousov:

Perché il compilatore salta questo? (MT4/MT5).

Solo a runtime appare la divisione per 0.

Probabilmente perché il compilatore non calcola il valore, traduce solo il codice del programma in codice macchina.

 
E la classifica dei segnali?

Sono all'ultimo posto o al centro
 

Cosa c'è di sbagliato nella griglia di Gann in MT5? Non puoi spostare le estremità della linea di controllo lungo l'asse Y?

 
Nel tester di strategia, quando il codice ha sostituzioni autocomplete per le variabili di istanza sotto forma di commenti, poi nelle impostazioni di ottimizzazione super, ma dopo l'ottimizzazione i veri nomi delle variabili sono nella tabella. È confuso - devi guardare sempre nel codice.
 

Cara Amministrazione.

Bug nel rapporto 1653 di MT5 Strategy Tester

broker ActiveTrades

il mio Expert Advisor prima apre una posizione, poi modifica gli stop (SYMBOL_TRADE_EXECUTION_MARKET)

Questo viene mostrato normalmente nei log.

Ma quando si salva il rapporto, non ci sono fermate nel rapporto.

SYMBOL_FILLING_MODE=3 SYMBOL_TRADE_EXEMODE=2 SYMBOL_EXPIRATION_MODE=7 SYMBOL_TRADE_MODE=4 SYMBOL_TRADE_STOPS_LEVEL=0 SYMBOL_TRADE_FREEZE_LEVEL=0 SYMBOL_ORDER_MODE=127 SYMBOL_START_TIME=0 SYMBOL_EXPIRATION_TIME=0 SYMBOL_SPREAD=5 SYMBOL_SESSION_DEALS=0
IE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   market buy 0.01 EURUSD (1.18278 / 1.18283 / 1.18278)
JP      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal #2  buy 0.01 EURUSD at 1.18283 done (based on order #2)
 OH      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal performed [#2  buy 0.01 EURUSD at 1.18283]
LN      0       09:43:35.667    Core 1  2017.08.01 02:10:00   order performed buy 0.01 at 1.18283 [#2  buy 0.01 EURUSD at 1.18283]
EQ      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify  2 POSITION_TYPE=0 stoploss=1.17678 takeprofit=0.0 request.sl=1.17678 request.tp=0.0 POSITION_SL=0.0 POSITION_TP=0.0 SYMBOL_BID=1.18278 SYMBOL_ASK=1.18283 stops_level=0
OR      0       09:43:35.667    Core 1  2017.08.01 02:10:00   position modified [#2  buy 0.01 EURUSD 1.18283 sl: 1.17678]
DE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed
CL      0       09:43:35.667    Core 1  2017.08.01 02:10:00   Result = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed


I campi Stop Loss e Take Profit sono vuoti.


Questo succede solo su SYMBOL_TRADE_EXECUTION_MARKET.

Anche se quando chiudo per Stop Loss, tutto è impostato correttamente...

 
Alexey Viktorov:

Probabilmente perché il compilatore non calcola il valore, traduce solo il codice del programma in codice macchina.

Se il denominatore è una costante, ad esempio x/(5*0), l'errore viene rilevato al momento della compilazione.

Cioè il compilatore non si limita a tradurre il codice, ma esegue il calcolo.

Mi sembra che il compilatore dovrebbe rilevare un caso in cui il denominatore è un prodotto in cui uno dei termini è 0 (costante), quindi il compilatore dovrebbe produrre un errore di divisione per 0.

 
FileReadArray() non legge un array di dati quando la dimensione del file supera INT_MAX bytes.
 
Roffild:
FileReadArray() non legge l'array di dati quando la dimensione del file supera INT_MAX bytes.

Non è un FileReadArray, è un array che non può essere più grande di quella dimensione. Non è un errore, questo è stato progettato.

 
Kirill Belousov:

Se il denominatore è una costante, ad esempio x/(5*0), l'errore viene rilevato al momento della compilazione.

Cioè il compilatore non si limita a tradurre il codice, ma esegue il calcolo.

Mi sembra che il compilatore dovrebbe rilevare un caso in cui il denominatore è un prodotto in cui uno dei termini è 0 (costante), quindi il compilatore dovrebbe produrre un errore di divisione per 0.

Conosci un linguaggio e il suo compilatore che può catturare tali errori?

Motivazione: