dış ve giriş arasındaki fark - sayfa 4

 
Igor Makanu :

ve enum türünde bir değişken bildirirseniz?

örtük numaralandırma dönüştürme tst1.mq5 24 17


EnumToString()'i de kontrol edebilirsiniz...


Bildirilen değişkenleri olmayan türün, kullanılmadığı için derlemeden çıkarıldığını düşünüyorum.

Demek istediğim, enum'da zaten kullanılan aynı isimde bir değişkeni yanlışlıkla bildirebilirsiniz ve sonra kendimi dizimde nerede ve nerede vurduğumu aramak çok uzun ve acı vericidir.

 
Maksim Neimerik :
Öyleyse Tanrı'nın hükmü nedir?) .mqh (#include) ile bir .mq5 programı yazarsam, extern'i güvenle reçete edebilir ve beklenmedik sonuçlardan korkmadan (mql4'te yaptığım gibi) veya yine de input kullanabilir miyim?

MT5'te harici değişkenleri bildirmek için girişi kullanın. extern, MT5'te farklı bir amaca sahiptir.

 
Dmitry Fedoseev :

MT5'te harici değişkenleri bildirmek için girişi kullanın. extern, MT5'te farklı bir amaca sahiptir.

MT5'te neden extern kullanılamıyor? - Örneğimi MT5'te derledim, temel bir fark görmüyorum

 
Igor Makanu :

MT5'te neden extern kullanılamıyor? - Örneğimi MT5'te derledim, temel bir fark görmüyorum

Çünkü insanlar, eski MQL4'ten kalan bir alışkanlıkla, girdi parametreleri için extern kullanmaya çalışırlar.

Ve bu amaçlar için yeni MQL4 ve MQL5'te, #property strict ve diğerleri için extern - ile birlikte girdiye ihtiyacınız var.

Bu yüzden extern kullanılmaması söylendi.

 
Artyom Trishkin :

Çünkü insanlar, eski MQL4'ten kalan bir alışkanlıkla, girdi parametreleri için extern kullanmaya çalışırlar.

Ve yeni MQL4 ve MQL5'te, bu amaçlar için, #property strict ve diğerleri için extern ile birlikte girdiye ihtiyacınız var.

Bu yüzden extern kullanılmaması söylendi.

herkes bir multibookaff yazmaya çalışıyor ve sonunda SADECE MT5'te KULLANILMADIĞI ortaya çıktı, o zaman hiçbir yerde KULLANILMAYACAK)))


tamam, holivar başlıyor, IMHO - Eski kodda extern'i gördüm - onu girdi ile değiştirin ve tüm uyarıları düzeltin ve MQL'nin gücü sizinle olsun !!!!

 
Igor Makanu :

herkes bir multibookaff yazmaya çalışıyor ve sonunda SADECE MT5'te KULLANILMADIĞI ortaya çıktı, o zaman hiçbir yerde KULLANILMAYACAK)))


tamam, holivar başlıyor, IMHO - Eski kodda extern'i gördüm - onu girdi ile değiştirin ve tüm uyarıları düzeltin ve MQL'nin gücü sizinle olsun !!!!

Yazılanların çoğunu anlamadım.

Ancak, harici program parametrelerini bildirmek için MQL5 ve MQL4'te extern'i #property strict ile kullanmamayı, ancak yardımda amaçlandığı gibi (belirsiz bir şekilde) kullanmayı düşündüm.

 

İşte düşündüğüm şey, sadece düşünceler... MQL5'te iCustom() ile çalışmak MQL4'ten (ve genel olarak bir Uzman Danışmanda çağrı göstergeleriyle ) çalışmaktan çok daha mı sorunlu? Öyle mi? Eğer öyleyse devam edeceğim...

Yavaş yavaş MQL5 öğrenmeye başladım...

Muhtemelen yeni bir konu oluşturacağım.
 
Maksim Neimerik :
İşte düşündüğüm şey, sadece düşünceler... MQL5'te iCustom() ile çalışmak MQL4'ten (ve genel olarak bir Uzman Danışmanda çağrı göstergeleriyle ) çalışmaktan çok daha mı sorunlu? Öyle mi? Eğer öyleyse devam edeceğim...

daha sorunlu değil, ancak basitçe MQL5'te iCustom() 2 aşamada çalışılmalıdır:

1. gösterge kolu var

2. CopyBuffer() aracılığıyla gösterge arabelleklerinin değerlerini istedi


MQL4'te - iCustom(), çağrılan, alınan parametrelerle bir işlev çağrısı olarak çalışır

MQL5'te her şey böyle çalışır, nedense geliştiriciler yerleşik işlevlerin işlevselliğini kasıtlı olarak kestiler ve zaman serilerine erişmeyi uygunsuz hale getirdiler - yalnızca son zamanlarda iClose(), iHigh()'ı MQL5'e eklediler, daha önce verileri bir CopyBuffer() ile olduğu gibi dizi

genel olarak, MT5, MT4'ten daha fazla karalama özelliğine sahiptir

 
Igor Makanu :

daha sorunlu değil, ancak basitçe MQL5'te iCustom() 2 aşamada çalışılmalıdır:

1. gösterge kolu var

2. CopyBuffer() aracılığıyla gösterge arabelleklerinin değerlerini istedi


MQL4'te - iCustom(), çağrılan, alınan parametrelerle bir işlev çağrısı olarak çalışır

MQL5'te her şey böyle çalışır, nedense geliştiriciler yerleşik işlevlerin işlevselliğini kasıtlı olarak kestiler ve zaman serilerine erişmeyi uygunsuz hale getirdiler - yalnızca son zamanlarda iClose(), iHigh()'ı MQL5'e eklediler, daha önce verileri bir CopyBuffer() ile olduğu gibi dizi

genel olarak, MT5, MT4'ten daha fazla karalama özelliğine sahiptir

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

MQL4 & MQL5
MQL4 & MQL5
  • 2019.06.29
  • www.mql5.com
Я тут вот что думаю, просто мысли... В MQL5 ведь намного проблемнее работа с iCustom() чем в MQL4 (да и вообще с вызовом индикаторов в советнике...
 

MQL5'te harici değişkenlerin uygulanması maalesef tamamlanmadı ve bu nedenle kullanılmasını önermiyorum, sorunlarla dolu. Bu değişkenlerin zorunlu bir kerelik başlatılması üzerinde kontrol eksikliğinden bahsediyoruz.

Örneğin, şöyle yazabilirsiniz:

 extern int a= 1 ;
extern int a= 2 ;

ve hata olmayacak. Bu başlatmaların farklı içerme dosyalarında yapıldığını hayal edin. Daha sonra nihai sonuç, bu dosyaların dahil edildiği sıraya bağlı olacaktır.

Veya bunun gibi (yürütülebilir dosya):

 extern int a;

void OnStart () { Print (a); }

burada extern değişkenini hiç başlatmadık, ancak hata da yok.

Buna göre, aynı değişkenlerin başka dosyalarda tanımlanıp tanımlanmadığı konusunda herhangi bir kontrol yoktur. Adını yanlışlıkla değiştirebilirsiniz, ancak diğer dosyalarda farklı bir ada sahip bir değişkenimiz olmasına rağmen, program hiçbir şey olmamış gibi derlenecektir.

Genel olarak, bu iyi değil. Bu nedenle, harici değişkenler yerine işlevleri kullanmak daha iyidir. Sadece bir tanım garantilidirler, ne eksik ne fazla.