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

 
A100 :
Doğal olarak, hiçbir Expert Advisors\indicators\scripts çalışmıyor - yalnızca manuel derlemeler. Belirtilen gecikme, herhangi bir ortalama modern 64 bit tablette yeniden üretilir. i7'de bir bilgisayarınız varsa, böyle bir gecikmeyle karşılaşmadığımı itiraf ediyorum

apk veya ekzeshnik yavaşlıyor mu?

 
Bugün izin günü. Market Watch'ta sadece bir sembol. EA, OnTimer'ı saniyede bir kez yürütür. Bu günlüğü buldum.
 2020.09 . 06 00 : 37 : 09.187          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 8 ms.
2020.09 . 06 03 : 57 : 17.902          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 1731 ms.
2020.09 . 06 03 : 57 : 18.463          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 2292 ms.
2020.09 . 06 03 : 59 : 49.233          Alert : Time[MT4Orders.mqh 1788 : :: PositionGetTicket (Index)] = 2 ms .
2020.09 . 06 04 : 35 : 54.170          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 04 : 55 : 34.486          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 05 : 10 : 54.387          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 211 ms.
2020.09 . 06 05 : 10 : 54.387          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 895 ms.
2020.09 . 06 05 : 23 : 20.484          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 05 : 24 : 41.484          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 05 : 47 : 41.492          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 05 : 50 : 41.172          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 05 : 55 : 45.176          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 05 : 57 : 32.169          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 06 : 17 : 11.177          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 06 : 28 : 03.184          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 06 : 30 : 22.482          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 06 : 48 : 07.171          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 07 : 45 : 12.490          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 08 : 23 : 24.172          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 08 : 24 : 26.171          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 08 : 37 : 57.183          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 09 : 08 : 37.180          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 09 : 12 : 58.497          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 09 : 57 : 20.486          Alert : Ping = 10000.000
2020.09 . 06 09 : 57 : 21.680          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 195 ms.
2020.09 . 06 09 : 57 : 54.171          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 10 : 47 : 56.171          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 11 : 06 : 21.175          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 11 : 11 : 50.208          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 1023 ms.
2020.09 . 06 11 : 11 : 50.537          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 1049 ms.
2020.09 . 06 11 : 11 : 51.502          Alert : Ping = 10000.000
2020.09 . 06 11 : 11 : 52.370          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 187 ms.
2020.09 . 06 11 : 19 : 41.502          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 11 : 38 : 00.176          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 13 : 49 : 02.493          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 14 : 03 : 28.171          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 14 : 45 : 05.175          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 16 : 43 : 51.196          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 17 : 00 : 17.494          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 17 : 40 : 02.486          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 17 : 54 : 00.180          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.09 . 06 18 : 16 : 47.173          Alert : Time[NewTicks.mqh 33 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.

Diğer Terminalde, Optimizasyon, olası sekiz yerel Aracıdan altısında paralel olarak çalışıyor.

Bunlar ağ kesintileriyse, Piyasa İzleme'den son tıklamayı almayı ve tıklama geçmişinden son tıklamayı almayı neden etkiliyor?


Aynı segmentteki Terminalin ZY Günlüğü.

 2020.09 . 06 01 : 48 : 38.338 Network '' : scanning network for access points
2020.09 . 06 01 : 48 : 40.195 Network '' : scanning network finished
2020.09 . 06 03 : 57 : 04.504 Network '' : connection to RannForex-Server lost
2020.09 . 06 03 : 57 : 15.249 Network '' : authorized on RannForex-Server through as .eu 6 (ping: 56.41 ms, build 2560 )
2020.09 . 06 03 : 57 : 15.249 Network '' : previous successful authorization performed from xx.xx.xx.xx on 2020.09 . 05 21 : 59 : 42
2020.09 . 06 03 : 57 : 15.678 Network '' : terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09 . 06 03 : 57 : 15.678 Network '' : trading has been enabled - hedging mode
2020.09 . 06 03 : 57 : 17.500 Network '' : scanning network for access points
2020.09 . 06 03 : 57 : 20.416 Network '' : scanning network finished
2020.09 . 06 05 : 10 : 52.296 Network '' : connection to RannForex-Server lost
2020.09 . 06 05 : 10 : 53.033 Network '' : authorized on RannForex-Server through as .eu 6 (ping: 56.31 ms, build 2560 )
2020.09 . 06 05 : 10 : 53.033 Network '' : previous successful authorization performed from xx.xx.xx.xx on 2020.09 . 06 05 : 10 : 59
2020.09 . 06 05 : 10 : 53.299 Network '' : terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09 . 06 05 : 10 : 53.299 Network '' : trading has been enabled - hedging mode
2020.09 . 06 09 : 57 : 18.310 Network '' : scanning network for access points
2020.09 . 06 09 : 57 : 20.396 Network '' : scanning network finished
2020.09 . 06 09 : 57 : 20.396 Network '' : auto connecting to a better access point with 93 % quality (previous: 77 %)
2020.09 . 06 09 : 57 : 20.397 Network '' : connection to RannForex-Server lost
2020.09 . 06 09 : 57 : 21.151 Network '' : authorized on RannForex-Server through as .eu 5 (ping: 41.60 ms, build 2560 )
2020.09 . 06 09 : 57 : 21.151 Network '' : previous successful authorization performed from 
xx.xx.xx.xx  on 2020.09 . 06 05 : 10 : 59
2020.09 . 06 09 : 57 : 21.208 Network '' : terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09 . 06 09 : 57 : 21.208 Network '' : trading has been enabled - hedging mode
2020.09 . 06 11 : 08 : 16.952 Network '' : connection to RannForex-Server lost
2020.09 . 06 11 : 11 : 48.892 Network '' : authorized on RannForex-Server
2020.09 . 06 11 : 11 : 48.892 Network '' : previous successful authorization performed from xx.xx.xx.xx on 2020.09 . 06 11 : 11 : 55
2020.09 . 06 11 : 11 : 48.970 Network '' : terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09 . 06 11 : 11 : 48.970 Network '' : trading has been enabled - hedging mode
2020.09 . 06 11 : 11 : 49.152 Network '' : scanning network for access points
2020.09 . 06 11 : 11 : 51.319 Network '' : scanning network finished
2020.09 . 06 11 : 11 : 51.319 Network '' : auto connecting to a better access point with 92 % quality (previous: 91 %)
2020.09 . 06 11 : 11 : 51.320 Network '' : connection to RannForex-Server lost
2020.09 . 06 11 : 11 : 52.035 Network '' : authorized on RannForex-Server through as .eu 5 (ping: 43.31 ms, build 2560 )
2020.09 . 06 11 : 11 : 52.035 Network '' : previous successful authorization performed from xx.xx.xx.xx on 2020.09 . 06 11 : 11 : 55
2020.09 . 06 11 : 11 : 52.088 Network '' : terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09 . 06 11 : 11 : 52.088 Network '' : trading has been enabled - hedging mode
2020.09 . 06 17 : 11 : 49.928 Network '' : scanning network for access points
2020.09 . 06 17 : 11 : 52.112 Network '' : scanning network finished
 
fxsaber :

Bunlar ağ kesintileriyse, Piyasa İzleme'den son tıklamayı almayı ve tıklama geçmişinden son tıklamayı almayı neden etkiliyor?

Dikkatli bir analiz, CopyTicks'in ağ kesintileri sırasında yavaşladığını gösterdi.

 2020.09 . 06 21 : 22 : 24.105          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 1619 ms.
2020.09 . 06 21 : 22 : 24.515          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 2347 ms.
2020.09 . 06 21 : 22 : 53.814          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 274 ms.
2020.09 . 06 21 : 22 : 53.814          Alert : Time[NewTicks.mqh 43 : :: CopyTicks ( _Symbol ,Tick, COPY_TICKS_ALL , 0 , 1 )] = 686 ms.

2020.09 . 06 21 : 20 : 59.301 Network connection to RannForex-Server lost
2020.09 . 06 21 : 22 : 21.043 Network authorized on RannForex-Server
2020.09 . 06 21 : 22 : 21.043 Network previous successful authorization performed from xx.xx.xx.xx on 2020.09 . 06 11 : 11 : 59
2020.09 . 06 21 : 22 : 21.508 Network terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09 . 06 21 : 22 : 21.508 Network trading has been enabled - hedging mode
2020.09 . 06 21 : 22 : 21.915 Network scanning network for access points
2020.09 . 06 21 : 22 : 28.819 Network scanning network finished
2020.09 . 06 21 : 22 : 45.523 Network connection to RannForex-Server lost
2020.09 . 06 21 : 22 : 52.951 Network authorized on RannForex-Server through as .eu 6 (ping: 56.55 ms, build 2560 )
2020.09 . 06 21 : 22 : 52.951 Network previous successful authorization performed from xx.xx.xx.xx on 2020.09 . 06 21 : 22 : 28
2020.09 . 06 21 : 22 : 53.024 Network terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09 . 06 21 : 22 : 53.024 Network trading has been enabled - hedging mode
 
fxsaber :


 if ( OrderSend (Request, Result))
    _B2( HistorySelect ( 0 , INT_MAX )); // В каком месте самострел?

Her şeyden önce, bilginize

" Başarılı bir temel yapı kontrolü (kontrol işaretçileri) durumunda, true döndürülür - bu, bir ticari işlemin başarılı bir şekilde yürütüldüğünü göstermez . İşlev yürütme sonucunun daha ayrıntılı bir açıklamasını almak için, alanlarını analiz etmelisiniz. sonuç yapısı . "


İkinci olarak sizin mantığınıza göre bir sipariş açılırsa onu siparişler listesine eklemiyorsunuz, önbelleği tamamen geçersiz mi kılıyorsunuz?)

Burada, SOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOH kodunuzun dışında kalabilirsiniz, böylece HistorySelect çalışma zamanı soruları için son yer olur) Önbelleğe almayı kullanın. Örneğin günde bir kez geçersiz kılabilirsiniz, ancak bu, Uzman Danışmanınızı önemli ölçüde hızlandıracaktır.

 
Andrey Pogoreltsev :

birinci olarak

kodu doğru anlamak için ya çalıştırmanız ya da sayfadan çok iyi okumanız gerekir.

İkinci olarak sizin mantığınıza göre bir sipariş açılırsa onu siparişler listesine eklemiyorsunuz, önbelleği tamamen geçersiz mi kılıyorsunuz?)

Sipariş listesi değişmez. Kodu oku .

 
fxsaber :

kodu doğru anlamak için ya çalıştırmanız ya da sayfadan çok iyi okumanız gerekir.

Sipariş listesi değişmez. Kodu oku .

Tam burada

 if ( OrderSend (Request, Result))
    _B2( HistorySelect ( 0 , INT_MAX )); // В каком месте самострел?

Bu mantığı görüyorum:

  1. Takas talebi sunucuya başarıyla gönderilirse
  2. Tüm hikayeyi seçmek

Ancak istek sunucuda zaten reddedilmiş olabilir - kontrol olmadığı için bu koddaki hiçbir şey bunu göstermez. Tarih seçmenin ne anlamı var? Orada ne görmek istiyoruz?

Burada, bu iki kod satırında kişisel olarak noktayı göremiyorum. Bir hikaye seçmeden önce onu değiştirmek için bir çek olsaydı görürdüm. Belki de, elbette, bu iki satır, sorunun tam resminin anlaşılmasını sağlamıyor. Ancak sunucuya başarılı bir şekilde istek göndermek ve tüm geçmişi almak arasındaki ilişki benim için net değil. İsteği gönderdikten sonra sunucu tarafından başarılı bir emir verilmesi bile piyasa emirleri ve pozisyonları listesinde değişikliğe yol açar. Peki ya tarihi liste?

 
Artyom Trishkin :

Tam burada

Bu mantığı görüyorum:

  1. Takas talebi sunucuya başarıyla gönderilirse
  2. Tüm hikayeyi seçmek

Ancak istek sunucuda zaten reddedilmiş olabilir - kontrol olmadığı için bu koddaki hiçbir şey bunu göstermez. Tarih seçmenin ne anlamı var? Orada ne görmek istiyoruz?

Burada, bu iki kod satırında kişisel olarak noktayı göremiyorum. Bir hikaye seçmeden önce onu değiştirmek için bir çek olsaydı görürdüm. Belki de, elbette, bu iki satır, sorunun tam resminin anlaşılmasını sağlamıyor. Ancak sunucuya başarılı bir şekilde istek göndermek ve tüm geçmişi almak arasındaki ilişki benim için net değil. İsteği gönderdikten sonra sunucu tarafından başarılı bir emir verilmesi bile piyasa emirleri ve pozisyonları listesinde değişikliğe yol açar. Peki ya tarihi liste?

if - derleyici uyarısından kurtulmak için . Ve başka hiçbir şey için.

Bu konu, Uzman Danışmanların nasıl yazılacağını öğrenmek için değildir. Ve Terminalin zayıf yönlerini ortadan kaldırmak için. Geliştiricilerin anlamaları için basit, özlü ve tekrarlanabilir kodlara ihtiyaçları vardır. Kendim için böyle bir şey yazmıyorum. Gerçek şu ki, savaş danışmanı frenleri kaydeder. Kazmaya başladım, biri (elleriyle bile) konumu değiştirdiğinde frenlerin meydana geldiğini anlıyorum. Bu, geçmiş önbelleğini temizler, ancak tarih elbette değişmez.


Kod, sorunu mükemmel bir şekilde gösterir. Oynatma kodunu hiçbir zaman gereksiz kontrollerle kirletmemelisiniz. Görevi sorunu açıklığa kavuşturmaktır. Ve düzelttiklerinde - şimdi her şeyin doğru çalıştığını kanıtlamak için.

 
fxsaber :

kodu doğru anlamak için ya çalıştırmanız ya da sayfadan çok iyi okumanız gerekir.

Sipariş listesi değişmez. Kodu oku .

Düşünün ki ben çok iyi bir dedektifim :)


Bu kodu bir yerden aldınız ve orada hala yürütülmekte olan yeni bir pozisyon yaratıyorsunuz, değil mi?

Aksi takdirde, kodunuzun tüm amacı, mevcut konumun TP'sini güncellemek ve bunun uğruna önbelleği geçersiz kılmaktır, ki bu da çok garip.

Bu iki durumda da, önbelleğe almayı optimize etmek için hiçbir mantık kullanılmaz. Ayrıca, çözümünüz ölçeklenebilir değil, çünkü Tarihin büyümesiyle birlikte frenlerde bir artışa yol açar.

 
fxsaber :

Kod, sorunu mükemmel bir şekilde gösterir. Oynatma kodunu hiçbir zaman gereksiz kontrollerle kirletmemelisiniz. Görevi sorunu açıklığa kavuşturmaktır. Ve düzelttiklerinde - şimdi her şeyin doğru çalıştığını kanıtlamak için.

Yani sizin mantığınıza göre bu kod

 int v = 0.0 ;

for ( int i = 0 ; i < 1000000 ; i++) {
    v = i;
}

std::cout << "The last number: " << v << std::endl;

işlemcinin frenlerini gösteriyor mu?

 
Andrey Pogoreltsev :

Bu kodu bir yerden aldınız ve orada hala yürütülmekte olan yeni bir pozisyon yaratıyorsunuz, değil mi?

Retorik soru: Burada neyi başarmaya çalışıyorsunuz?
Andrey Pogoreltsev :

Yani sizin mantığınıza göre bu kod

işlemcinin frenlerini gösteriyor mu?

Sana artık cevap vermiyorum çünkü. saçmalık taşıyorsun