Testare 'CopyTicks'. - pagina 5

 
Karputov Vladimir:
Quindi chiedo due pagine: dare l'esempio più breve possibile (chiarisco, per sicurezza, che "esempio" è il file *.mq5 in numero di un pezzo - cioè uno solo), che mostra il problema.
Beh, almeno ti hanno dato un'intera ifa... E all'inizio ho pensato che il monitor stesse morendo...
 

In allegato c'è il sorgente che genera i due file di testo successivi. Lo screenshot di una parte di questi file qui sopra è un esempio della differenza tra le bandiere e i volumi.

 
zimbabve15:

In allegato c'è il sorgente che genera i due file di testo successivi. Lo screenshot di una parte di questi file qui sopra è un esempio della differenza tra le bandiere e i volumi.

Te l'ho detto - deve essere semplificato. Ecco l'indicatore: visualizza i flag di due strutture MqlTick in una linea (una struttura è riempita tramite CopyTicks, la seconda tramite SymbolInfoTick). Inoltre i flag di queste due strutture vengono confrontati - nel caso in cui il flag sia uguale a zero, allora Alarm.
 

il risultato del vostro indicatore sul mio terminale.

Non ho capito bene la premessa del tuo ultimo messaggio, o devo rifarlo, o mi hai mostrato come avrebbe dovuto essere fatto e l'hai fatto tu stesso. Il tuo metodo e il mio mostrano la differenza di struttura delle zecche prese con metodi diversi. A cosa siamo arrivati?

 
zimbabve15:

il risultato del vostro indicatore sul mio terminale.

Non ho capito bene la premessa del tuo ultimo messaggio, o devo rifarlo, o mi hai mostrato come avrebbe dovuto essere fatto e l'hai fatto tu stesso. Il tuo metodo e il mio mostrano la differenza di struttura delle zecche prese con metodi diversi. A cosa siamo arrivati?

Su quale server di trading e su quale strumento fate i test? I flag con "0" sono chiaramente ricevuti - questo è un errore del server commerciale.
 

Diciamo che c'è un glitch del server di trading con le bandiere. E i volumi? Un paio di post sopra, ho inviato uno screenshot e due file di testo, che mostra chiaramente che le bandiere non solo possono essere zero, ma sugli stessi tick ottenuti con metodi diversi sono diversi, e diversi volumi - questo è due. Se c'è stato un errore durante il trasferimento dal server eSymbolInfoTick ottiene informazioni errate, allora sulla base di quali dati la funzione CopyTicks ottiene tick con un volume diverso? E a cosa credere?

 
Due file allegati - lo stesso modo raccolto ticks, ma sulla coppia euro-dollaro al broker FiboGroup. Guarda, anche se non ci sono zeri, ma c'è un casino di bandiere
 

Qui sotto c'è uno screenshot e i file della storia dei tick del server MetaQuotes-Demo. I flag degli stessi tic ricevuti con metodi diversi sono diversi.

Come risultato, su due diversi server di trading forex di diverse aziende uno stesso tick, ricevuto attraverso CopyTicks eSymbolInfoTick ha diversi flag, sul server di trading di scambio insieme a questo vengono trasmessi volumi diversi.

 
zimbabve15:

Qui sotto c'è uno screenshot e i file della storia dei tick del server MetaQuotes-Demo. Le bandiere delle stesse zecche ricevute in modi diversi sono diverse.

Come risultato, su due diversi server di trading forex di diverse aziende uno stesso tick, ricevuto attraverso CopyTicks eSymbolInfoTick ha diversi flag, sul server di trading di scambio insieme a questo vengono trasmessi volumi diversi.

Sono diversi su MetaQuotes-Demo - perché, ancora una volta, l'esempio dovrebbe essere il più semplice possibile. Le mie bandiere sono le stesse su MetaQuotes-Demo oggi.
 

Prova a impostare la profondità della richiesta di tick a due nel tuo indicatore e vedi i seguenti valori nel debugger:

L'elemento con indice 0 dell'array tick_array mostra la storia, cioè il secondo tick richiesto. E se guardate come cambiano i valori su ogni iterazione - tre di loro cambiano sincronicamente e mostrano il valore corrente della bandiera, e lo stesso valore sul prossimo passo dell'esecuzione dovrebbe essere mostrato in tick_array[0]. Come dovrebbe essere non succede. O la funzione CopyTicks funziona correttamente con una profondità della storia non superiore a 1 tick?