"Bu tartışmayı foruma taşıyalım" denildi.
Forumda neyi tartışacaksınız, benim kabalığımı mı yoksa hafızayı temizleme sorununu mu?
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?
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
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.
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.
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
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ı:
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.
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:
Hatayı belirlediniz mi?
Ve Servis Masasının yanıtı:
İ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.
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:
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
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.