Servis masası. Şikayetler, öneriler.

 

Tünaydın. Bugün bir kez daha Servis Masası'nda sorunu her zaman duymak istemedikleri, hatta dinlemek bile istemedikleri gerçeğiyle karşılaştım. Hadi başlayalım.

Birkaç gün önce servis masasına başka bir istek yazdım. Uygulamanın özü aşağıdaki gibidir (MT4 için):

Индикатор находится на ТФ, старше М1. Пытаюсь получить данные через функцию SeriesInfoInteger() с ТФ М1. Функция возвращает нули для свойств SERIES_BARS_COUNT, SERIES_FIRSTDATE, SERIES_SERVER_FIRSTDATE после того, как на М1 образовался новый бар. До того, как образовался новый бар - данные возвращаются корректные. После - нули. 

İkinci sorun da benzer türden. Gösterge TF MN1'de bulunur. TF M5 ile SeriesInfoInteger() işlevi aracılığıyla veri almaya çalışıyorum. İşlev, bir süre için doğru değerleri döndürür ve bundan sonra, YENİ M5 ÇUBUĞU AÇILMAMIŞ olsa da, bunu yapmayı bırakır ve sıfırları döndürmeye başlar!

Her iki durumda da, veri almaya çalıştığım zaman dilimine döndükten ve eski zaman dilimine dönüş geçişinden sonra, veriler bir süre doğru, sonra sıfır.

Uygulama göstergesi.

Göstergenin kurulu olduğu yer dışında bir TF için kullanılabilir geçmişi kontrol etmek/yüklemek için SeriesInfoInteger() işlevinin yukarıdaki özelliklerine ihtiyacım vardı.

Programcıların hiçbiri türün belirsizliğinden hoşlanmayacaktır: önce veri oradadır, sonra orada değildir ve elde edilemez. Ayrıca, programı yazan kullanıcı(lar) bundan hoşlanmayacaktır. Bu hatayı test etmek için bir program sağladığımı mesajdan görebilirsiniz. Ayrıca, günlük bile sağlandı:

 2015.10 . 29 14 : 25 : 52.663 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 5001 , firstDate = 2015.10 . 26 00 : 00 , serv_firstdate = 2015.08 . 21 10 : 59
2015.10 . 29 14 : 25 : 53.113 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 5001 , firstDate = 2015.10 . 26 00 : 00 , serv_firstdate = 2015.08 . 21 10 : 59
2015.10 . 29 14 : 25 : 53.419 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 5001 , firstDate = 2015.10 . 26 00 : 00 , serv_firstdate = 2015.08 . 21 10 : 59
2015.10 . 29 14 : 25 : 53.930 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 5001 , firstDate = 2015.10 . 26 00 : 00 , serv_firstdate = 2015.08 . 21 10 : 59
2015.10 . 29 14 : 25 : 54.487 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 5001 , firstDate = 2015.10 . 26 00 : 00 , serv_firstdate = 2015.08 . 21 10 : 59
2015.10 . 29 14 : 25 : 54.795 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 5001 , firstDate = 2015.10 . 26 00 : 00 , serv_firstdate = 2015.08 . 21 10 : 59
2015.10 . 29 14 : 25 : 55.412 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 0 , firstDate = 1970.01 . 01 00 : 00 , serv_firstdate = 1970.01 . 01 00 : 00
2015.10 . 29 14 : 25 : 55.943 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 0 , firstDate = 1970.01 . 01 00 : 00 , serv_firstdate = 1970.01 . 01 00 : 00
2015.10 . 29 14 : 25 : 56.678 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 0 , firstDate = 1970.01 . 01 00 : 00 , serv_firstdate = 1970.01 . 01 00 : 00
2015.10 . 29 14 : 25 : 57.169 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 0 , firstDate = 1970.01 . 01 00 : 00 , serv_firstdate = 1970.01 . 01 00 : 00
2015.10 . 29 14 : 25 : 57.938 test_271015_series_easy EURUSD,M5: OnCalculate 1 : bars count = 0 , firstDate = 1970.01 . 01 00 : 00 , serv_firstdate = 1970.01 . 01 00 : 00

Veriler basitçe kesintiye uğrar ve yalnızca TF'yi veri talebinin devam etmekte olduğu ile değiştirirseniz daha fazla ilerleyebilirsiniz.

Ve SD'den aldığım cevap bu.

Destek Ekibi 2015.10.29 10:41
Bir başkasının sembol periyodundan gerçek verileri almak için, bu verilere her 10 saniyede bir defadan daha sık erişmek gerekir. Veya örneğin iTime kullanarak Expert Advisor'dan bu verilere erişin (daha sonra verilere en az 3 dakikada bir erişebilirsiniz)
Destek Ekibi 2015.10.29 10:42

Durum: Açık Kapalı

Mesaj, Service Desk'in (veya bazı çalışanlarının) kullanıcıların hatalar hakkında yazdıklarını hiç umursamadığını gösteriyor. Her 10 saniyede bir defadan fazla verilere erişmem isteniyor!? Günlükten, verilerin her tıklamada çok daha sık istendiği görülebilir. Bu günlüğün okunmadığından eminim. Ancak onlara "daha sık" erişmem veya Uzman Danışmandan gelen verilere erişmem teklif edildi. Parlak. Ve uygulama sanki bana yardım etmişler gibi hemen kapatıldı.

Devam et. İşte cevabım:

Alexey Kozitsyn 2015.10.29 10:57
Günlüklere bakın! Çağrı her tikte devam ediyor! Tiki çok daha sık gider! Benzer şekilde, saniyede 10 kez sıklıkta zamanlayıcıda!
Alexey Kozitsyn 2015.10.29 10:57
Durum: Kapalı Açık

Alexey Kozitsyn 2015.10.29 10:59
Dönemler hakkında - bunlar sadece test dönemleridir! Eğer ondan bahsediyorsan. Yine, veriler her tikte istenir!
Alexey Kozitsyn 2015.10.29 11:00
Başlangıçta gelebilirler ve sonra bunu yapmayı bırakabilirler! Günlüklere yakından bakın.
Alexey Kozitsyn 2015.10.29 12:06

Hatayı belirlediniz mi?

Ve Servis Masasının yanıtı:

Destek Ekibi 2015.10.29 12:09

İstediğiniz grafiği açın, ardından siz kapatana kadar verileri her zaman bellekte olacaktır.

900'ü derlemeden bu yana, agresif bellek boşaltma uyguladık. Bellekle ilgili bir sorun varsa, mümkün olan her şey serbest bırakılır.

Yeterli veriye sahip uygun en küçük TF'yi seçmek için bu özelliklere ihtiyacım var. Her grafiği açmam teklif edildi. Ve aynı anda kaç enstrümanı analiz ettiğim önemli değil, mümkün olan tüm çizelgeleri açın ve mutlu olacaksınız.

Agresif serbest bırakma ve hafıza sorunları hakkında. Terminalde hafıza sorunu yok. Terminal günlüklerinde hata yok. Buna dayanarak, sadece hafızanın serbest bırakılabileceği bir durum hakkında bilgilendirildiğime karar verilebilir. Ama bu açıkça benim durumum değil. Service Desk'in sorunu anlamak istemediği, geride kalmak istediği bir diğer gerçek.

Daha ileri.

Alexey Kozitsyn 2015.10.29 12:27

Agresif bellek sürümünü geliştirmenin grafik üretmekten daha iyi olduğunu düşünmüyor musunuz? Ve hangi hafıza problemlerinden bahsediyorsun? Ve evet, lütfen bırakın, ama onları koltuk değneği olmadan daha fazla almayı mümkün kılın!

Göstergeyi uygulamadan başlatmayı denediniz mi? Verilerin başka birinin TF'sinden geldiğini anlıyor musunuz, geliyorlar, geliyorlar ve bam - yapmayı bırakıyorlar!? Bu normal bir davranış mı?

İşte belgelerden bir parça:

Uzman Danışmanlar ve özel göstergeler için olay işleme modelini kullanmak daha iyidir. OnTick() veya OnCalculate() olayını işlerken, gerekli zaman serisinin tüm gerekli verilerini elde etmek mümkün değilse, işleyicinin bir sonraki çağrısında verilere erişimi hesaba katarak olay işleyicisinden çıkmalısınız. .

Verdiğim göstergede tam da böyle bir model kullanılıyor. Veri alınmazsa, verilerin bir sonraki tikte gelmesi beklenir. Ama veriler artık gelmiyor! Hiç! Belgelerde bir çelişki ortaya çıkıyor!

mql5'te her şey olması gerektiği gibi çalışıyor, neden mql4'te de düzenlenemiyor?

Ve cevap:

Destek Ekibi 2015.10.29 12:45

Numara. Görünmüyor.

Dokümantasyonla ilgili olarak, sonuç doğrudan burada: eğer sürekli olarak bazı sembol periyodlarına ait verilere ihtiyacınız varsa, OnInit'te bu verilerin sürekli olarak mevcudiyetini sağlayın. Örneğin, basit bir istek iTime(needed_symbol,needed_period). Ve bu iTime'ı her tikte saklayın

Terminalinizi bellekle kendiniz yüklersiniz. Bu nedenle, grafikteki çubuk sayısını gerekli sınıra kadar azaltın. Kritik verileri güvenceye almak için istenen nokta sembolüne sahip bir grafik açın.

Mevcut durumdan memnun değilseniz, bu tartışmayı foruma taşıyalım. Bunu burada tartışmak yersiz.

MT5, geçmiş verileri kullanmak için tamamen farklı bir modele sahiptir

Destek Ekibi 2015.10.29 12:46
Durum: Kapalı

Sırayla:

Numara. Görünmüyor.

Sadece kabalık. Açıklama yok, yorum yok.

Dokümantasyonla ilgili olarak, sonuç doğrudan burada: eğer sürekli olarak bazı sembol periyodlarına ait verilere ihtiyacınız varsa, OnInit'te bu verilerin sürekli olarak mevcudiyetini sağlayın. Örneğin, basit bir istek iTime(needed_symbol,needed_period). Ve bu iTime'ı her tikte saklayın

İlk sağduyu koltuk değneği . Doğrudan sonucu takip eder!? Bu sonuç nerede? Gerçekten mql'de yazan herkesin bu sonucu kendisi için çıkardığını mı düşünüyorsunuz!? İnsanlar için düşünmeyin. Yazılanlardan sonuç çıkarılır. Karşılaştırma için. "Veri erişiminin organizasyonu" bölümündeki mql5 belgelerinde, veri erişiminin nasıl düzenlenmesi gerektiğine dair bir örnek vardır. Her şey harika çalışıyor. Hemen, SeriesInfoInteger() işlevi 0 döndürürse, istenen sembol/dönem için iTime() işlevini çağırmanız gerektiğini tahmin etmeniz gerekir. Bu neden yazılmadı? Ve neden bu koltuk değnekleri olmadan SeriesInfoInteger() işlevini basitçe değiştirmek imkansız? Ya da en azından belgelerde açıklığa kavuşturmak mı? Sevgili geliştiriciler, sizin için daha az soru istiyorsanız, nasıl ve ne belgelerine ayrıntılı olarak bir kez yazın. İnsanlar okuyabilir!

Terminalinizi bellekle kendiniz yüklersiniz. ...

Çok ilginç, bana ne iletmek istedin!? Terminal bellek tüketebilir, ancak terminale bellek yüklemek benim için yeni bir şey.

Bu nedenle, grafikteki çubuk sayısını gerekli sınıra kadar azaltın. Kritik verileri güvenceye almak için istenen nokta sembolüne sahip bir grafik açın.

Evet, sen nesin!? Ne düşünüyorsunuz, uygulamadan göstergeyi kaç çubuk üzerinde test ettim? Umursamıyor gibisin çünkü sormadın bile. Bu sayı 5000'dir. Mümkün olan minimum miktar. Ve yine tabloyu açma önerisi. anladım teşekkürler. Bunu belgelere ekleyin (gerekirse).

Ve final.

Mevcut durumdan memnun değilseniz, bu tartışmayı foruma taşıyalım. Bunu burada tartışmak yersiz.

MT5, geçmiş verileri kullanmak için tamamen farklı bir modele sahiptir

Evet, mevcut durumdan memnun değilim. Kullanıcılar programınızda hatalar bulur (ve ben hala SeriesInfoInteger() işlevinin davranışının bir hata olduğunu düşünüyorum). Ücretsiz yapıyorlar. Ve siz, onları düzeltmek istemediğinizden değil, onları dinlemek bile istemediğinizden, kullanıcılar tarafından sağlanan verilere bakın. Ve bu, gerçeklerin düşmanlıkla algılandığı ve hataları umursamadığı ilk kez değil. Umarım geliştiriciler dinler ve gelecekte olumlu değişiklikler olur. Ve mevcut tavırla kendinize ve ürününüze karşı olan tavrınızı halktan uzaklaştırıyorsunuz.

Herkese okuduğu için teşekkürler.

Bu özelliği denemek isteyen olursa indikatörü uygulamada.

Dosyalar:
 

"Bu tartışmayı foruma taşıyalım" denildi.

Forumda neyi tartışacaksınız, benim kabalığımı mı yoksa hafızayı temizleme sorununu mu?

 
Slawa :

Size dediler ki: "Bu tartışmayı foruma taşıyalım."

Forumda neyi tartışacaksınız, benim kabalığımı mı yoksa hafızayı temizleme sorununu mu?

Bu yüzden tartışmayı foruma getirdim. Uyumlu olalım.

Kabalık hakkında. Servicedesk ile konuşmak her zaman hoş değildir. Yukarıdaki argümanlar.

İşlev hakkında. Fonksiyonun doğru çalışmadığına dair kanıt sağladım. Bana "koltuk değneği" teklif ettin. Koltuk değnekleri hariç, doğru çalışma mümkün değilse - gelecekte soru olmaması için bu koltuk değneklerinin bir tanımını belgelere ekleyin.

 
Programcılardan konuşmalarını rica ediyorum. SeriesInfoInteger() işlevinin bu davranışından memnun musunuz? Dil belgelerinden memnun musunuz?
 
Alexey Kozitsyn :
Programcılardan konuşmalarını rica ediyorum. SeriesInfoInteger() işlevinin bu davranışından memnun musunuz? Dil belgelerinden memnun musunuz?

Uzun zaman önce göstergelerdeki verilerle ilgili sorunu dile getirdim!

https://www.mql5.com/ru/forum/42180

Sorunun çözüleceğinden emindim.

Bu, 1200 için sürüm notlarında bile yazılmıştır.

17. Terminal: MQL5 programlarından düzenli veri erişimlerine rağmen geçmiş verilerin kullanılmamış olarak boşaltılmasına neden olan bir hata düzeltildi.

Peki sorun neden çözülmedi ?

ФОРТС Прошу помощи
ФОРТС Прошу помощи
  • www.mql5.com
Прошу откомпилировать этот код и "бросить" индикатор на символ MIX-6. - - Категория: автоматические торговые системы
 
Михаил :

Uzun zaman önce göstergelerdeki verilerle ilgili sorunu dile getirdim!

https://www.mql5.com/ru/forum/42180

Sorunun çözüleceğinden emindim.

Bu, 1200 için sürüm notlarında bile yazılmıştır.

17. Terminal: MQL5 programlarından düzenli veri erişimlerine rağmen geçmiş verilerin kullanılmamış olarak boşaltılmasına neden olan bir hata düzeltildi.

Peki sorun neden çözülmedi ?

Bu durumda, MT4'ü kastettim. Ancak MT5 için soru da önemlidir.

 
Alexey Kozitsyn :

Bu durumda, MT4'ü kastettim. Ancak MT5 için soru da önemlidir.

Henüz 1200'e yükseltmedim, bu yüzden düzeltilip düzeltilmediğini kontrol edemiyorum.

Ama MT5'te böyle bir bug vardı.

 
Михаил :

Henüz 1200'e yükseltmedim, bu yüzden düzeltilip düzeltilmediğini kontrol edemiyorum.

Ama MT5'te böyle bir bug vardı.

Şimdi 1204 yükleniyor bakalım.
 
Alexey Kozitsyn :
Şimdi 1204 yükleniyor bakalım.
1200 için kontrol edildi (bcs-demo), düzeltilmiş görünüyor :)
 
MT5 işlevi SeriesInfoInteger kullanılmıyorsa, bunun yerine eski işlevler MT4, iBars, iTime, MarketInfo vb. kullanılıyorsa, sorun devam ediyor mu?
 
Dördüncüde düzelteceğiz - kullanılmayan çizelgelerin agresif bir şekilde boşaltılmasında çok ileri gittik.
Neden: