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

 

Orada olup olmadığını bilmiyorum.

Kutu ağaçlarına ve hashmaplere gerçekten ihtiyacımız var. Çoklu para birimi yazılımı için hashmap daha fazla test için çok yavaştır.

C++17 :)

 

Beta build 2577'yi deneyin lütfen.

Seçimlerle hikayeler geliştirildi ve onları kökten yeniden yapmaya devam edeceğiz.

 
Renat Fatkhullin :

Beta build 2577'yi deneyin lütfen.

Seçimlerle hikayeler geliştirildi ve onları kökten yeniden yapmaya devam edeceğiz.

Daha da kötüye gidiyor gibi görünüyor:

 2020.08 . 19 03 : 41 : 43.173          Time[MT4Orders.mqh 434 : :: HistorySelect ( this .LastTime, D'31.12.3000 23:59:59' )] = 11 ms.
2020.08 . 19 03 : 41 : 43.174          Time[MT4Orders.mqh 622 : this .RefreshHistory()] = 12 ms.

2573'te bir önceki gün için böyle bir rakam yoktu.

 
Andrey Pogoreltsev :

Orada olup olmadığını bilmiyorum.

Kutu ağaçlarına ve hashmaplere gerçekten ihtiyacımız var. Çoklu para birimi yazılımı için hashmap daha fazla test için çok yavaştır.

C++17 :)

Teslimattan gelen hashmap, tüm uygulamaların en hızlısı, kontrol ettim. Burada CB'de iki seçenek daha var ve birer birer bir makale var, bunlar bir büyüklük sırası daha yavaş. Ve ne tür bir hashmap'e ihtiyacınız var, yazılım dışı? FPGA'da gerçekten donanım mı istiyorsunuz? )) Nasıl beğendin Elon Musk!

Artıların nesi var? MQL5, 64-bit DLL yüklemesini desteklemeyi bıraktı mı? Acilen Renat'a böyle bir rezalet hakkında yazın! C++20'yi bile destekliyorum! Sadece gerçekten ustalaşmak için kalır))

------------------

Microsoft Visual Studio Enterprise 2019 Önizlemesi

Sürüm 16.7.0 Önizleme 4.0

Yüklü sürüm: Kurumsal

Microsoft Visual C++ 2019

 
Andrey Khatimlianskii :

Daha da kötüye gidiyor gibi görünüyor:

2573'te bir önceki gün için böyle bir rakam yoktu.

Görünüşe göre bunlar ilk soğuk isteklerdi. O zamandan beri, baskı yok.

 
Renat Fatkhullin :

Beta build 2577'yi deneyin lütfen.

Seçimlerle hikayeler geliştirildi ve onları kökten yeniden yapmaya devam edeceğiz.

 2020.08 . 19 09 : 30 : 06.512 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 17 : CopyTicks (Symb,Ticks, COPY_TICKS_ALL , 0 , 1 )] = 1 ms.
2020.08 . 19 09 : 30 : 08.035 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 4 ms.
2020.08 . 19 09 : 30 : 08.038 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 13 : SymbolInfoTick (Symb,Tick)] = 7 ms.
2020.08 . 19 09 : 30 : 08.042 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 13 : SymbolInfoTick (Symb,Tick)] = 10 ms.
2020.08 . 19 09 : 30 : 08.044 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 74 : SymbolsTotal ( true )] = 13 ms.
2020.08 . 19 09 : 30 : 08.046 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 39 : SymbolInfoDouble (Symb, SYMBOL_ASK )] = 4 ms.
2020.08 . 19 09 : 30 : 08.046 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 7 ms.
2020.08 . 19 09 : 30 : 08.047 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 75 : SymbolName ( 0 , true )] = 3 ms.
2020.08 . 19 09 : 30 : 08.048 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 2 ms.
2020.08 . 19 09 : 30 : 08.052 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 13 : SymbolInfoTick (Symb,Tick)] = 2 ms.
2020.08 . 19 09 : 30 : 08.053 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 41 : SymbolInfoDouble (Symb, SYMBOL_POINT )] = 5 ms.
2020.08 . 19 09 : 30 : 08.055 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 3 ms.
2020.08 . 19 09 : 30 : 08.060 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 42 : SymbolInfoInteger (Symb, SYMBOL_DIGITS )] = 5 ms.
2020.08 . 19 09 : 30 : 08.071 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 25 ms.
2020.08 . 19 09 : 30 : 24.489 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 74 : SymbolsTotal ( true )] = 1 ms.
2020.08 . 19 09 : 30 : 25.857 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 30 : 26.092 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 30 : 26.119 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 30 : 29.279 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 17 : CopyTicks (Symb,Ticks, COPY_TICKS_ALL , 0 , 1 )] = 1 ms.
2020.08 . 19 09 : 30 : 31.931 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 42 : SymbolInfoInteger (Symb, SYMBOL_DIGITS )] = 2 ms.
2020.08 . 19 09 : 30 : 31.931 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 1 ms.
2020.08 . 19 09 : 30 : 33.402 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 34 : HistoryOrderSelect ( 0 )] = 7 ms.
2020.08 . 19 09 : 30 : 35.686 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 74 : SymbolsTotal ( true )] = 2 ms.
2020.08 . 19 09 : 30 : 37.810 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 39 : SymbolInfoDouble (Symb, SYMBOL_ASK )] = 1 ms.
2020.08 . 19 09 : 30 : 52.415 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 3 ms.
2020.08 . 19 09 : 31 : 10.903 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 31 : 11.414 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 5 ms.
2020.08 . 19 09 : 31 : 11.414 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 39 : SymbolInfoDouble (Symb, SYMBOL_ASK )] = 9 ms.
2020.08 . 19 09 : 31 : 32.694 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 42 : SymbolInfoInteger (Symb, SYMBOL_DIGITS )] = 2 ms.
2020.08 . 19 09 : 31 : 51.245 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 31 : 53.989 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 17 : CopyTicks (Symb,Ticks, COPY_TICKS_ALL , 0 , 1 )] = 2 ms.
2020.08 . 19 09 : 32 : 11.871 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 32 : 20.310 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 42 : SymbolInfoInteger (Symb, SYMBOL_DIGITS )] = 3 ms.
2020.08 . 19 09 : 32 : 47.513 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 3 ms.
2020.08 . 19 09 : 32 : 49.367 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 32 : 56.358 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 33 : 05.424 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 75 : SymbolName ( 0 , true )] = 2 ms.
2020.08 . 19 09 : 33 : 16.537 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 5 ms.
2020.08 . 19 09 : 33 : 16.551 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 13 ms.
2020.08 . 19 09 : 33 : 47.303 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 7 ms.
2020.08 . 19 09 : 33 : 50.587 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 19 09 : 33 : 56.181 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 41 : SymbolInfoDouble (Symb, SYMBOL_POINT )] = 1 ms.
2020.08 . 19 09 : 33 : 59.244 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 74 : SymbolsTotal ( true )] = 1 ms.
2020.08 . 19 09 : 34 : 03.255 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 41 : SymbolInfoDouble (Symb, SYMBOL_POINT )] = 2 ms.
2020.08 . 19 09 : 34 : 47.388 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 28 : HistoryDealSelect ( 0 )] = 1 ms.
2020.08 . 19 09 : 34 : 47.498 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 35 : 06.001 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 74 : SymbolsTotal ( true )] = 3 ms.
2020.08 . 19 09 : 35 : 06.005 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 75 : SymbolName ( 0 , true )] = 1 ms.
2020.08 . 19 09 : 35 : 06.017 Test6 (EURGBP,M1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 35 : 06.022 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 42 : SymbolInfoInteger (Symb, SYMBOL_DIGITS )] = 3 ms.
2020.08 . 19 09 : 35 : 06.046 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 28 : HistoryDealSelect ( 0 )] = 12 ms.
2020.08 . 19 09 : 35 : 29.014 Test6 (GBPNZD,H1)       Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 19 09 : 36 : 30.289 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 1 ms.
2020.08 . 19 09 : 36 : 55.946 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 74 : SymbolsTotal ( true )] = 2 ms.
2020.08 . 19 09 : 36 : 55.950 Test6 (EURNZD,H1)       Alert : Time[Test6.mq5 39 : SymbolInfoDouble (Symb, SYMBOL_ASK )] = 3 ms.

Çok daha iyi oldu. Henüz savaşta test etmedim.


Tehdit Savaş versiyonunun günlüklerine göre, hala düzeltilmesi gereken çok şey olduğu açık ...

 
Alexey Volchanskiy :

Teslimattan gelen hashmap, tüm uygulamaların en hızlısı, kontrol ettim. Burada CB'de iki seçenek daha var ve birer birer bir makale var, bunlar bir büyüklük sırası daha yavaş. Ve ne tür bir hashmap'e ihtiyacınız var, yazılım dışı? FPGA'da gerçekten donanım mı istiyorsunuz? )) Nasıl beğendin Elon Musk!

Bu, yürütülebilir mql5 dilinde uygulama olmadan std:: anlamına gelir, çünkü artı taraftaki yerel uygulamadan önemli ölçüde daha yavaştır.


Artıların nesi var? MQL5, 64-bit DLL yüklemesini desteklemeyi durdurdu mu? Acilen Renat'a böyle bir rezalet hakkında yazın! C++20'yi bile destekliyorum! Sadece gerçekten ustalaşmak için kalır))

Yerel DLL seçeneği caziptir, ancak birçok dezavantajı vardır:

  1. Strateji test cihazı tarafından desteklenmiyor
  2. Aynı mağazada kıpırdamayın
  3. Tüm kullanıcılar kendi DLL'leriyle bir danışman çalıştırmayı sevmez
  4. Anladığım kadarıyla (yanlışsa doğru) - DLL her aramada yükleniyor/boşaltılıyor
MQL5'in kendisi bir C++ analoğudur, sadece C99, yani bahsettiğimiz şey bu.


not. Test cihazında hala DLL kullanabilirsiniz, robotu kütüphaneye aktarmaya çalışacağım - belki testleri geçmek ve genel olarak çalışmak daha hızlı olacaktır

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
b2579.
Dosyalar:
2579_lags.txt  653 kb
 
fxsaber :
OnTick'te, önceki keneden kenelerin geçmişini istiyorum.

Gecikme konusuyla pek ilgili değil, ama yine de soracağım. Neden tarih? Keneler atlanabilir mi? MT4 bunu uyguladı ama MT5 böyle günah işlememeli, değil mi?

 
traveller00 :

Gecikme konusuyla pek ilgili değil, ama yine de soracağım. Neden tarih? Keneler atlanabilir mi? MT4 bunu uyguladı ama MT5 böyle günah işlememeli, değil mi?

NewTick olayı , yeni teklifler geldiğinde oluşturulur ve ekli Uzman Danışmanların OnTick() işlevi tarafından işlenir. Yeni bir fiyat teklifi alındığında, önceki teklifte başlatılan OnTick işlevi yürütülürse, ilgili olay Expert Advisor'ın olay kuyruğuna konmayacağından, gelen teklif Expert Advisor tarafından yok sayılır.

https://www.mql5.com/ru/docs/runtime/event_fire#newtick

Neden: