Storia di zecca - pagina 5

 

Anche. Cercando di ottenere la storia dall'inizio di oggi, ottengo uno strano risultato. Ecco il copione:

         MqlTick array[];
         MqlDateTime sTime;
         TimeToStruct( TimeCurrent(), sTime );
         sTime.hour = 0;
         sTime.min = 0;
         sTime.sec = 0;
         datetime start = StructToTime( sTime );
         Print( "Начало текущего дня: ",start );
         int num = CopyTicks( _Symbol, array, COPY_TICKS_ALL, start, 1000000 );
         
         int size = ArraySize( array );
         Print( __FUNCTION__,": num = ",num,", arraySize = ",size );
         for( int i = 0; i < size; i++ )
                {
                 if( i == 0 )
                        {
                         Print( __FUNCTION__,": Время прихода первого доступного тика: ",array[ i ].time );
                        }
                 else if( i == size-1 )
                        {
                         Print( __FUNCTION__,": Время прихода последнего доступного тика: ",array[ i ].time );
                        }
                }

Ecco il risultato:

HQ 0 18:38:20.974 test_CopyTicks_1178 (EURUSD,M1) Inizio giorno corrente: 2015.10.15 00:00:00

JM 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: num = 1000000, arraySize = 1000000

CF 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: Primo tempo di arrivo del tick disponibile: 2011.12.19 00:00:08

RD 0 18:38:22.204 test_CopyTicks_1178 (EURUSD,M1) OnStart: Ultimo tempo di arrivo del tick disponibile: 2012.01.06 18:41:26

Probabilmente, non può essere scritto così:CopyTicks( _Symbol, array, COPY_TICKS_ALL, start, 1000000 );

 
Tapochun:

Probabilmente l'ho scritto io. Come si fa a liberare la memoria precedentemente occupata qui?

Lo stesso array MqlTick con 20.000.000 di elementi richiede circa 800 mb di memoria. Più la memorizzazione della stessa matrice originale nel terminale, dove le informazioni vengono accumulate ed emesse.

Quindi, se volete lavorare con dati massicci, c'è solo una via d'uscita: versioni a 64 bit e 8 GB di memoria. Per fortuna, al giorno d'oggi costa una cifra ridicola.

 
Karputov Vladimir:
Non c'è bisogno di raccoglitori di tick ora - la cronologia dei tick è disponibile nel terminale.

La sua disponibilità dipenderà dalla buona volontà del DC o il salvataggio dei tick è cablato sul lato server?

 
Renat Fatkhullin:

La stessa matrice MqlTick con 20 000 000 elementi richiede circa 800 mb di memoria. Più la memorizzazione della stessa matrice iniziale nel terminale, dove le informazioni vengono accumulate ed emesse.

Quindi, se volete lavorare con dati massicci, c'è solo una via d'uscita: versioni a 64 bit e 8 GB di memoria. Per fortuna, al giorno d'oggi costa una cifra ridicola.

E se lo richiedete in piccoli lotti? Diciamo 1 milione di zecche ciascuno? Non dovrebbe essere un problema, giusto? Cioè, query - elaborazione - prossima query.

O i dati si accumulano ed esauriscono la RAM?

 
Alexey Volchanskiy:

La sua disponibilità dipenderà dalla buona volontà delle società di intermediazione o la memorizzazione della cronologia delle zecche è cablata sul lato server?

I server MT5 hanno sempre accumulato e memorizzato la storia dei tick fin dall'inizio.

Non può essere disabilitato nei terminali client.

 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Storia delle zecche

Tapochun, 2015.10.15 15:08

Sì, sarebbe bene aggiungere l'overloading di CopyTicks() proprio come le altre funzioni Copy.... Essere in grado di passare da una data all'altra. Ora, per esempio, non si possono ottenere i tick dall'inizio del giorno corrente al momento attuale.
Può essere implementato?
 
Tapochun:
Questo può essere implementato?
Possiamo farlo
 
Renat Fatkhullin:
Puoi
Grazie, molto utile. È un po' difficile "navigare" ottenendo zecche al momento.
 

Le zecche sono impilate in file mese per mese, giusto? Ecco uno screenshot:

File di spunta

E come si leggono questi file? O solo attraverso un tester di strategia?

 
Karputov Vladimir:

Le zecche sono impilate in file mese per mese, giusto? Ecco uno screenshot:

E come si leggono questi file? O solo attraverso un tester di strategia?

Non potevo leggerli con il blocco note.