MQL4'te programlama üzerine çevrimiçi kitabın beta sürümü - Sergey Kovalev (SK.) - sayfa 11
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
SK'ye
1. Ders kitabı beta versiyonu olarak yayınlandı, yani. eleştiri önerisi ile.
2. Pekala, teklife gerildim ve "tüm diziler tanım gereği statiktir" satırını buldum.))) yani. bunlar benim sorunlarım değil.
3. Ders kitabının bu eleştirilen satırını keyfi olarak izlerseniz, tüm dizilerin tanım gereği statik olduğu varsayılırsa, " ArrayMinimum işlevi için hatalı başlangıç konumu 0" izleyicisinde bir adres hatası alabilirsiniz.
(bu tek satır ders kitabının esasına gölge düşürmez, size genel saygı SK )
4. Yani. Statik bir dizi, öncelikle bellek tahsisi açısındandır. bellek yeniden tahsis edilirse, yeniden tahsis edilebilir,
veya her öğenin yeni bir başlatması olmayabilir.
MQL4'te ne görüyoruz? Her çağrı, her öğeyi tanımdan açık bir şekilde varsayılan olarak sıfıra sıfırlar.
Onlar. alt rutinlerdeki veriler, statik bir ön bildirim olmadan saklanmaz.
Bu, MQL4 alt programlarının değişken belleğin dinamik tahsisi ile yürütüldüğü anlamına gelir.
MQL4'te varsayılan olarak tüm değişkenlerin ve açık bir boyutu olmayan tüm dizilerin dinamik olduğu açıktır. Aksi takdirde, statik bir açıklama ile sabitlenmeleri gerekir.
5. Örneğin, dinamik bellek tahsisi, beyan double a[][]..[]; boş boyutlarla
ancak, adreslemeden programcının sorumlu olması gerektiği belirtilmelidir.
(Yukarıdaki örnekte, standart işlev eski referansa erişiyor ve dizinin sınırları içinde değil.)
SK'ye
TAMAM.
Kitap Rusça yazılmıştır. Geliştiriciler, İngilizce'ye çevirinin tüm hızıyla devam ettiğini ve ardından Çince olarak görüneceğini söylüyor. Eminim sadece açıklamalar tercüme edilmiştir; kimse kaynak koduna dokunmayacak.
Pek çok programcı, doğası gereği, kendi dillerinden değişkenlere kolay adlar verir, örneğin, burada tanıştığım sitede massiv ( masiv ), Koef ve hatta MuH_IIIuPuHa_KaHaJIa . Bu yüzden, öğreticiyi çevirirken aşağıdaki kodla karşılaştım:
Bir Çin Mahallesi sakini, Tip değişkenine bakarken ne derdi? Ne olduğunu anlıyoruz, ama diğerleri?
(Burada bulunur: https://book.mql4.com/en/trading/orderclose )
Soru sıradaki.
Kitap Rusça yazılmıştır. Geliştiriciler, İngilizce'ye çevirinin tüm hızıyla devam ettiğini ve ardından Çince olarak görüneceğini söylüyor. Sadece açıklamaların tercüme edildiğinden eminim; kimse kaynak koduna dokunmayacak.
Pek çok programcı, doğası gereği, dillerinden değişkenlere insan tarafından okunabilir isimler verir, örneğin, burada tanıştığım sitede massiv ( masiv ), Koef ve hatta MuH_IIIuPuHa_KaHaJIa . Bu yüzden, öğreticiyi çevirirken aşağıdaki kodla karşılaştım:
Bir Çin Mahallesi sakini, Tip değişkenine bakarken ne derdi? Ne olduğunu anlıyoruz, ama diğerleri?
(Burada bulunur: https://book.mql4.com/en/trading/orderclose )
Elbette örneklerdeki değişkenlerin isimlerine dokunmayacağız - örneğin Çince'de kaynak kodlarında hiyeroglif kullanılmaz, yine de Latin alfabesi ile uğraşmak zorunda kalacaklar. Bu değişkenin anlamını anlamak için Chinatown sakini sadece yoruma bakacaktır. Ayrıca İngilizce konuşulan ülkelerde yaşayanlar da Tip kelimesini "tip" olarak algılamayacaktır. Çünkü İngilizcede "type" type olacaktır. Ve İpucu bir "bahşiş" veya başka bir "ipucudur". Ancak bu, Rusça konuşan geliştiricilerin kodlarını anlamalarını engellemez. ))
Ama bence anadili İngilizce olan birinin yine de değişkenlerin adlarına bakması gerekiyor. Tırmığa basmamak için. Aniden Tip değişkeni - sesi, ortasında U harfi olan üç harfli Rusça kelimeyle çakışıyor ( .u. ) Ve eğer bir duş olacaksa Tanrıya şükür :-) . Ve değilse ? Bu kitap güzelleştirmeyecek.
Belki bu şekilde daha kolay ve daha doğru olur
int _OrdetType= OrderType ();
if ( _OrdetType > 1 ) ....
Okuyucunun yine de biraz düşüneceği varsayılmaktadır..
Burada https://book.mql4.com/ru/build/lots bölme işaretleri eksik
orada
Lots_New=MathFloor(Serbest*Yüzde100Bir_Lot/Adım)*Adım;// Calc
İhtiyaç
Lots_New=MathFloor(Serbest*Yüzde/100/Bir_Lot/Adım)*Adım;// Hesap
Kodu gördüğüm gibi biraz uygunsuz. Bir parça almak istiyorum ama hepsini değil. Onlar. Gördüklerimi panoya kopyalarım ve programımın metnine yapıştırırım. Ama ekleme yanlış. Tüm kodlar bir satırda gider. Kitaptaki satır sonu kodu ve MQL editörü büyük olasılıkla eşleşmiyor
işte başka bir küçük düzenleme.
https://book.mql4.com/ru/build/trading
Orada
switch() kontrolü, etiket durumu 10'a (blok 2-3) aktarılır.
İhtiyaç
…. (blok 2).
Burada https://book.mql4.com/ru/build/lots bölme işaretleri eksik
orada
Lots_New=MathFloor(Serbest*Yüzde100Bir_Lot/Adım)*Adım;// Calc
İhtiyaç
Lots_New=MathFloor(Serbest*Yüzde/100/Bir_Lot/Adım)*Adım;// Hesap
Kodu gördüğüm gibi biraz uygunsuz. Bir parça almak istiyorum ama hepsini değil. Onlar. Gördüklerimi panoya kopyalarım ve programımın metnine yapıştırırım. Ama ekleme yanlış. Tüm kodlar bir satırda gider. Kitaptaki satır sonu kodu ve MQL editörü büyük olasılıkla eşleşmiyor
Evet, aynı biçimlendirme sorunları. Yarın düzelteceğiz.
Hatayı bulduğunuz için teşekkürler.
Tamamlanan tüm kodlar için bağlantılı dosyalar vardır. Dosyalardaki kodun doğru olduğuna inanılıyor. Bu arada, yazım hataları ve yanlışlıklar bulmak için bir şablon olarak da kullanılabilir.
işte başka bir küçük düzenleme.
https://book.mql4.com/ru/build/trading
Orada
switch() kontrolü, etiket durumu 10'a (blok 2-3) aktarılır.
İhtiyaç
…. (blok 2).
Ve düzeltmeye gerek yok. Tüm bloklar için başlangıç ve bitiş yeri belirtilir. Bu durumda 2 başlangıç, 3 sondur.
Yine de teşekkürler :)