Hatalar, hatalar, sorular - sayfa 2904

 
suncrypto :

Merhaba!

Geliştiricilere hitap edin.

Python - MT5 paketini test etmeye devam ediyorum. Başka bir ilginç nokta, belki de bir hata ortaya çıktı.
Öz.

Bazen terminalde mevcut olan (yaklaşık 4.000 bin) finansal araç arasından seçim yapmak için bir işlem yapıyorum.
Terminale harici bir uygulamadan bağlanıyorum, yani. komut dosyaları terminalin içinde başlatılmaz.

Sembollerin her biri için günlük ve dakika çubukları alıyorum, ardından "pandalar" aracılığıyla hesaplamaları ve ilk enstrüman seçimini yapıyorum.
Böyle bir işlemden sonra, terminalin işlemciyi kademeli olarak %70-80'e kadar yüklemeye başladığını fark ettim.
Komut dosyasını çalıştırdıktan sonra işlemci yükü düşmüyor (15 dakika beklemeye çalıştım), terminalin kendisi çok yavaşlıyor. Yalnızca terminali kapatmak yardımcı olur.
Komut dosyasını terminali kapatmadan 2 kez çalıştırırsanız, komut dosyası hatasız çalışır, ancak işlemci yükü %70-80 düzeyinde kalır.

Deneyin tekrarlanabilmesi için senaryoyu en aza indirdim ve yalnızca bir teklif isteği bıraktım. Sorun da devam ediyor.

Gerekirse video çekmeye veya başka bir formda bilgi vermeye hazırım.

piton kodu:

Saygılarımla, İskender

Terminalin davranışında herhangi bir hata yoktur. 1000 veya daha fazla karakterle çalışmak için güçlü donanıma ve çok fazla belleğe ihtiyacınız olduğunu anlamalısınız. Ayrıca grafikteki çubuk sayısının ciddi şekilde sınırlandırılması önerilir (terminal ayarlarında).

Dokuzuncu neslin en az i7 veya i9'u ve tercihen onuncu neslin. Bellek en az 32 GB.


"... sadece teklif talebi bıraktı ..." - gerçekten teklif talebinin çok basit bir işlem olduğunu düşünüyorsanız - ticareti durdurun ve asla bilgisayara gitmeyin.

 
Vladimir Karputov :

Terminalin davranışında herhangi bir hata yoktur. 1000 veya daha fazla karakterle çalışmak için güçlü donanıma ve çok fazla belleğe ihtiyacınız olduğunu anlamalısınız. Ayrıca grafikteki çubuk sayısının ciddi şekilde sınırlandırılması önerilir (terminal ayarlarında).

Dokuzuncu neslin en az i7 veya i9'u ve tercihen onuncu neslin. Bellek en az 32 GB.


"... sadece teklif talebi bıraktı ..." - gerçekten teklif talebinin çok basit bir işlem olduğunu düşünüyorsanız - ticareti durdurun ve asla bilgisayara gitmeyin.

Belki de hata yoktur, iddia etmiyorum, olası bir bug olarak bu davranışa dikkat ettim, bu iş parçacığı bunun için tasarlanmış gibi mi yoksa yanılıyor muyum?

Söylediklerine bakılırsa, gereğinden fazla demirim var. Bu arada, bellek tüketimi bu işlem için nispeten küçüktür, yaklaşık 3.5 GB. Hafıza ile her şey yolunda ve genel olarak her şey kararlı bir şekilde çalışıyor.

Şimdi ayarlarda çubuk sayısı özel olarak 1 milyondan 1 bine düşürüldü. Kontrol. Hiçbir etkisi olmadı. Terminalde birkaç yüz sekme açarsam daha etkili olacağını düşünüyorum.

Soru, numaralandırma sürecinde ne kadar CPU zamanının tüketildiği değil, soru, tüm isteklerin tamamlanmasından sonra yükün azalmamasıdır.
İstenen her karakter için, daha fazla kullanım için bellekte ayrı bir akış bırakıldığını (yok edilmediğini) varsayarsak, bu her şeyi açıklar ve soru yoktur.

Ve teklif talebinin basit bir işlem olduğunu söylemiş miydim? Tamamen farklı bir şey hakkında yazdım. Senaryoyu ilkel olana basitleştirdiğim gerçeği hakkında, böylece diğer faktörler "sadece bir alıntı isteği" etkilemez ve bırakmaz.

Alım satımın gerçekten fiyat teklifi istemenin kolay bir işlem olmadığını anlamayı gerektirdiğini düşünüyorsanız, durum hiç de öyle değil.

Ticareti durdurma ve bilgisayara yaklaşmama tavsiyesine gelince, geç kaldık. İlk noktada en az 25 yıl, ikinci noktada en az 10 yıl.

Geliştiriciler gerekli görürse, sağlanan bilgileri dikkate alacaklardır. Değilse, hayır.

Saygılarımla, İskender.

 
suncrypto :

Belki de hata yoktur, iddia etmiyorum, olası bir bug olarak bu davranışa dikkat ettim, bu iş parçacığı bunun için tasarlanmış gibi mi yoksa yanılıyor muyum?

Söylediklerine bakılırsa, gereğinden fazla demirim var. Bu arada, bellek tüketimi bu işlem için nispeten küçüktür, yaklaşık 3.5 GB. Hafıza ile her şey yolunda ve genel olarak her şey kararlı bir şekilde çalışıyor.

Şimdi ayarlarda çubuk sayısı özel olarak 1 milyondan 1 bine düşürüldü. Kontrol. Hiçbir etkisi olmadı. Terminalde birkaç yüz sekme açarsam daha etkili olacağını düşünüyorum.

Soru, numaralandırma sürecinde ne kadar CPU zamanının tüketildiği değil, soru, tüm isteklerin tamamlanmasından sonra yükün azalmamasıdır.
İstenen her karakter için, daha fazla kullanım için bellekte ayrı bir akış bırakıldığını (yok edilmediğini) varsayarsak, bu her şeyi açıklar ve soru yoktur.

Ve teklif talebinin basit bir işlem olduğunu söylemiş miydim? Tamamen farklı bir şey hakkında yazdım. Senaryoyu ilkel olana basitleştirdiğim gerçeği hakkında, böylece diğer faktörler "sadece bir alıntı isteği" etkilemez ve bırakmaz.

Alım satımın gerçekten fiyat teklifi istemenin kolay bir işlem olmadığını anlamayı gerektirdiğini düşünüyorsanız, durum hiç de öyle değil.

Ticareti durdurma ve bilgisayara yaklaşmama tavsiyesine gelince, geç kaldık. İlk noktada en az 25 yıl, ikinci noktada en az 10 yıl.

Geliştiriciler gerekli görürse, sağlanan bilgileri dikkate alacaklardır. Değilse, hayır.

Saygılarımla, İskender.

Çubuk sayısını azalttıktan sonra terminali yeniden başlattınız mı?

 
Vladimir Karputov :

Çubuk sayısını azalttıktan sonra terminali yeniden başlattınız mı?

Kesinlikle.
 
Vladimir Karputov :

Çubuk sayısını azalttıktan sonra terminali yeniden başlattınız mı?

güneş şifresi :
Kesinlikle.

Bir deney yaptı.

Terminalde yaklaşık 100 pencere açtım (terminal artık açılmıyor, sınırlama).
İşlemci üzerindeki yük biraz arttı, %8-10'a kadar ve kullanılan bellek miktarı arttı, bu mantıklı.
Sonra terminali kapattı, tekrar açtı, yük %70-80'e çıktı ve yaklaşık bir dakika sonra normale döndü ve %8-10'a döndü.

(Ayarlarda 1 milyon bar belirledim.)


Bu nedenle, yukarıda açıklanan durum (harici bağlantı ile), dedikleri gibi, ya bir hatadır ya da bir özelliktir.
Doğru cevabı yalnızca geliştiriciler bilir.
Eğer bu bir özellik ise böyle bir işlemden sonra terminali kapatıp tekrar açmak oldukça çözüm. Operasyon sık değil.

 
suncrypto :

Eğer bu bir özellik ise böyle bir işlemden sonra terminali kapatıp tekrar açmak oldukça çözüm. Operasyon sık değil.

Evet, teorik olarak terminal, son zamanlarda istenen zaman serilerinin bir önbelleğini tutar.

Ama bunu sonsuza kadar yapmamalı, 3 ya da 5 dakikalık bir zaman aşımı olmuş gibi görünüyor.

 
suncrypto :


Lütfen 2650 derlemesinden başlayarak şunları unutmayın:


1.Terminal: "Açık pozisyonlar ve emirler için grafik verilerini önceden yükle" ayarı eklendi.


Trafiği kurtarmak için, işlem platformu enstrümanların fiyat geçmişini yalnızca fiili talep anında, örneğin bir grafik açarken veya test başlatıldığında indirir. Ancak aktif olarak kullanılan araçlar için bu her zaman uygun olmayabilir. Yeni seçeneği etkinleştirirseniz, açık pozisyonlarınız veya bekleyen emirleriniz olan enstrümanların grafikleri, platform her başlatıldığında arka planda güncellenecektir. Böylece çizelgeleri açarken ek veri yüklenmesini beklemenize gerek kalmaz, anında analize hazır hale gelirler.

Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода
Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода
  • 2020.10.08
  • www.mql5.com
В пятницу 9 октября 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii :

Evet, teorik olarak terminal, son zamanlarda istenen zaman serilerinin bir önbelleğini tutar.

Ama bunu sonsuza kadar yapmamalı, 3 ya da 5 dakikalık bir zaman aşımı olmuş gibi görünüyor.

Evet, terminalin kendisinde her şey yolunda. "Ekstra" pencereleri kapatırken, işlemci üzerindeki yük ve bellek tüketimi azalır.
Şimdiye kadarki soru sadece python'dan harici bağlantı ile ilgili.
 
Vladimir Karputov :

Lütfen 2650 derlemesinden başlayarak şunları unutmayın:


1.Terminal: "Açık pozisyonlar ve emirler için grafik verilerini önceden yükle" ayarı eklendi.


Trafiği kurtarmak için, işlem platformu enstrümanların fiyat geçmişini yalnızca fiili talep anında, örneğin bir grafik açarken veya test başlatıldığında indirir. Ancak aktif olarak kullanılan araçlar için bu her zaman uygun olmayabilir. Yeni seçeneği etkinleştirirseniz, açık pozisyonlarınız veya bekleyen emirleriniz olan enstrümanların grafikleri, platform her başlatıldığında arka planda güncellenecektir. Böylece çizelgeleri açarken ek veri yüklenmesini beklemenize gerek kalmaz, anında analize hazır hale gelirler.

Bu noktada bir uyarı var: " açık pozisyonlarınız veya bekleyen emirleriniz olan enstrümanların çizelgeleri ".
Ayrıca, yerel veritabanına zaten tüm çizelgeleri yükledim, komut dosyası çalışırken trafik yetersiz.

Bu tamamen doğru olmasa da, ancak en az 1 milyon veri talebinde bulunduğunuz bir SQL sunucusu ile bir benzetme yaparsak, o zaman evet, şu anda işlemci üzerinde bir tepe yükü olacaktır, ancak sonunda İşlemin, işlemci üzerindeki yük kesinlikle azalacaktır.

Tabii ki metatrader hala bir sql server değil, farklı bir platform ama nedense bana öyle geliyor ki metatrader'a alıntılar için istekte bulunduktan ve onunla bağlantıyı kapattıktan sonra her şey normale dönmeli. Umarım metatrader geliştiricileri açıklar.

 
mox_dimass :

Test cihazındaki rollover hatası nedir? Ekli bir örnek ile bir ekran görüntüsü:   açık pozisyon   Sat, bir rollover'da Satın Al aracılığıyla kapanır ve ardından Satış yoluyla yeniden açılır, ancak hacim sıfırdır.

Sonuç olarak pozisyonun yeniden açılması söz konusu olmaz, ortadan kalkar. Ekranda vurgulanır. Resimsiz de olsa daha önce yazmıştım. Bu hata nedir? Bu nedenle, test etmenin bir yolu yoktur.

Geliştiricilerin bu aksaklığa yanıt verip vermeyeceğini merak ediyorum. Sonuçta, rollover benim programım tarafından değil, test cihazı tarafından oluşturulur.

Neden: