Storia di zecca - pagina 4

 
Tapochun:

Il modo... Non va bene, non credi?!

Beh, è la prima cosa che mi è venuta in mente.
 
Vasiliy Sokolov:
Suggerimento agli sviluppatori: introdurre un formato temporale più accurato nella struttura MqlTick, in modo che ogni tick abbia un numero di millisecondi.
Senza questo, non ha senso iniziare tutto questo se voglio analizzare simultaneamente la storia di diversi strumenti, perché senza di esso non vedrò la sequenza di influenza reciproca degli strumenti gli uni sugli altri.
 
Renat Fatkhullin:

Tutto arriva, è solo che la prima chiamata fa scattare la paginazione e le chiamate successive sono istantanee.

Ecco un esempio:

Una richiesta di 2.000.000 di zecche:

I file delle zecche si trovano qui, così possono essere trasferiti facilmente (perché saranno enormi):
10-20 mb al mese. Richiesti 20.000.000 di zecche, e i file sono solo fino a maggio di quest'anno. Tuttavia...
 
Oleg Tsarkov:
Non puoi aspettarti che i broker ti diano una storia regolare e profonda. Hanno imparato a trasformare i minuti in ore su un cinque e se ti lamenti di questo, dicono che non possono permettersi di caricare il server con gigabyte di dati storici. Che tipo di zecche ci sono...
Il defunto RVD permetteva di scaricare più di un anno di storia delle zecche.
 
Non c'è bisogno di raccoglitori di tick ora - la cronologia dei tick è disponibile nel terminale.
 
Tapochun:
10-20 mb al mese. Richiesti 20.000.000 di zecche, e file solo fino a maggio di quest'anno. Tuttavia...

Proprio così, 20.000.000 di tick sono circa (tutto dipende dal simbolo) fino al 15 maggio 2015.

2015.10.15 16:03:08.585 CopyTicks (EURGBP,M1)   Тик 19999999: 2015.10.15 16:03:04 bid: 0.73775 last: 0.0
2015.10.15 16:03:08.585 CopyTicks (EURGBP,M1)   Тик 0: 2015.05.15 16:00:47 bid: 0.72077 last: 0.72077
2015.10.15 16:03:08.585 CopyTicks (EURGBP,M1)   Получено тиков: 20000000 код ошибки: 0
Richiedi di più.
 
Renat Fatkhullin:

Esatto, 20.000.000 di zecche sono fino al 15 maggio 2015.

Richiedi di più.
La RAM ha fatto capire che si era esaurita. Il terminale consumava da 1,5 a 2 gb. Controllato il più possibile con uno script. In incrementi di 100.000.
 
Tapochun:
La RAM ha fatto capire che si era esaurita. Il terminale consumava da 1,5 a 2 gb. Lo script ha controllato il più possibile. In incrementi di 100.000.

Che tipo di script? Mostrami il codice, per favore.

Forse non hai liberato (direttamente o indirettamente) la memoria usata in precedenza?

 
Renat Fatkhullin:

Esatto, 20.000.000 di zecche sono fino al 15 maggio 2015.

Richiedi di più.
Sì, sarebbe bene aggiungere l'overload di CopyTicks() proprio come le altre funzioni Copy.... Essere in grado di passare da una data all'altra. In questo momento, per esempio, non è possibile ottenere tick dall'inizio del giorno corrente al momento corrente.
 
Renat Fatkhullin:

Che tipo di script?

Forse solo non liberando la memoria precedentemente occupata?

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

MqlTick array[];
int value = inpStep;
int num = 0;
while( num >= 0 )
   {
    num = CopyTicks( _Symbol, array, COPY_TICKS_ALL, 0, value );
    if( num > 0 )
      {
       value += inpStep;
       Print( ": Получено тиков: ",value );
       continue;
      }
    else
      {
       Print( "Максимально доступно ",value-inpStep," тиков! Шаг = ",inpStep );
       break;
      }
   }