Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 503
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 döviz çifti için, bir limit belirlerseniz, her şey çalışır, ancak bir nedenden dolayı, bir zaman dilimi için çalışmaz, h1'i koysanız bile, gösterge çalışmaz.
https://docs.mql4.com/en/chart_operations/periodwindow
https://docs.mql4.com/en/constants/chartconstants/enum_timeframes
Dönüş değeri Geçerli grafiğin periyodu (dakika olarak).
Deneyin, işe yarayabilir.
Veya alıntıları kaldırın.
https://docs.mql4.com/en/chart_operations/periodwindow
https://docs.mql4.com/en/constants/chartconstants/enum_timeframes
Dönüş değeri Geçerli grafiğin periyodu (dakika olarak).
Deneyin, işe yarayabilir.
Başka bir soru, #property katı olduğunda başlangıçta eklerken gösterge, 'Gösterge adı' (100,41) içinde aralık dışında bir hata dizisi verir, bununla nasıl başa çıkılır
ve burada yanlış olan ne?
Üzgünüm, kodu eklemeyi bilmiyordum, ancak kodun kendisi hakkında, #property strict eklediğinizde bu neden oluyor ve onsuz her şey çalışıyor
Yardım MetaEditor'e baktı mı?
İşlevlerle çalışma, değişkenlerin kapsamı ve yerel dizilerdeki belleğin serbest bırakılması da değişti. Oldukça fazla değişiklik olduğu için, eski MQL4 programlarını yazma yaklaşımıyla maksimum uyumluluğu sağlamak için yeni bir #property katı özelliğinin getirilmesine karar verildi. MQL4 Sihirbazını kullanarak yeni bir MQL4 programı oluştururken, bu özellik her zaman şablona eklenir.
ve ilerisi:
Derleyiciler arasındaki farklar tablosu:
Eski MQL4 derleyicisi
Yeni MQL4 derleyicisi
#property strict ile yeni MQL4 derleyicisi
init(), start(), deinit() giriş noktaları herhangi bir parametreye ve herhangi bir dönüş türüne sahip olabilir
init(), start(), deinit(), uyumluluk için bırakıldı,
ve yeni OnInit() , OnStart() , OnCalculate() , OnTick() , OnTimer() , OnChartEvent() , OnTester() , OnDeinit() imzalarıyla tam olarak eşleşmelidir
Aynı
init() işlevinden gelen dönüş sonucu, yürütme alt sistemi tarafından hiçbir şekilde ayrıştırılmaz
init() ve OnInit() işlevlerinden gelen dönüş sonucu, yürütme alt sistemi tarafından hiçbir şekilde analiz edilmez.
OnInit()'ten sıfır olmayan bir değer döndürüldüğünde, Expert Advisor veya göstergenin yürütülmesi sonlandırılır, program kaldırılır.
Özel karakterler ve noktalar dahil hemen hemen tüm değişken adları (ayrılmış kelimeler hariç)
Değişken adlarında özel karakterler veya noktalar olamaz.
Ayrılmış kelimelerin listesi genişletildi, bu nedenle kısa, uzun, const gibi yaygın kelimeler isim olamaz.
Aynı
Değişken kapsam - bildirimden (iç içe blokta bile) işlevin sonuna kadar
Aynı
Bir değişkenin kapsamı, bildirimden değişkenin bildirildiği bloğun sonuna kadardır.
Tüm değişkenlerin (hem global hem de yerel) sıfırlarla örtük başlatılması
Aynı
Yalnızca global değişkenlerin başlatılması. Yerel değişkenlerden yalnızca dizeler örtük olarak başlatılır
Bir işlevden çıkarken yerel diziler serbest bırakılmaz
İşlev çıktığında yerel diziler serbest bırakılır
{} bloğundan çıkarken yerel diziler serbest bırakılır
"Dizi aralık dışında" hatası , önemli bir hatayla sonuçlanmaz*
Aynı. Bu hatanın kritik olduğu yapı ve sınıf dizileri dışında
"Array out of range" kritik bir hatadır ve programın durmasına neden olur
Yapı veya sınıf yok
Yapılar ve sınıflar vardır. Ek veri türleri eklendi
Aynı
Dizeler tek bayttır.
tarihsaat - 32 bit tam sayı
Önceden tanımlanmış değişken Hacim double türündedir
Dizeler unicode'dur.
tarihsaat - 64 bit tam sayı
Önceden tanımlanmış değişken Hacim türü uzun
Aynı
ArrayCopyRates() , double[][6] dizisine sanal bir kopya yapar
ArrayCopyRates() , MqlRates[] dizisine sanal bir kopya gerçekleştirir. Uyumluluk için double[][6] dizisine kopyalama kalır, ancak bu kopyalama sanal değil gerçektir.
Aynı
İşlevler, bir türe sahip olsalar bile bir değer döndürmeyebilir. Bunu yapmak için, işlevin sonunda derleyici otomatik olarak return (0) koyar.
Aynı
Herhangi bir türdeki işlevler her zaman bir değer döndürmelidir
Eşzamanlı olarak açılan dosya sayısı - 32
Aynı anda açılan dosya sayısı - 64
Aynı
Dosyalar her zaman paylaşılan modda açılır**
Paylaşım modu, FILE_SHARE_READ ve/veya FILE_SHARE_WRITE ile açıkça belirtilmelidir.
Aynı
Komut dosyaları için, giriş parametreleri penceresinde harici değişkenlerin adları gösterilir
show_inputs modundaki komut dosyaları için, giriş parametreleri penceresinde harici ve giriş değişkenlerinin adları gösterilir
show_inputs modundaki komut dosyaları için, giriş parametreleri penceresinde harici ve giriş değişken adları yerine satır yorumları gösterilir
* "Array out of range" hatasına özellikle dikkat etmelisiniz - bir grafik üzerinde çalıştırıldığında birçok eski özel gösterge bu hatayı yeni derleyicide katı modda verecektir. Nedeni bulmak ve ortadan kaldırmak için tavsiye edilir.
** Yeni MQL4 ve MQL5'te eski MQL4'te olmayan FILE_SHARE_READ ve FILE_SHARE_WRITE bayrakları dosya paylaşım modundan sorumludur.
söyle bana burada sorun ne?
Aldıysam kusura bakmayın ama şimdi bu hatayı veriyor
39 pozisyon
Aynı hata, dizi aralık dışında mı?