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

 
Dmi3 :

Terminallerimde çıplak gözle gördüğüm bir tüccarım, onun hakkında şarkı söylüyorum. Bırakın fxsaber veya MQ modelindeki adamlar, bu tür işler için daha fazla bilgi ve beceriye sahipler.

Teorik olarak, elbette, evdeki dizüstü bilgisayarımdan bir danışman koyabilir ve davranışına bakabilirim.

Derin geçmiş istenirse sorunun sunucu tarafında olabileceğini düşündüm.

 
Aleksey Vyazmikin :

Derin geçmiş istenirse sorunun sunucu tarafında olabileceğini düşündüm.

Tüm Uzman Danışmanlardaki geçmiş, son 120 saniye için istenir. Günde 10.000'den fazla sipariş.

 
Dmi3 :

Tüm Uzman Danışmanlardaki geçmiş, son 120 saniye için istenir. Günde 10.000'den fazla sipariş.

O zaman, fikre göre, her şey hafızada olmalıdır.

 

Yaklaşık yüz bağımsız ticaret mantığıyla ticaret yapmanız gerekiyor. Aynı zamanda, bir düzineden fazla ticaret sembolü vardır.

Gecikmeler nedeniyle, tüm bunları tek bir eşzamansız Uzman Danışmana sığdırmak imkansızdır. Birkaç Uzman Danışman oluşturmanız ve bunları paralel olarak çalıştırmanız gerekir.

 
fxsaber :

Yaklaşık yüz bağımsız ticaret mantığıyla ticaret yapmanız gerekiyor. Aynı zamanda, bir düzineden fazla ticaret sembolü vardır.

Gecikmeler nedeniyle, tüm bunları tek bir eşzamansız Uzman Danışmana sığdırmak imkansızdır. Birkaç Uzman Danışman oluşturmanız ve bunları paralel olarak çalıştırmanız gerekir.

Ve sonra 100'den fazla danışmanın bir terminale doldurulamayacağı ve birkaç paralel terminal çalıştırmanız gerektiği ortaya çıktı. Ve daha sonra....

 
Dmi3 :

Ve sonra 100'den fazla danışmanın bir terminale doldurulamayacağı ve birkaç paralel terminal çalıştırmanız gerektiği ortaya çıktı. Ve daha sonra....

Gecikmeler giderilir kaldırılmaz, onu tek bir danışmana itmek mümkün olacaktır. Bu, VPS'yi büyük ölçüde boşaltacaktır.

 
OnTick'te, önceki keneden kenelerin geçmişini istiyorum.
 2020.08 . 17 21 : 26 : 45.729 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 26 : 47.848 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 26 : 47.848 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 26 : 49.959 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 26 : 53.135 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 26 : 54.199 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 6 ms.
2020.08 . 17 21 : 26 : 54.199 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 26 : 54.199 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 26 : 54.199 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 00.525 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 08.956 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 13.173 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 27.931 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 30.048 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 30.048 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 42.669 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.
2020.08 . 17 21 : 27 : 43.726 Alert : Time[NewTicks.mqh 208 : :: CopyTicksRange ( _Symbol ,Ticks, COPY_TICKS_INFO ,LastTime)] = 5 ms.

Çok kararlı sonuç.

 

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

Kitaplıklar: MT4Orders

fxsaber , 2020.08.18 08:49

Benzer bir sonuç, çıkış gecikmeleri > 30 ms olduğunda da görülebilir.

 2020.08 . 18 05 : 12 : 20.760 Alert : Time[MT4Orders.mqh 1746 : :: PositionGetTicket (Index)] = 45 ms.
2020.08 . 18 06 : 08 : 07.116 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 38 ms.
2020.08 . 18 06 : 44 : 57.080 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 59 ms.
2020.08 . 18 07 : 01 : 37.171 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 33 ms.
2020.08 . 18 07 : 04 : 19.996 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 34 ms.
2020.08 . 18 07 : 04 : 55.020 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 43 ms.
2020.08 . 18 07 : 30 : 07.414 Alert : Time[MT4Orders.mqh 1746 : :: PositionGetTicket (Index)] = 37 ms.
2020.08 . 18 07 : 38 : 31.913 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 40 ms.
2020.08 . 18 07 : 44 : 08.415 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 36 ms.
2020.08 . 18 07 : 45 : 22.918 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 38 ms.
2020.08 . 18 08 : 00 : 37.016 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 40 ms.
2020.08 . 18 08 : 01 : 36.007 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 33 ms.
2020.08 . 18 08 : 08 : 26.948 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 34 ms.
2020.08 . 18 08 : 18 : 41.664 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 33 ms.
2020.08 . 18 08 : 48 : 51.114 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 32 ms.
2020.08 . 18 09 : 12 : 33.762 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 49 ms.
2020.08 . 18 09 : 28 : 42.364 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 47 ms.
2020.08 . 18 09 : 28 : 42.364 Alert : Time[MT4Orders.mqh 1808 : :: PositionSelectByTicket (Ticket)] = 38 ms.
2020.08 . 18 09 : 30 : 30.665 Alert : Time[MT4Orders.mqh 1746 : :: PositionGetTicket (Index)] = 40 ms.
2020.08 . 18 09 : 33 : 50.114 Alert : Time[MT4Orders.mqh 1746 : :: PositionGetTicket (Index)] = 44 ms.
2020.08 . 18 09 : 38 : 41.204 Alert : Time[MT4Orders.mqh 1675 : :: PositionSelectByTicket (:: OrderGetInteger ( ORDER_TICKET ))] = 77 ms.

İşlem geçmişi olmayan iyi gecikmeler.

 
Hala bunun nasıl izleneceğini buldum.
 2020.08 . 18 11 : 14 : 05.072 MarketWatchTick:  time = 2020.08 . 18 11 : 14 : 00.674
2020.08 . 18 11 : 14 : 05.195 MarketWatchTick:  time = 2020.08 . 18 11 : 14 : 05.929

Solda yerel saat, sağda sembolün son alıntısının zamanı .

İki satırın (OnTick'te yapılan) çıktıları arasında 100 ms'lik bir süre geçtiği görülebilir. Aynı zamanda, sembol zamanı beş saniye değişti!


Bu, beş saniye boyunca sembol fiyatlarının alınmasında bir gecikme olduğu anlamına gelir. Aynı zamanda (burada yayınlamadım, ancak kendi günlüğüme kaydettim), gerçek zamanlı olarak CopyTicksRange bu iki olay arasında 35 onay verdi.


Komşu OnTick aramaları arasında çok sayıda tik geldiğini fark ettiğimde tesadüfen fark ettim.

 

Geliştiricilerden, bilgisayarın HFT için hazır olup olmadığını kontrol etmek için eylem dizilerini önermelerini istiyorum.

Aynı LCH için uygun makineyi hazırlamanız gerekir. Bu konuda resmi tavsiyelerde bulunmak (bazı testleri geçmek) muhtemelen doğru olacaktır.