Benim yaklaşımım. Çekirdek - Motor. - sayfa 91

 
Реter Konow :

Başka bir ciddi soru.

Kendim denemedim, ancak kaynaklar aracılığıyla hızlı bir alışverişin etkinliği konusunda şüpheler var.

Hızlı değişim, - 16 milisaniye sürekli olarak ileri geri.

Disk yüklenmiyor mu?

"erken optimizasyon günahına" düşersiniz :-)

veri alışverişi sınıfı (veya OO sizi iğrendiriyorsa bir dizi işlev) yapın - gerçek projelerde yavaşlarsa, seçenekleri düşüneceksiniz. Ve böylece bir altı ay daha anlamsız testler yapacaksın.

PS Bu arada, projeyi halka sunmak için bir şey yaptınız mı? veya forumda geleneksel olarak CHSV'yi çizin :-)

 
Artyom Trishkin :

Grafik yorumu sınırlı bir boyuta sahiptir. Ya da değil? Bir şekilde tökezledim.

Bence sınırlar var. Ben kendim dizeler aracılığıyla EventChartCustom'a yalnızca MqlTick kenelerini iletiyorum, çünkü Olay kuyruğu, onayların sırasını saklar. Çok rahat.

 
Реter Konow :

Yani, bir dizi diziyi union aracılığıyla uint'e dönüştürebilir misiniz?

Orada nasıl uygulandığını hatırlamıyorum, ancak yalnızca dize dizilerini değil, diğer veri türlerini de herhangi bir türe (MqlTick'te bile) dönüştürebilirim. Kod aynı olacaktır.

Ve StringToChar() kullanmaktan daha mı hızlı?

bilmiyorum. Yönteminizi kullanarak bir dizgeye dönüştürmek için MqlTick'i ve ardından StringToChar aracılığıyla uint'e dönüştürmeyi deneyin. Ve tabii ki geri. Ölçün ve karşılaştırın.

Mümkünse küçük ve basit bir örnek verin. Kodunuzu anlayamıyorum.

 #include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart ()
{    
   string Str[] = { "123" , "Hello World!" , "Peter Konow" };

  CONTAINER< uint > Container; // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)     
  Container[ 0 ] = Str;         // Записали в контейнер строковый массив
  
  CONTAINER< uint > Container2;                 // Создаем контейнер-получатель   
   ArrayCopy (Container2.Data, Container.Data); // Скопировали в него ТОЛЬКО содержимое uint массива

   string Str2[];
  Container2[ 0 ].Get(Str2); // Получили данные в исходном виде
   ArrayPrint (Str2);
}
 
fxsaber :

Bence sınırlar var. Ben kendim dizeler aracılığıyla EventChartCustom'a yalnızca MqlTick kenelerini iletiyorum, çünkü Olay kuyruğu, onayların sırasını saklar. Çok rahat.

Az miktarda mesajdan (64 karaktere kadar) ve sürekli hızlı ileri geri aktarımdan bahsediyorsak, birkaç uygun seçenek vardır.

Üstelik EventChartCustom en iyisi değil çünkü OnChartEvent() olay kuyruğuna giriyor.

Ancak, 1000'den fazla karakterin hızlı bir şekilde ileri geri aktarılması söz konusu olduğunda, EventChartCustom ve olay kuyruğu gecikmelere yol açar (örneğin, tabloları ve özel animasyonları yeniden çizerken).

Kaynaklar aracılığıyla hızlı aktarım şüphelidir.

Burada söyle, bir disk yüklemeyecek mi?

 

Sessizliğe bakılırsa, muhtemelen öyle olacak.

Burada kontrol ettik.))

 
Реter Konow :

Kaynaklar aracılığıyla hızlı aktarım şüphelidir.

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

MetaTrader 5 platformunun yeni versiyonu 1930 yapımı: MQL5'te kayan grafik pencereleri ve .Net kitaplıkları

fxsaber , 2018.12.09 00:18

Bu örnek şimdi 15 kat daha hızlı

 1000000
Time [TestResource()] = 286646


Kabaca söylemek gerekirse, kaynak üzerinden tik yazma/okuma döngüsünün tamamı saniyede 4 milyon tik hızında gerçekleşir.


Burada söyle, bir disk yüklemeyecek mi?

Kaynaklarla çalışırken disk kullanılmaz. Her şey hafızada.

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

Hatalar, hatalar, sorular

fxsaber , 2018.12.11 09:19

Kontrol ettim, 60Mb sessizce (MT4/5) Resources'a yazılıyor. Yani bir sınır varsa, o zaman daha yüksek.

 
fxsaber :


Kaynaklarla çalışırken disk kullanılmaz. Her şey hafızada.

Teşekkür ederim. Yani bu seçenek kalır.

 
fxsaber :


Kaynaklarla çalışırken disk kullanılmaz. Her şey hafızada.

Peki ya bir testçi? Test cihazında oluşturulan kaynaklar bunun dışında görünür olacak mı? Ve hiç test cihazında yaratıldılar mı?

not. Ve sonra burada bir yoldaş, kaynakların - test cihazında çalışıp çalışmadıklarının bilinmediğini söyledi.))
 
Реter Konow :

Peki ya bir testçi? Test cihazında oluşturulan kaynaklar bunun dışında görünür olacak mı?

Ve hiç test cihazında yaratıldılar mı?

Tester'da kaynakların çalışmasını kontrol etmedim. Orada çalışırlarsa, MT4'te görünür olacaklar, çünkü Test Cihazı Terminalin içinde , ancak MT5'te değil, çünkü Test Cihazı Terminale hiçbir şekilde bağlı değildir. Orada, yalnızca Ortak dosyalar aracılığıyla bir değişim mümkündür.


ZY Yukarıdaki tüm bilgiler bir şekilde elde edildi - Kendime bir soru sordum ve bir kod kontrolü ile kendim cevapladım. Tavsiye etmek.

 
fxsaber :

Tester'da kaynakların çalışmasını kontrol etmedim. Orada çalışırlarsa, MT4'te görünür olacaklar, çünkü Test Cihazı Terminalin içinde , ancak MT5'te değil, çünkü Test Cihazı Terminale hiçbir şekilde bağlı değildir. Orada, yalnızca Ortak dosyalar aracılığıyla bir değişim mümkündür.

Apaçık. Kontrol etmek gerekiyor. Bugün kontrol edeceğim.

Neden: