Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 602
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Bir göstergede mi yoksa bir EA/komut dosyasında mı?
Yuri Evseenkov :
fromme2you :
Başka bir soru: MT4 geliştiricisini ve MQL kod yürütme ortamını nasıl zorlayabilir, böylece (onlar) aklını ve ellerini benim örneğimdeki veya benzer anlamdaki gibi istisna işleme için bir dil geliştirmeye verir?
Servis masasına başvurun, forumda bir konu/anket oluşturun.
Çok uzun zaman önce, MT4 genellikle gömüldü. Şimdi eğilim, tersine dönmediyse, en azından son zamanlarda platform ve dil önemli ölçüde modernize edildi.
Renata'nın bugünkü yazısına bakın:
...
MT4'ün gelişimi durduruldu ve bunun için yalnızca kozmetiklerle düzeltmeler yapılacak.
Merhaba. Bu sorunu nasıl çözeceğim konusunda bilgisi olan yardımcı olabilir mi? Barların açılış fiyatlarını belirli bir saatte, örneğin 01:00'de, örneğin son 50 barı analiz ederek bulmanız gerekiyor. Göreve mql5'te nasıl daha iyi yaklaşacağımı bilmiyorum.
Ya mevcut tarihin hesaplanması + buna gerekli sürenin eklenmesi ve ardından zaten günlerin eklenmesi yoluyla, bu yöntem mql4'te çalıştı.
mql5'te anladığım kadarıyla zamanın çıktısı olan özel yapılar var ama nedense onların içinden geçmiyor.
Cevabınız için şimdiden teşekkür ederiz.
Birisi düşünme yönünü anlamak için bir kod parçası atarsa çok minnettar olurum.göstergede.
Burada daha sonra daha iyi anlayabilmeniz için öncelikle çubukların numaralandırılmasına bakmanızı tavsiye ederim. Yani, önce MQL5 göstergesinde en sağdaki çubuğun nasıl numaralandırıldığını tam olarak anlamanız gerekir.
Bunu yapmak için, göstergede, OnCalculate'de aşağıdaki yorum çıktısını koyun:
Bu kod aşağıdaki sonucu verecektir:
Yani, varsayılan olarak, MQL5 gösterge dizilerinde en sağdaki çubuk, "rates_total-1" değerine eşit bir dizine sahiptir.
Sorunuza dönersek - son 50 çubuğu almanız ve geçmeniz gerekir. Ayrıca, çubuğun açılma zamanını (time[] dizisi) analiz edin, eğer çubuk zamanı belirtilene eşitse, bu çubuğun indeksini hatırlayın. Ardından, bu dizini kullanarak open[] dizisinden açılış fiyatını alın.
Şuna benziyor:
Burada daha sonra daha iyi anlayabilmeniz için öncelikle çubukların numaralandırılmasına bakmanızı tavsiye ederim. Yani, önce MQL5 göstergesinde en sağdaki çubuğun nasıl numaralandırıldığını tam olarak anlamanız gerekir.
Bunu yapmak için, göstergede, OnCalculate'de aşağıdaki yorum çıktısını koyun:
Bu kod aşağıdaki sonucu verecektir:
Yani, varsayılan olarak, MQL5 gösterge dizilerinde en sağdaki çubuk, "rates_total-1" değerine eşit bir dizine sahiptir.
Sorunuza dönersek - son 50 çubuğu almanız ve geçmeniz gerekir. Ayrıca, çubuğun açılma zamanını (time[] dizisi) analiz edin, eğer çubuk zamanı belirtilene eşitse, bu çubuğun indeksini hatırlayın. Ardından, bu dizini kullanarak open[] dizisinden açılış fiyatını alın.
Şuna benziyor:
Karputov Vladimir, sana çok teşekkürler. Bunu halledeceğim. Mql5'te, zaman serilerine erişimi daha esnek hale getirmiş görünüyorlar, ancak bence "Amatör-yeni başlayanlar" programcıları için her şey bir şekilde daha karmaşık hale geldi. :))
Alışkanlık meselesi. O zaman her şeyin yapılandırılmış, kolay ve doğru olduğunu anlayacaksınız.
Böyle bir soru daha. Seçenekler
Anladığım kadarıyla göstergenin uygulandığı çiftten sorumlular. Ve onları başka bir döviz çifti hakkında aynı bilgiyi çıkarmak için kullanmak imkansız mı? Yani, aynı OCHL dizilerini yalnızca Kopyala ... işlevleri aracılığıyla yapmak için daha evrensel bir çözüm elde edilir?Böyle bir soru daha. Seçenekler
Anladığım kadarıyla göstergenin uygulandığı çiftten sorumlular. Ve onların yardımıyla başka bir döviz çifti hakkında aynı bilgiyi çıkaramıyor musunuz? Yani, aynı OCHL dizilerini yalnızca Kopyala ... işlevleri aracılığıyla yapmak için daha evrensel bir çözüm elde edilir?Yabancı sembollere erişirken anlamanız ve bilmeniz gereken nüanslar vardır: Verilere erişimin organizasyonu . Yani başka bir sembolün zaman serisi verilerini talep ediyorsanız, öncelikle bu verilerin hazırlandığından ve var olduğundan emin olmanız gerekir. Başka birinin karakterinden istenen verilerin doğruluğundan emin olmanın tek yolu budur.
Anladım. Teşekkür ederim.
Başka bir soru: Print() işlevinde değerleri her zaman dize türüne dönüştürürsünüz. Bu hangi amaçla yapılıyor? Çeviri olmadan, int, double, vb. türleri Print()'te aynı şekilde görüntülenir.
Anladım. Teşekkür ederim.
Başka bir soru: Print() işlevinde değerleri her zaman dize türüne dönüştürürsünüz. Bu hangi amaçla yapılıyor? Çeviri olmadan, int, double, vb. türleri Print()'te aynı şekilde görüntülenir.
Bir sayının bilgisayarın belleğinde nasıl saklandığı ve nasıl görüntülendiği çok farklı iki şeydir. Özellikle kayan nokta sayıları için, ondalık basamak sayısını sınırlamak her zaman daha iyidir.
Bu nedenle, sayıların çıktısını her zaman print - use IntegerToString ve DoubleToString aracılığıyla doğru şekilde biçimlendirmeye çalışırım.
Bir sayının bilgisayarın belleğinde nasıl saklandığı ve nasıl görüntülendiği çok farklı iki şeydir. Özellikle kayan nokta sayıları için, ondalık basamak sayısını sınırlamak her zaman daha iyidir.
Bu nedenle, sayıların çıktısını her zaman print - use IntegerToString ve DoubleToString aracılığıyla doğru şekilde biçimlendirmeye çalışırım.
Cevaplar ve sabır için teşekkürler.
Vladimir, muhtemelen sana zaten işkence ettim :) Ama temellerin temelleri boyunca ilerlemek çok zor bir şey. Kopyalama işlevleriyle bir test görevi yapmaya çalıştım... Printe'de rakamlar olmasına rağmen gösterge çizilmiyor... Hiçbir şey anlamıyorum.