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
Hatalar yapılabilir, malzeme oldukça büyüktür.
Taşıma konusu (daha doğrusu, MQL4 yöntemleriyle bir emülatör sınıfı yazma konusu) başka bir makalede ele alındı (biteceğini umuyoruz). Materyali okuma sürecinde, yazardan tüm MQL4 işlevlerini (ticaret hariç - yakında onlar için çözümlerden birini göreceksiniz) kapsayacak bir referans kitabı şeklinde bir makale yazmasını, MQL5'te her biri için bir analog sağlamasını, genel olarak, MQL4 programlarını yeniden yazanların hızlı bir şekilde bir analog bulabilmesi için hepsini bir araya getirmesini istedik. Sınırlandırılmamış arzu hakkında, dikkate alınan bölümlerin sayısından bahsediyorsak - tüm işlevleri kapsamakta ısrar ettik (250'den fazla olduğu ortaya çıktı).
Bazı bölümlerdeki fonksiyonların karşılaştırılmasına gelince - bu tam olarak bir karşılaştırma değildi. Aynı olsa bile bir analog vermek gerekiyordu. Tüm fonksiyonlar için. Yani bir karşılaştırma var gibi görünüyor, ancak karşılaştırmadan örneğin matematik fonksiyonlarının aynı olduğunu anlayabilirsiniz. Bu arada, bir tavsiye olarak, her bölümün başında bundan bahsetmek muhtemelen faydalı olacaktır, bu da dikkat edilmesi gereken bir şeydir.
Bu nedenle (emülatör fonksiyonlarının mimarisi) yazarın uygulamada açık olmayan bazı şeyleri vardı (örneğin iLowest/iHighest global Open[]...High[]..., önceden global olarak bildirilmiş ve OnInit'te AsSeries yapılmıştır), bunlar emülatörde olduğu gibi ima edilmiştir, doğal olarak fonksiyonlarda evrensellik için yerel diziler kullanmak daha iyidir.
Teknik göstergelerle çalışmaya gelince, birçok soru olabilir, onlarla çalışmak MQL4'teki gibi olmamalıdır - bunları her seferinde yerel işlevlerde oluşturmak yerine OnInit'te manuel olarak oluşturmak ve tanımlayıcılara başvurmak daha iyidir. Ancak yazar tarafından önerilen yaklaşım da işe yarar, çünkü terminal göstergeleri hemen yok etmez. Yani pek çok incelik var.
Önemli olan, artık tartışacak bir şeylerin olması, hatalar bulursanız (önerilen işlev yapısından kaynaklananlar dahil) - varyantlarınızı sunun.
eğer bu bi̇r referans ki̇tabi i̇se, bir referans ki̇tabi olsun!!!
ya da balık ve et değil
ara hesaplamalar i̇çi̇n neden global di̇zi̇ler kullanilir!Bir fonksiyon içinde bu tür hesaplamalar için yer ayırmak mümkündür. neden referans koyuyorsunuz?
bazı fonksiyonlarda atalarınız değiştirilir.
yine aynı yahigest!!! bir fonksiyonun içindeki global tamponu değiştirmek atas!
Gerçi ben yazarken çoktan düzeltildi ama eminim bu tarz yazı boyunca izlenecektir.
mcl4 fiyat yapısı bu dizilere eriştiğinde..... bulacaktır.
Sırada 6 bölümden oluşan karşılaştırmalarımız var!
mcl4 fonksiyonlarından mcl4'e
sadece karşılaştırmalar.
Sonra birdenbire başlıyor
fonksiyon değiştirme tablosu.
2 bölüm
sonra tekrar bir karşılaştırma
3 bölüm
o zaman ikameler
fonksiyonlar!
ve sonra tekrar....
Tabloda ilk olarak µl4 fonksiyonu ve ardından 2 çeşit hücre var.
mcl5'e yeniden yazılmış bir ikame içerir.
ya da 2 tip hücre, sadece aynı fonksiyon.
ve bu tüm makale boyunca devam ediyor... yani bu µl4'e bir aktarım mı yoksa bir referans kitabı mı.
bir şeyi yalnız bırakın!
çalışmayan bir duruma yol açacak birçok kusur da var.
çünkü µl5 dizilerinde veri depolamanın özellikleri hakkında zaten çok şey öğrendim.
ve birçok işlevde gerekli olacaktır, hatta dizinin boyutunu belirlemenin gerekli olduğunu söyleyebilirim,
bazıları indeksleme yönünü belirlemek zorunda kalacaktır.
mcl4 ve mcl5 ortamındaki veri işleme farklılığından dolayı.
çünkü şimdiden derleneceğini ama başlamayacağını hissedebiliyorum.
Elbette bahsettiğiniz türden bir rehber gerçekten çok faydalı olacaktır.
Makalede birkaç ilginç nokta var
ama ne balık ne de et.
Sadece bir fonksiyon ve onun mql5 üzerindeki benzerini değiştirmeden bırakın.
bu, mql4 göstergesinin mql5'e tamamen yeniden yazılması için yararlı olacaktır.
tüm dokümantasyon referansları ile!
bu kaba ikamelerin canı cehenneme.
elbette, bu kadar sert bir eleştiri için özür dilerim, ancak en çok beklendiği zaman böyle ham bir makale yayınlamak.
böyle kritik hatalarla.
bundan ne öğrenilecek....
açıkça sapkınlık...
Ve son olarak, neden hiç ek yok???
Bu kadar çok fonksiyon taşınmışsa, neden .mqh dosyası yok?
tüm fonksiyonların toplandığı... özellikle 250 tanesi... mqh4'ü aktarmak için 1'er 1'er kopyalayın ....
yine yazarın kasıtlı olarak bir şeyleri gizlemeye çalıştığını gösteriyor.
Saygılarımla Vasily.
...
çünkü derlendiğinin kokusunu alabiliyorum ama başlamıyor.
...
Gerçekten de hatasız derlenecek bir fonksiyon yazmak, onu kodunuza güvenle dahil edebileceğiniz anlamına gelmez. En büyük sorun program mantığını tercüme etmektir. Bu şiir çevirmeye benzer: kelimesi kelimesine çevirmişsinizdir ama kafiyeli değildir. Bu yüzden sadece fonksiyonları çevirmek yeterli değildir. Bir dilden diğerine dönüştürme görevi göründüğü kadar basit değildir.
Göstergeleri, komut dosyalarını ve Uzman Danışmanları MQL5'e aktarmak için basit ve net bir mekanizmaya sahip bir emülatör şeklinde bir çözüm görüyorum. Şu anda bunun üzerinde çalışıyorum.
Eğer bu bir rehber kitapsa, bırakın rehber kitap olsun!
Balık ve patates kızartması değil.
....
Vasily, yapıcı eleştirileriniz için teşekkür ederim, umarım yazar istekleri dikkate alır ve global diziler kullanmadan kendi kendine yeterli işlevlerin çeşitlerini sağlar.
Makalenin bir referans olması amaçlanmıştı - MQL4 ve MQL5 işlevleri arasında karşılıklar sağlamak.
Yazarın bir şeyleri gizlemeye çalıştığı izleniminin nedeni muhtemelen budur: minimum açıklamalar, çok sayıda tablo, tam kullanım örnekleri yok. Ancak bu, türün bir özelliğidir.
Fonksiyonlarla çalışmanın birçok inceliği vardır, ayrıntılar ayrıntılı olarak ve örneklerle ele alınmalıdır, ancak bunlar başka makalelerin konularıdır - umarız ortaya çıkarlar. MQL4'ten geçiş konusu bu makale ile tüketilmekten çok uzaktır, birçok ilginç materyal hazırlanmaktadır ve yakında yayınlanacaktır.
.
Şu şekilde anlaşılmalıdır: uygulama çok karmaşıktır ve gerekçelendirilmemiştir. Sonuçta amaç, MQL4 işlevlerini tamamen terk etmektir.
Aynen öyle. Önemli olan, sistem mimarisindeki hangi değişikliklerden dolayı şimdi hangi (diğer) araçların kullanılması gerektiğini açıklamaktır. Bu materyal bir referans kitabı şeklinde verildiğinden, içindeki tüm hücreleri bir "çözüm" ile doldurmak önemlidir. Eğer bir analog yoksa, o zaman başka bir yaklaşım vardır.
En azından her gösterge için bir kitap okumak zor.
Ben bile bununla övünemem.
... tüm kutuları "çözüm" ile doldurmak önemlidir. Benzerinin olmaması, başka bir yaklaşım olduğu anlamına gelir.
Bölüm 17 "çözüm "e atıfta bulunarak eklenmiştir.
Öncelikle hangi "analogu olmayan" özelliklere dikkat edilmesi gerektiğini önerin, çünkü hepsi çok ilgili ve gerekli değil. Değişiklikleri yapmaya çalışacağım.
17 iyi. İlk sıra hakkında karar vermek bana düşmez. mql4'ü mql5'e dönüştürecek herkesin kendi sırası olacaktır. Hiçbir şeyi kaçırmamak için, AccountFreeMarginCheck, AccountFreeMarginMode, ArrayCopyRates, ArrayDimension, vb. ile başlayarak yukarıdan aşağıya doğru sırayı doldururdum (sadece 9 tane kaldı).
Sevgili Vasily!
Yorumlarınız için teşekkür ederiz, bölüm 18'in işlevleri güncellendi. Lütfen güncel sürümü kontrol edin.
Yazar çok fazla çalışma yaptı, hatalar olabilir, bunları birlikte düzelteceğiz.
TFMigrate(int tf) fonksiyonu MQL5 zaman dilimlerinin doğru değerlerini yerine koymak için gereklidir. Örneğin, MQL4'te PERIOD_H1 sabitinin sayısal değeri 60'tır ve MQL5'te PERIOD_H1=16385'in sayısal değeri, yani TFMigrate(60)=16385'tir.
Bana göre, geçiş koşullarında TF ile çalışmak için iki fonksiyon gereklidir:
1. Saniye sayısını TF'ye dönüştürür - örneğin ENUM_TIMEFRAMES SecondToPeriod (int Value);
2. Periyodu saniyeye dönüştürür - örneğin int PeriodToSecond(ENUM_TIMEFRAMES Value).
Bunu en başta geçiş modülümde başarıyla yaptım (ayrıca bir DLL seçeneği de var).
PS
MQL4 ile maksimum uyumluluk için, şahsen standart olmayan tüm dönemlerden kurtuldum