Servis masası. Şikayetler, öneriler. - sayfa 3

 
Alexey Kozitsyn :

Sadece belgelerde belirtildiği için ve onu kullanmak istiyorum.

MT5'e benzer şekilde geçmişi indirmek ve kontrol etmek için: https://www.mql5.com/en/docs/series/timeseries_access

Soruyu tekrarlıyorum, eski mql4'ü kullanarak bu tarihi nasıl alabileceğinizi biliyor musunuz?

Benim için dokümantasyonda bir fonksiyonun bulunması servis masası ve forumda uğraşmak için yeterli bir sebep değil, prensipte ihtiyacım yoksa zaman ve emek harcamak. Ve neden size ihtiyaç duyulabileceğini, bence tartışamadı.

Ben şahsen kimsenin MT4'te MT5 API'sinin işlevlerini kullanmasını önermiyorum çünkü bunlar MQL4'ün "modernizasyonu" anından itibaren uzun süredir bu şekilde sorunluydu. Ve bundan böyle, birisi mutlak gerekliliğini kanıtlayana kadar onları kullanmanızı tavsiye etmeyeceğim.

 
Ilya Malev :

Benim için dokümantasyonda bir fonksiyonun bulunması servis masası ve forum ile uğraşmak için yeterli bir sebep değil, prensipte ihtiyacım yoksa zaman ve emek harcamak. Ve neden size ihtiyaç duyulabileceğini, bence tartışamadı.

Ben şahsen kimsenin MT4'te MT5 API'sinin işlevlerini kullanmasını önermiyorum çünkü bunlar MQL4'ün "modernizasyonu" anından itibaren uzun süredir bu şekilde sorunluydu. Ve bundan böyle, birisi mutlak gerekliliğini kanıtlayana kadar onları kullanmanızı tavsiye etmeyeceğim.

Hala soruma cevap vermedin. Ama anlıyorum ki umursamıyorsun ve her şey sana yakışıyor.

Oh, ve bir argüman daha - programların MT4'ten MT5'e taşınabilirliği ve bunun tersi.

 
Alexey Kozitsyn :

Hala soruma cevap vermedin. Ama anlıyorum ki umursamıyorsun ve her şey sana yakışıyor.

Oh, ve bir argüman daha - programların MT4'ten MT5'e taşınabilirliği ve bunun tersi.

MT4 penceresindeki çubuk sayısı sınırınız varsa sunucuda kaç çubuk olduğunu öğrenemezsiniz. Ve ihtiyaç duyulacak düzenli bir durumla karşılaşmadım. Tabii ki, bir sürü egzotik şey bulabilirsin, ama gerçekte, tüccarların görevlerinin %99,9'unda onsuz yapabilirsin.

Taşınabilirliğe gelince, bunlar hem verilerle hem de siparişlerle çalışmak için temelde farklı bir metodolojiye sahip tamamen farklı platformlardır. Bu nedenle, onlar için programlama metodolojisi tamamen farklıdır. Taşınabilirlik için __MQL4__ yönergesi ve koşullu derleme içeren kitaplıklar vardır.

 
Ilya Malev :

MT4 penceresindeki çubuk sayısı sınırınız varsa sunucuda kaç çubuk olduğunu öğrenemezsiniz. Ve ihtiyaç duyulacak düzenli bir durumla karşılaşmadım. Tabii ki, bir sürü egzotik şey bulabilirsin, ama gerçekte, tüccarların görevlerinin %99,9'unda onsuz yapabilirsin.

Taşınabilirliğe gelince, bunlar hem verilerle hem de siparişlerle çalışmak için temelde farklı bir metodolojiye sahip tamamen farklı platformlardır. Bu nedenle, onlar için programlama metodolojisi tamamen farklıdır. Taşınabilirlik için __MQL4__ yönergesi ve koşullu derleme içeren kitaplıklar vardır.

Verilere erişim organizasyonu - "egzotik"!? Um. İyi.

Evet, tüccarlar genellikle dili önemsemezler, bir tüccarın ticaret yapması ve danışmanların / göstergelerin / komut dosyalarının doğru çalışması gerekir. Nasıl çalıştıkları zaten bir programcının sorunudur. Ancak bir programcı, bir tüccar için kaliteli bir ürün yazabilmek için verilere erişim gibi önemsiz şeylere dikkat etmelidir.

Ve eğer bir şeyle tanışmadıysanız, bu başkalarının ona sahip olmadığı anlamına gelmez.

 
Alexey Kozitsyn :

Verilere erişim organizasyonu - "egzotik"!? Um. İyi.

Evet, tüccarlar genellikle dili önemsemezler, bir tüccarın ticaret yapması ve danışmanların / göstergelerin / komut dosyalarının doğru çalışması gerekir. Nasıl çalıştıkları zaten bir programcının sorunudur. Ancak bir programcı, bir tüccar için kaliteli bir ürün yazabilmek için verilere erişim gibi önemsiz şeylere dikkat etmelidir.

Bu işlevin gerekli olacağı gerçek bir görev vermediniz. Yalnızca "veri erişimi" gibi güzel kelimeler ve bu işleve ihtiyacınız olduğunun tanınması, yalnızca belgelerde açıklandığı için.

MT4 API'de verilere erişim için oldukça yeterli işlevler var, bence MT5 için işlevlere kesinlikle girmeye gerek yok. MT4'te hiç kimsenin sunucudaki çubuk sayısını bulması gerekmez, çünkü programlı olarak geçmişi yüklemeye gerek yoktur - bu, MT4'te kullanılan veri erişim işlevlerine (iHigh, iLow, MarketInfo, vb.) erişmeden önce terminal tarafından yapılır. .)

Söylemem gereken şey çok uygun ve bunun MT5'te değiştirilmiş olması üzücü, bu da oradaki verilere erişimde birçok zorluk yarattı.

 
Ilya Malev :

Bu işlevin gerekli olacağı gerçek bir görev vermediniz. Yalnızca "veri erişimi" gibi güzel kelimeler ve bu işleve ihtiyacınız olduğunun tanınması, yalnızca belgelerde açıklandığı için.

MT4 API'de verilere erişim için oldukça yeterli işlevler var, bence MT5 için işlevlere kesinlikle girmeye gerek yok. MT4'te hiç kimsenin sunucudaki çubuk sayısını bulması gerekmez, çünkü geçmişi programlı olarak yüklemeye gerek yoktur - bu, terminalin kendisi tarafından yapılır.

Söylemem gereken şey çok uygun ve bunun MT5'te değiştirilmesi üzücü, bu da oradaki verilere erişimle ilgili birçok sorun yarattı.

Evet, aslında getirmiş, hatta link vermiş:

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

Servis masası. Şikayetler, öneriler.

Alexey Kozitsyn , 2015.10.30 17:11

Sadece belgelerde belirtildiği için ve onu kullanmak istiyorum.

MT5'e benzer şekilde geçmişi indirmek ve kontrol etmek için: https://www.mql5.com/en/docs/series/timeseries_access

Bağlantıda anlatıldığına benzer şekilde, mql5'te geçmişi kontrol etmek/yüklemek için bir fonksiyon yazdım. Her şey olması gerektiği gibi çalışıyor. Ve mql4 programında kullanmak istedim. Kodu taşıdım ve SeriesInfoInteger() işlevinin doğru çalışmadığını belirledim. ServiceDesk'e bir istek yazdı. Tüm işlevler her iki dilde de çoğaltılıyorsa neden mevcut kodu kullanmamalıyım?

Anladığım kadarıyla önce mql4 altına yazmışsın, sonra mql5'e geçiş yapmışsın. Aksine aktif olarak önce mql5'te sonra mql4'te yazmaya başladım. Bu yüzden yeni özellikleri daha rahat kullanıyorum.

 
Ve mql4 ve mql5'ten verilere erişimi düzenlemeye ilişkin belgeleri karşılaştırırsak, erişimin aynı olduğu anlaşılır. Sadece mql5 belgeleri bir erişim örneği ile genişletildi. Yani, başka bir büyük soru ve bu erişim çok farklı.
 
Alexey Kozitsyn :
Ve mql4 ve mql5'ten verilere erişimi düzenlemeye ilişkin belgeleri karşılaştırırsak, erişimin aynı olduğu anlaşılır. Sadece mql5 belgeleri bir erişim örneğiyle genişletildi. Yani, başka bir büyük soru ve bu erişim çok farklı.

Basit bir örnek - bir gösterge, iCustom tarafından diğerini çağırır. Ve bu diğer gösterge de sırayla üçüncü ve dördüncüye neden olur. Ve tüm bu göstergeler birkaç milisaniyeden biraz daha uzun inşa edilmiştir. Bu nedenle, hafta sonu böyle bir yapı başlatan kullanıcı, grafikteki "Güncelle" düğmesine düzenli olarak basmadıkça, hafta sonu bitene kadar göstergenin inşa edilmesini beklemeyecektir ve bu sorun herhangi bir yazılım tarafından çözülemez. aletler. Bu sorun nedeniyle, iCustom yerine, iCustom'u atlayarak göstergelerle birbirini çağırmak için bütün bir sınıf sistemi yapmak zorunda kaldım. MT4'te böyle bir hemoroid yoktu.

MT4'te gösterge önce oluşturulur, ardından verilerini kullanan kod çağrılır. Zaman serileri için, çoğunlukla aynı şey geçerlidir. Mt5'te her şey değişti ve bence daha iyisi için değil.

 
Ilya Malev :

Basit bir örnek - bir gösterge, iCustom tarafından diğerini çağırır. Ve bu diğer gösterge de sırayla üçüncü ve dördüncüye neden olur. Ve tüm bu göstergeler birkaç milisaniyeden biraz daha uzun inşa edilmiştir. Bu nedenle, hafta sonu böyle bir yapı başlatan kullanıcı, grafikteki "Güncelle" düğmesine düzenli olarak basmadıkça, hafta sonu bitene kadar göstergenin inşa edilmesini beklemeyecektir ve bu sorun herhangi bir yazılım tarafından çözülemez. aletler. Bu sorun nedeniyle, iCustom yerine, iCustom'u atlayarak göstergelerle birbirini çağırmak için bütün bir sınıf sistemi yapmak zorunda kaldım. MT4'te böyle bir hemoroid yoktu.

Mt4'te önce gösterge oluşturulur, ardından verilerini kullanan kod çağrılır.

Zamanlayıcı olaylarını kullanmayı deneyin. Onlar. Hafta sonu tüm hesaplamaların mantığını bir zamanlayıcıda çalıştırın. Ayrıca, gösterge pencerede hala görünmüyorsa, bir kez yenile'yi tıklayın. Her şey çalışmalı.
 

Alexey Kozitsyn :

Zamanlayıcı olaylarını kullanmayı deneyin.

Zamanlayıcı olayları aslında ChartEvent'in bir alt sınıfıdır ve yalnızca gösterge doğrudan grafik üzerinde çalıştığında çağrılır. iCustom aracılığıyla çağrılan göstergelerde, OnTimer aramasını veya OnChartEvent aramasını beklemeyeceksiniz.

Orada, bir gösterge ancak kullandığı diğeri oluşturulduktan sonra oluşturmaya başlar. Bu nedenle, zincirdeki en uzak olanı oluşturmak için bir kez yenilemeyi tıklamanız, ardından verilerini kullananı oluşturmak için tekrar tıklamanız gerekir :)

Çünkü iş parçacığındaki bir gösterge, OnCalculate'den dönmeden başka bir göstergenin verilerinin oluşturulmasını bekleyemez. Bu da güzel bir özellik. Ve bu, kullanıcının verilerle çalışmak yerine sürekli olarak grafik menüsüne girme şeklidir.