Errori, bug, domande - pagina 2491

 
Alexey Navoykov:
Ho notato da molto tempo che l'evidenziazione dei nomi delle macro definite dall'utente in un grande progetto non sempre funziona. Molte macro definite in altri file non vengono evidenziate per qualche motivo. Non riesco ancora a capire il motivo. Tutto quello che vedo è che tutte le macro definite in un certo file dopo una certa linea smettono di essere evidenziate in altri file. Qualcun altro vede questo nel proprio file?
 
Alexey Navoykov:
Ho notato da molto tempo che l'evidenziazione dei nomi delle macro personalizzate in un grande progetto non sempre funziona. Molte macro definite in altri file non vengono evidenziate per qualche motivo. Non riesco ancora a capire il motivo. Tutto quello che vedo è che tutte le macro definite in un certo file smettono di essere evidenziate in altri file dopo una certa linea. Qualcun altro ha visto questo accadere a se stesso?

Ho notato qualcosa di simile. Non posso garantire l'accuratezza della situazione.

 
Alexey Navoykov:
Da molto tempo ho notato che i nomi delle macro personalizzate in un grande progetto non sono sempre evidenziati. Molte macro definite in altri file non sono evidenziate per qualche motivo. Non riesco ancora a capire il motivo, ma vedo che tutte le macro definite in un certo file smettono di essere evidenziate in altri file dopo una certa linea. Qualcun altro vede questo nel suo ambiente?

Sì, e a volte l'autofissazione non funziona per nuove variabili o campi di classe, di solito può essere risolta ricompilando il progetto

Per quanto ho capito, in ME in background gira un processo che si occupa di evidenziare e autofissare, ad un certo punto, non ha tempo (o non vuole) di aggiornare tutte le informazioni

 
Ora che stiamo parlando di rates_total, lasciatemi chiedere alla comunità quale costruzione in OnCalculate è più intelligente e ottimale?
Usavo una costruzione come questa in OnCalculate:
if (rates_total==prev_calculated) {}        // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated==1) {} // момент формирования нового бара 
else {}                                     // пересчитываем последние(rates_total-prev_calculated) бар


Ma dopo essermi reso conto che ci possono essere situazioni in cui prev_calculated>rates_total, mi sono reso conto che non ci capisco niente, ho rinunciato e, se il ricalcolo di tutte le barre non richiede più di un paio di secondi, ho iniziato a usare una costruzione del genere:

if (rates_total==prev_calculated) {}        // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated==1) {} // момент формирования нового бара 
else {}                                     // пересчитываем все бары

Come lo faccio e come lo faccio correttamente?

 
Nikolai Semko:
Visto che stiamo parlando di rates_total, lasciatemi chiedere alla comunità quale costruzione in OnCalculate è più elegante e ottimale?
Usavo una costruzione come questa in OnCalculate:


Ma dopo essermi reso conto che ci possono essere situazioni in cui prev_calculated>rates_total, ho capito che non ci capisco niente, ho rinunciato e, se il ricalcolo di tutte le barre non richiede più di un paio di secondi, ho iniziato a usare una costruzione del genere:

come fa qualcuno a farlo e come, in generale, è competente?

È letterato perché si capisce cosa sta succedendo. Nota sulla tua costruzione: Invece di ==1 scriverei >=1 o semplicemente if(rates_total > prev_calculated) in modo che se le barre mancanti sono pompate vengono ricalcolate.

Inoltre, in mql5 e con la direttiva rigorosa in mql4, per non superare l'array, dobbiamo considerare quante barre possono essere coinvolte nel calcolo dalla barra più a sinistra. Così si scopre che personalmente non ho un modello per tutte le occasioni.

 
Nikolai Semko:
Ora che stiamo parlando di rates_total, voglio chiedere alla comunità quale costruzione in OnCalculate è più elegante e ottimale?
Usavo una costruzione come questa in OnCalculate:


Ma quando ho capito che ci possono essere situazioni in cui prev_calculated>rates_total, ho capito che non ci capisco niente e ho scosso la testa e, se il ricalcolo di tutte le barre non richiede più di un paio di secondi, ho deciso di usare questa costruzione:

come si fa e come si fa correttamente in generale?

Calcolo limite = tassi_totale - prev_calcolato.
Poi, se limite > 1, allora limite = rates_total - 1 (o il numero di barre-1 richiesto per il primo calcolo) e inizializzazione.
E poi un ciclo da limite a >=0.
Non posso fare il codice dal mio cellulare ...
 
Nikolai Semko:
Visto che stiamo parlando di rates_total, lasciatemi chiedere alla comunità quale costruzione in OnCalculate è più elegante e ottimale?
Usavo una costruzione come questa in OnCalculate:


Quando ho capito che ci possono essere situazioni in cui prev_calculated>rates_total, mi sono reso conto di non capire nulla, quindi ho rinunciato e ho usato questa costruzione, se il ricalcolo di tutte le barre non richiede più di un paio di secondi:

come fa qualcuno a farlo e come, in generale, con competenza?

In linea di principio, la domanda è rilevante, negli esempi dagli sviluppatori (consegna di MT) diversi modi di calcolo, anche BarsCalculated() è usato in Bears.mql5

Ho recentemente discusso sotto MT4, finora ho stabilito il seguente schema:https://www.mql5.com/ru/forum/314931/page2#comment_11946579

Devo ancora controllarlo su MT5, ma i grafici si comportano in modo diverso (MT4 / MT5), in MT5 se si scorre con la rotella del mouse all'inizio della storia, sembra che prev_calculated venga azzerato - l'anno scorso ho scritto un indicatore su MT5 e sono stato sorpreso di vedere tale comportamento

ZZY: fai un grafico personalizzato e con il timer scorri la storia - un cosiddetto test bed è necessario per tracciare il comportamento di rates_total e prev_calculated - ho scritto qui un paio di pagine fa sul mismatch di rates_total e iBars() - dovrebbe anche essere preso in considerazione

Mi è piaciuto il suo modo di scrivere gli indicatori - tutto è fatto con cura. L'unico problema con i suoi codici è uno stile molto particolare di formattazione del codice sorgente.

 
Igor Makanu:

...........................

uno stile molto particolare di formattazione della fonte


 
Сергей Таболин:


So come usare lo styler, ma lo styler non funziona se metti diversi operatori in una riga

;)

esempiohttps://www.mql5.com/ru/code/22766
 

Solo una domanda.

ulong ha un valore massimo di 18.........

Ho ottenuto un valore di 61........

EIntegerToString() di questo valore dà 90............. a tutti

Mi ci è voluto un po' per trovare il problema.

C'è un modo per localizzarlo?

Motivazione: