MT5 ve iş başında hız - sayfa 89

 
Belki sadece birkaç test yapın ve sorular kaybolacak?
 
traveller00 :
Belki sadece birkaç test yapın ve sorular kaybolacak?

Belki. Ne yazık ki zamanım çok kısıtlı ve kendim test yapma fırsatım yok :(

 
traveller00 :
Belki sadece birkaç test yapın ve sorular kaybolacak?

Testler, yalnızca ilk kez çalıştırıldığında bir fark gösterir.

 
Slava :

Girişler Symbol(), _Symbol - NULL'a eşdeğer (burada sembol adı yerine NULL'a izin verilir)

Bu durumda, mevcut sembolün özellikleri önbelleğe alındığından, mevcut sembolün varlığı, Piyasa İzleme'deki mevcut sembolün varlığı ve mevcut sembolün özelliklerine gereksiz bir çağrı için gereksiz bir kontrol yapılmaz.

Yani, Symbol(), _Symbol veya NULL yerine normal bir dize parametresi belirtilirse, tam program kontrolleri gerçekleştirilir ve başka bir özellik sorgusu yapılır.

Vorolar:

   string symbol= _Symbol ;
   SymbolInfoInteger (symbol,...)
   SymbolInfoInteger ( NULL ,...)

, - SymbolInfoXXX'e yapılan çağrıların davranışı, bu iki durumda, bir kontrolden daha fazla farklılık gösterecekler mi?

symbol==_Symbol

?

 
traveller00 :

Bu arada, MT5'in en son yayınlanan sürümünün bugünün yeni günlüklerinden:

Bunlar, her biri kendi tablosunda olan 1 sembolde 3 danışmandı. İsteğin her kene üzerine gittiği göz önüne alındığında. Tabii ki, bu tür aykırı değerler nadiren olur, ancak aslında son tıklamadan gelen 1 yeni tıklama talebi 700 ms sürdü.

Yaklaşık 12 saat izliyorum, ancak gecikmeler zaten farkediliyor, tüm sınırları aşıyor.

Time[Main.mqh 162 in ProcessTicks: CopyTicksRange ( _Symbol ,OldTicks, COPY_TICKS_INFO ,LastTickParsed.time_msc)] = 8589203 mcs.

3 Uzman Danışman, her biri kendi grafiğinde, tümü 1 sembolde, CopyTicksRange aracılığıyla yeni gelen tikte önceki tikten eski tikler ister. Ve gecikme neredeyse 9 saniyedir. Ve öyle görünüyor ki bu sınır değil. Büyük olasılıkla onay deposu, senkronize olarak erişilen paylaşılan bir kaynaktır, ancak çok kötü senkronizasyonda bile böyle zamanlar olmamalıdır.

Birisi bunun tek seferlik bir aksaklık olduğunu söyleyecek. Bu 12 saatlik izleme sırasında maalesef 1 saniyede yüzden fazla çıktı alındı. Ve artık tek seferlik patlamalar gibi görünmüyor. Görünüşe göre şu anda birkaç kene arka arkaya geldi ve bu da bu tür patlamalara neden oldu.

3 Uzman Danışmanın ortak bir kaynak için mücadele ettiği gerçeğine gözlerimizi kapatsak bile, bir başka izlemeye bakalım:

ProcessTicks: CopyTicksRange ( _Symbol ,OldTicks, COPY_TICKS_INFO ,LastTickParsed.time_msc)] = 1401285 mcs.

Sembolde sadece 1 danışman vardı. Hala bir buçuk saniye. Artık yalnız değildi, başka sembollerde başkaları vardı, ama çoklu kullanım gibi mi? Veya farklı semboller için keneler hala birbirini yavaşlatabilir mi?

Bu, temel Uzman Danışmanlar için temel işlevdir. Platform, algoritmik bir tüccar olarak konumlandırılmıştır. Aynı zamanda, temel işlevsellik güçlü soruları gündeme getiriyor. Lütfen buna tekrar bir göz atın. İyileştirme için yer olduğundan eminim. Veya burada önerildiği gibi, işlev çağrıldığından beri son onay işaretlerini alma fırsatı için çok minnettar olurum.

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

MT5 ve iş başında hız

fxsaber , 2021.03.01 07:28

Lütfen böyle bir özelliği düşünün.

 int SymbolInfoTicks( const string Symb, MqlTick &Ticks[] ); // Возвращает свежие тики (не более сотни), пришедшие с предыдущего вызова этой функции.


Boşluklar olmadan TAZE tik alma sorunu artık yalnızca CopyTicks* ile çözülmektedir. Bu, bu ortak görev için çok hantal bir mekanizmadır. Serçeler için bir top gibi.

Bu nedenle frenler, büyük önbellekler vb.

 

SymbolInfoTick ve CopyTicksRange çağrılarının sayısı en aza indirildi:

  • anlık görüntü SymbolInfoTick - her 100 µs'de bir defadan fazla çağrılmaz.
  • Yeni keneler için CopyTicksRange, yalnızca gerçekten de Market Watch'a yeni bir kene geldiğinde çağrılır.


Böyle bir yüke sahip terminal ve makine (sayfalama dosyası devre dışı).


Sonuç olarak, normal işlevlerin gecikmeleri (daha az çağrı vardı) hakkındaki mesajların sayısını önemli ölçüde azaltmak mümkün oldu.


50 dakika boyunca oturum açın:

 2021.03 . 05 19 : 31 : 45.429 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 154 mcs.
2021.03 . 05 19 : 32 : 58.939 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 161 mcs.
2021.03 . 05 19 : 33 : 01.583 :: SymbolInfoTick ( _Symbol ,Tick)] = 158 mcs.
2021.03 . 05 19 : 36 : 01.682 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 143 mcs.
2021.03 . 05 19 : 36 : 31.229 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 234 mcs.
2021.03 . 05 19 : 36 : 31.229 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 913 mcs.
2021.03 . 05 19 : 39 : 08.716 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 139 mcs.
2021.03 . 05 19 : 39 : 30.994 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 315 mcs.
2021.03 . 05 19 : 39 : 32.858 :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 114 mcs.
2021.03 . 05 19 : 40 : 41.437 :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 101 mcs.
2021.03 . 05 19 : 42 : 26.104 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 116 mcs.
2021.03 . 05 19 : 42 : 28.849 :: SymbolInfoTick ( _Symbol ,Tick)] = 109 mcs.
2021.03 . 05 19 : 43 : 10.977 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 481 mcs.
2021.03 . 05 19 : 43 : 53.945 :: SymbolInfoTick ( _Symbol ,Tick)] = 130 mcs.
2021.03 . 05 19 : 49 : 20.352 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 101 mcs.
2021.03 . 05 19 : 51 : 31.242 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 102 mcs.
2021.03 . 05 19 : 51 : 44.986 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 107 mcs.
2021.03 . 05 19 : 52 : 05.590 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 219 mcs.
2021.03 . 05 19 : 53 : 56.013 :: SymbolInfoTick ( _Symbol ,Tick)] = 236 mcs.
2021.03 . 05 19 : 55 : 41.453 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 105 mcs.
2021.03 . 05 19 : 55 : 47.109 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 148 mcs.
2021.03 . 05 19 : 55 : 47.110 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 265 mcs.
2021.03 . 05 19 : 59 : 26.011 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 186 mcs.
2021.03 . 05 20 : 00 : 01.569 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 117 mcs.
2021.03 . 05 20 : 01 : 19.704 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 109 mcs.
2021.03 . 05 20 : 02 : 07.285 :: SymbolInfoTick ( _Symbol ,Tick)] = 177 mcs.
2021.03 . 05 20 : 02 : 07.286 :: SymbolInfoTick ( _Symbol ,Tick)] = 198 mcs.
2021.03 . 05 20 : 02 : 07.286 :: SymbolInfoTick ( _Symbol ,Tick)] = 202 mcs.
2021.03 . 05 20 : 04 : 40.170 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 364 mcs.
2021.03 . 05 20 : 04 : 45.905 :: SymbolInfoTick ( _Symbol ,Tick)] = 143 mcs.
2021.03 . 05 20 : 04 : 45.906 :: SymbolInfoTick ( _Symbol ,Tick)] = 158 mcs.
2021.03 . 05 20 : 04 : 45.907 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 504 mcs.
2021.03 . 05 20 : 04 : 48.259 :: SymbolInfoTick ( _Symbol ,Tick)] = 104 mcs.
2021.03 . 05 20 : 04 : 54.727 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 104 mcs.
2021.03 . 05 20 : 05 : 39.642 :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 101 mcs.
2021.03 . 05 20 : 07 : 40.189 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 101 mcs.
2021.03 . 05 20 : 09 : 21.844 :: SymbolInfoTick ( _Symbol ,Tick)] = 115 mcs.
2021.03 . 05 20 : 09 : 32.422 :: SymbolInfoTick ( _Symbol ,Tick)] = 107 mcs.
2021.03 . 05 20 : 10 : 02.423 :: SymbolInfoTick ( _Symbol ,Tick)] = 128 mcs.
2021.03 . 05 20 : 15 : 48.838 :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 149 mcs.
2021.03 . 05 20 : 16 : 36.001 :: SymbolInfoTick ( _Symbol ,Tick)] = 105 mcs.
2021.03 . 05 20 : 17 : 51.499 :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 480 mcs.
2021.03 . 05 20 : 17 : 51.638 :: SymbolInfoTick ( _Symbol ,Tick)] = 342 mcs.
2021.03 . 05 20 : 17 : 52.802 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 429 mcs.
2021.03 . 05 20 : 17 : 53.340 :: SymbolInfoTick ( _Symbol ,Tick)] = 142 mcs.
2021.03 . 05 20 : 19 : 21.512 :: SymbolInfoTick ( _Symbol ,Tick)] = 122 mcs.
2021.03 . 05 20 : 20 : 35.836 :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 116 mcs.


Çok korkutucu görünmüyor. Aynı zamanda, ticaret işlemleri de yoktu. Onlarda olduğu gibi - Bakalım.


Not Seçilen parça, aynı anda üç danışmanın (farklı semboller) neredeyse aynı anda bir gecikme aldığını gösteriyor. Onlar. gecikme, Terminal için evrenseldir.

 
Slava :

Girişler Symbol(), _Symbol - NULL'a eşdeğer (burada sembol adı yerine NULL'a izin verilir)

Bu durumda, mevcut sembolün özellikleri önbelleğe alındığından, mevcut sembolün varlığı, Piyasa İzleme'deki mevcut sembolün varlığı ve mevcut sembolün özelliklerine gereksiz bir çağrı için gereksiz bir kontrol yapılmaz.

Yani, Symbol(), _Symbol veya NULL yerine normal bir dize parametresi belirtilirse, tam program kontrolleri gerçekleştirilir ve başka bir özellik sorgusu yapılır.

Lütfen tekrar açıklayın, çünkü sözlerinin forum üyelerinden farklı yorumları.

 

Bir danışman/grafik/sembol ile Terminalde.


 2021.03 . 05 23 : 02 : 02.860 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 189 mcs.
2021.03 . 05 23 : 02 : 24.152 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 339 mcs.
2021.03 . 05 23 : 02 : 53.540 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 915 mcs.
2021.03 . 05 23 : 05 : 35.325 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 223 mcs.
2021.03 . 05 23 : 05 : 41.398 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 245 mcs.
2021.03 . 05 23 : 05 : 44.585 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 376 mcs.
2021.03 . 05 23 : 06 : 35.210 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 173 mcs.
2021.03 . 05 23 : 07 : 38.298 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 290 mcs.
2021.03 . 05 23 : 08 : 50.342 :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,From)] = 102 mcs.
2021.03 . 05 23 : 14 : 58.216 :: SymbolInfoTick ( _Symbol ,Tick)] = 447 mcs.

15 dakika içinde böyle bir günlük. Hala fren camında gibi görünüyor. Bu durumda öyle.

 2021.03 . 05 23 : 49 : 20.792 Terminal        MetaTrader 5 x64 build 2815 started for MetaQuotes Software Corp.
2021.03 . 05 23 : 49 : 20.792 Terminal        Windows Server 2019 build 17763 , Intel Core i7- 7700 K  @ 4.20 GHz, 17 / 31 Gb memory, 3698 / 3725 Gb disk, IE 11 , RDP, UAC, GMT+ 2
 

Piyasa İncelemesinin neden frenlediğine dair açıklayıcı bir örnek.

İşlemci sütunundaki değerlere bakın (sağdan ikinci).

 
Terminal gecikmesi, Sunucu gecikmesine eklenir.

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

Göstergeler: Ping

fxsaber , 2021.03.12 10:56

Bu harika göstergeyi hatırladım.

Bu, sıfır pingli bir makineden bir resim. Terminalin dahili gecikmesinin ortalama olarak ~ 2 ms olduğu ortaya çıktı. 0-9 ms aralığında atlar.


Örneğin, sunucuya iki kene geldi: ilki, 10 ms sonra - ikincisi. Yani Terminalde, ikinci onay işaretini ilkinden 10 ms sonra değil, 10-19 ms sonra alabilirsiniz. Ortalama olarak, 12 ms sonra.

Piyasadan işlem yapıyorsanız (mevcut fiyattan piyasalar veya mevduatlar), o zaman ayak uydurmak özellikle zor olacaktır. Geliştiricilerin burada bir şeyi iyileştirip geliştiremeyeceğini söylemek zor.

Moskova borsasına baktım orda da durum benzer. Aslında, MT5 algo ile ticaret yaparken, ne yazık ki lezzetli almak için zamanınız olmadığından, yürütme kuyruğunun sonunda olmanız neredeyse garanti edilecektir.

Акцептирование SL/TP-ордеров
Акцептирование SL/TP-ордеров
  • 2020.11.24
  • www.mql5.com
В этой ветке пойдет речь об ордерах, которые создаются в результате срабатывания SL/TP-уровней открытых позиций...