Caratteristiche del linguaggio mql4, sottigliezze e tecniche - pagina 32

 
Andrey Khatimlianskii:

Se il ciclo di 500 bar e il confronto dei loro valori con quelli memorizzati dovesse essere fatto molte volte, e fosse più lungo che calcolare l'hash e confrontarlo con quello memorizzato nello stesso ciclo, allora avrebbe senso.
Ma questo non è affatto il caso.

Cosa vi porta via così tanto tempo per contare che notate la rara occorrenza dell'azzeramento di prev_calcolato?

L'Expert Advisor chiama l'indicatore ogni minuto e controlla cosa c'è di nuovo. Se si nota prev_calculated=0, allora è un ricalcolo completo, forse non è così lungo, ma comunque. Per esempio la coppia USDCNH non è così rara al mio broker reset.
Il tempo di reset (prev_calculated=0):


P.S. Sono anche curioso di sapere quale candela cambia se la barra massima nella storia/carto è impostata a 2000/2000 nel terminale.
 
Nauris Zukas:

P.S. Mi chiedo anche quale candela cambia se la barra Max del terminale nella storia/carto è impostata su 2000/2000.

creare un indicatore con 4 buffer di indicatori che memorizzano l'OHLC - riempirlo quando si esegue l'indicatore per la prima volta

quando prev_calculated=0 scrivere nel file di log dove c'è una discrepanza tra OHLC e buffer e poi sincronizzare i buffer degli indicatori con il nuovoOHLC

HH: in linea di principio, non ha senso riempire i buffer al primo avvio dell'indicatore - può essere fatto a prev_calculated=0

 
Nauris Zukas:

L'Expert Advisor chiama l'indicatore ogni minuto e controlla cosa c'è di nuovo, se si vede prev_calculated=0, allora c'è un ricalcolo completo, potrebbe non metterci molto a contare ma comunque. Per esempio la coppia USDCNH non è rara al mio broker reset.
Tempo di reset (prev_calculated=0):


P.S. Mi chiedo anche quale candela cambia se la barra massima nella storia/carto è impostata a 2000/2000 nel terminale.

Difficilmente un cambio di bar. Più probabilmente qualcosa di un servizio.

Non vedo proprio il motivo per cui ci si debba preoccupare.

 
Andrey Khatimlianskii:

Più che altro qualcosa di ufficiale.

Non lo sapevo. Beh, allora non c'è sicuramente motivo di preoccuparsene. Basta leggere nel manuale "Se dall'ultima chiamata di OnCalculate() i dati dei prezzi sono stati cambiati (è stata pompata una storia più profonda o sono stati riempiti gli spazi vuoti della storia), allora il valore del parametro di input prev_calculated sarà impostato a zero dal terminale stesso".

 
Igor Makanu:

scrivere un indicatore con 4 buffer di indicatori che memorizzano l'OHLC - riempirlo al primo inizio dell'indicatore

Quando prev_calculated=0 si scrive nel log dove c'è una discrepanza tra OHLC e buffer e poi si sincronizzano i buffer degli indicatori con il nuovoOHLC

HH: in linea di principio, non ha senso riempire i buffer degli indicatori alla prima occorrenza - lo si può fare a prev_calculated=0

Sì grazie, per il bene dell'interesse farò un indicatore separato, controllare se le candele stanno cambiando o c'è qualcosa di servizio.

 
OrderModify TP e SL fallisce in una coppia (HSI50), tutte le altre coppie sono OK in DC. Manualmente tutto cambia, ma appena si tenta OrderModify, non c'è modo, nemmeno TP e SL possono essere rimossi da OrderModify. L'errore mostra un prezzo non valido (129). Ovviamente OrderModify è vietato lì (non so perché).
Domanda, qualcuno ha controllato per OrderModify? Come controllarlo?
P.S. La specifica del contratto è HSI50 (Full acces.)
 
Buona giornata!
In un broker MarketInfo() vola costantemente (una o due volte al giorno), ottiene il valore 0 ( specificamente MODE_MARGINREQUIRED). È abbastanza normale, ma allo stesso tempo non c'è nessun tentativo di raggiungere l'indicatore iCustom() (collegato attraverso una risorsa). Anche dopo che MarketInfo() riceve i dati, iCustom() rimane in silenzio. Solo il riavvio del terminale aiuta. Come accedere all'indicatore senza riavviare il terminale, qualche idea? L'indicatore può sparire da qualche parte da una risorsa?
 
Nauris Zukas:
Buona giornata!
Un broker costantemente (una o due volte al giorno) MarketInfo() vola via, ottiene il valore 0 ( MODE_MARGINREQUIRED specificamente). È abbastanza normale, ma allo stesso tempo non c'è nessun tentativo di raggiungere l'indicatore iCustom() (collegato attraverso una risorsa). Anche dopo che MarketInfo() riceve i dati, iCustom() rimane in silenzio. Solo il riavvio del terminale aiuta. Come accedere all'indicatore senza riavviare il terminale, qualche idea? L'indicatore può sparire da qualche parte da una risorsa?

Questa è la domanda a cui vorrei una risposta.

 
È tecnicamente possibile scoprire se il broker sta lavorando in modalità normale o FIFO senza aprire operazioni? Ho cercato in tutta la documentazione e non ho trovato un tale parametro. Se sei un tipo di conto di compensazione, allora l'hedging è disabilitato.
 
Ciao!

Non ricordo di aver incontrato "array out of range" per Time[1], ma questo fatto è accaduto in EA. Fate qualche tipo di controllo per "array out of range" per le variabili di array predefinite-Timeseries?