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

 
fxsaber :

hafta sonları hikayeyi değiştirmek imkansızdır, bu yüzden kontrol etmeyin.

Belki. Yani hafta sonu bir sorun vardı.

 // Демонстрация лагов HistorySelect при удалении нескольких ордеров.
#property script_show_inputs

input int inAmount = 5 ; // Количество ордеров

#include <fxsaber\Benchmark.mqh> // https://c.mql5.com/3/332/Benchmark.mqh
#define _B2(A) _B(A, 10 )

// true - ордер есть в истории, false - иначе.
bool HistorySelectOrder( const ulong Ticket )
{
   return (( HistoryOrderGetInteger (Ticket, ORDER_TICKET ) == Ticket) ||
         ( _B2( HistorySelect ( 0 , INT_MAX ) ) && ( HistoryOrderGetInteger (Ticket, ORDER_TICKET ) == Ticket)));
}

void OnStart ()
{
   HistorySelect ( 0 , INT_MAX ); // Создали исторический кеш.
        
   MqlTradeRequest Request = { 0 };
   MqlTradeResult Result;
                        
   // Выставляем ордера
  Request.action = TRADE_ACTION_PENDING ;
  Request.symbol = _Symbol ;
  Request.volume = 0.01 ;
  Request.price = SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) - 1000 * _Point ;
  Request.type = ORDER_TYPE_BUY_LIMIT ;
        
   for ( int i = 0 ; i < inAmount; i++)
     if (! OrderSend (Request, Result) || (Result.retcode != TRADE_RETCODE_DONE ))
       Print ( "Good!" );
            
   // Удаляем ордера
  Request.action = TRADE_ACTION_REMOVE ;

   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
  {
    Request.order = OrderGetTicket (i);

     if ( OrderSend (Request, Result) && (Result.retcode == TRADE_RETCODE_DONE ) &&
        !HistorySelectOrder(Request.order)) // Проверяем наличие удаленного ордера в истории.
       Print ( "OrderSend BUG!" );
  }
}


Sonuç.

 2020.09 . 27 15 : 46 : 11.940 Alert : Time[Test6.mq5 523 : HistorySelect ( 0 , INT_MAX )] = 39 mсs.
2020.09 . 27 15 : 46 : 11.988 Alert : Time[Test6.mq5 523 : HistorySelect ( 0 , INT_MAX )] = 253 mсs.
2020.09 . 27 15 : 46 : 12.034 Alert : Time[Test6.mq5 523 : HistorySelect ( 0 , INT_MAX )] = 190 mсs.
2020.09 . 27 15 : 46 : 12.083 Alert : Time[Test6.mq5 523 : HistorySelect ( 0 , INT_MAX )] = 218 mсs.
2020.09 . 27 15 : 46 : 12.130 Alert : Time[Test6.mq5 523 : HistorySelect ( 0 , INT_MAX )] = 250 mсs.

İkinci sıra silindikten sonra gecikmeler (birkaç milisaniyeye kadar olabilir).

 
Renat Fatkhullin :

Mikrosaniyeye geçin. Milisaniye artık uygun değil.

MT5 sunucusu neden bekleyen emirleri 100-200 milisaniye içinde yürütüyor? (A'daki tanınmış bir komisyoncudan)

 
fxsaber :

Belki. Yani hafta sonu bir sorun vardı.


Sonuç.

İkinci sıra silindikten sonra gecikmeler (birkaç milisaniyeye kadar olabilir).

Siparişlerin silinmesi, seçilen geçmişin önbelleğinin tamamen geçersiz kılınmasına yol açar.

Normal modda, geçmiş örnekleme hızı onlarca mikrosaniyeye çıkarıldı.

 
secret :

MT5 sunucusu neden bekleyen siparişleri 100-200 milisaniye içinde yürütüyor? (A'daki tanınmış bir komisyoncudan)

Gerçekleştir veya kabul et?

N işlemi hakkında ayrıntılar olmadan tartışmak imkansızdır (böylece tüm resmi görebilirsiniz ve ping'ler dahil yırtık tek bir sipariş değil).

 
Renat Fatkhullin :

Siparişlerin silinmesi, seçilen geçmişin önbelleğinin tamamen geçersiz kılınmasına yol açar.

İlk kaldırma iyi gider. İkinci sorundan. Bu sakatlığın sebebi nedir?

 
fxsaber :

Forumda arama yapmalısınız. Geçmişe Genel erişimin Test Cihazındaki normal mekanizmadan nasıl daha iyi performans gösterdiğini gösterdiğimi hatırlıyorum.

İşte buradaydı.

Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
  • 2017.12.08
  • www.mql5.com
С 6 декабря 2017 года в стандартную поставку MetaTrader 5 стали входить так называемые Generic-классы, реализующие эффективные алгоритмы для хранен...
 
Renat Fatkhullin :

Gerçekleştir veya kabul et?

N işlemi hakkında ayrıntılar olmadan tartışmak imkansızdır (böylece tüm resmi görebilirsiniz ve ping'ler dahil yırtık tek bir sipariş değil).

gerçekleştirir.

Fiyat bir tıklamada bekleyen bir Limit emrine dokunur ve geri dönerse ve bu işaret 100-200 ms'den az sürer. Vakaların yaklaşık %30-50'sinde yürütme kayma ile gerçekleşir. Onlar. kene fiyatında, emrin yerine getirilmesi için zaman yoktur.

Aracının kene arşivine göre tik süresine bakıyorum, yani ping'lerin bununla hiçbir ilgisi yok.

Ben de artan sunucu yüküne inanmıyorum çünkü. Sipariş numaralarına bakılırsa, bu anlarda çok az insan ticaret yapıyor.

Likidite eksikliğinden kaynaklanan kaymanın da bununla hiçbir ilgisi yoktur. Çünkü yalnızca kısa kenelerde görünür. Evet, çok küçük.

Şimdiye kadar, komisyoncu tarafından yürütmede yapay bir yavaşlama olduğunu varsayıyorum.

Birkaç işlem hakkında istatistik toplamak zordur. Ama soruyu cevaplamaya yardımcı olacaksa yapabilirsin.

 
secret :

gerçekleştirir.

Fiyat bir tıklamada bekleyen bir Limit emrine dokunur ve geri dönerse ve bu işaret 100-200 ms'den az sürer. Vakaların yaklaşık %30-50'sinde yürütme kayma ile gerçekleşir. Onlar. kene fiyatında, emrin yerine getirilmesi için zaman yoktur.

Aracının kene arşivine göre tik süresine bakıyorum, yani ping'lerin bununla hiçbir ilgisi yok.

Ben de artan sunucu yüküne inanmıyorum çünkü. Sipariş numaralarına bakılırsa, bu anlarda çok az insan ticaret yapıyor.

Likidite eksikliğinden kaynaklanan kaymanın da bununla hiçbir ilgisi yoktur. Çünkü yalnızca kısa kenelerde görünür. Evet, çok küçük.

Şimdiye kadar, komisyoncu tarafından yürütmede yapay bir yavaşlama olduğunu varsayıyorum.

Birkaç işlem hakkında istatistik toplamak zordur. Ama soruyu cevaplamaya yardımcı olacaksa yapabilirsin.

Ayrıntılı olarak anlamak gerekir, ancak forex ise, büyük olasılıkla bir sonraki kene üzerinde bir anlaşma.

Günlüklere ve bir onay grafiği tablosuna ihtiyacımız var.
 
secret :

Fiyat bir tıklamada bekleyen bir Limit emrine dokunur ve geri dönerse ve bu işaret 100-200 ms'den az sürer. Vakaların yaklaşık %30-50'sinde yürütme kayma ile gerçekleşir. Onlar. kene fiyatında, emrin yerine getirilmesi için zaman yoktur.

MT5 burada çalışmıyor. Demo hesaplar mükemmel bir şekilde yürütülür.
 

Zadol Anlık görüntülerde hata ayıklamaktan bıktınız. Sonunda bunu mükemmel bir şekilde yaptı. Bir danışman - barış ve sessizlik. İki harika. 20 - felaket: CPU %100'ün altında. HistorySelect , birçok milisaniye boyunca gecikiyor.

Görünüşe göre MT5, çok sayıda robotun eşzamanlı çalışması için tasarlanmamıştır.

Neden: