tik geçmişi - sayfa 5

 

Evet, hatta. Tarihi bugünün başından almaya çalışmak garip bir sonuç veriyor. İşte komut dosyası:

         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 );
                        }
                }

İşte sonuç:

genel merkez 0 18:38:20.974 test_CopyTicks_1178 (EURUSD,M1) Geçerli günün başlangıcı: 2015.10.15 00:00:00

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

CF 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: İlk kullanılabilir onay işaretinin varış zamanı: 2011.12.19 00:00:08

RD 0 18:38:22.204 test_CopyTicks_1178 (EURUSD,M1) OnStart: Mevcut son onay işaretinin varış zamanı: 2012.01.06 18:41:26

Görünüşe göre bu şekilde yazmak imkansız: CopyTicks( _Symbol , array, COPY_TICKS_ALL, start, 1000000 );

 
Tapochun :

Büyük ihtimalle kendisi yazmıştır. Um, önceden dolu olan hafızayı nasıl boşaltabilirsin?

20.000.000 elemanlı MqlTick dizisinin kendisi yaklaşık 800 MB bellek alır. Ayrıca, bilgilerin toplandığı ve görüntülendiği terminalde aynı kaynak diziyi depolamak.

Bu nedenle, büyük verilerle çalışmak istiyorsanız, tek bir çıkış yolu var - 64 bit sürümler ve 8 GB'den bellek. Neyse ki, şimdi gülünç paraya mal oluyor.

 
Karputov Vladimir :
Artık kene toplayıcılarına ihtiyaç yoktur - kene geçmişi terminalde mevcuttur.

Kullanılabilirliği DC'nin iyi niyetine mi bağlı olacak yoksa kenelerin korunması sunucu kısmına sabit kodlanmış mı?

 
Renat Fatkhullin :

20.000.000 elemanlı MqlTick dizisinin kendisi yaklaşık 800 MB bellek alır. Ayrıca, bilgilerin toplandığı ve görüntülendiği terminalde aynı kaynak diziyi depolamak.

Bu nedenle, büyük verilerle çalışmak istiyorsanız, tek bir çıkış yolu var - 64 bit sürümler ve 8 GB'den bellek. Neyse ki, şimdi gülünç paraya mal oluyor.

Ve küçük porsiyonlar için sorarsanız? 1 milyon kene diyelim mi? Bir problem olması gerekmez mi? Bir anlamda, istek - işleme - bir iz. rica etmek.

Yoksa veriler birikip operasyon sona mı erecek?

 
Alexey Volchanskiy :

Kullanılabilirliği DC'nin iyi niyetine mi bağlı olacak yoksa kenelerin korunması sunucu kısmına sabit kodlanmış mı?

MT5 sunucuları, en başından beri her zaman kene geçmişini biriktirdi ve sakladı.

İstemci terminallerine göndermek devre dışı bırakılamaz.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

tik geçmişi

Tapochun , 2015.10.15 15:08

Evet, tıpkı diğer Copy.. fonksiyonları gibi CopyTicks()'in aşırı yüklenmesini eklemek güzel olurdu. Tarihten bugüne kadar alabilmek. Şimdi, örneğin, içinde bulunulan günün başlangıcından şimdiki ana kadar tik almak imkansızdır.
Bu uygulanabilir mi?
 
Tapochun :
Bu uygulanabilir mi?
Yapabilir
 
Renat Fatkhullin :
Yapabilir
Teşekkürler, çok yardımcı olacak. Artık kene almak için "gezinmek" zor.
 

Dosyalara aylık olarak keneler eklenir, değil mi? İşte bir ekran görüntüsü:

Dosyaları işaretleyin

Bu dosyalar nasıl okunur? Yoksa sadece strateji test cihazı aracılığıyla mı?

 
Karputov Vladimir :

Dosyalara aylık olarak keneler eklenir, değil mi? İşte bir ekran görüntüsü:

Bu dosyalar nasıl okunur? Yoksa sadece strateji test cihazı aracılığıyla mı?

Alnında not defteri aracılığıyla işe yaramadı.