Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Bunun için MQL4'te OOP ile programlayamazsınız, bu yüzden hala daha popüler.
Kodumu zaten gösterdim ve tekrar göstereceğim:
Bu işlem işlemcisi arayüzüdür - hem MT4 hem de MT5 için tamamen aynıdır.
Kullanıcı sadece bu arayüzü alır - ve alım satım işlemleri için tüm olanaklara sahiptir. Nerede olduğunu bilmesine bile gerek yok - MT4 veya MT5'te. Bir satın alma yapmanız gerekiyor - Satın Alma işlevini arayın. sizin için açık bir ticaret bileşeninin biletini dolduracak (MT4 için bu bir emirdir, MT5 için bir pozisyondur) ve ticaret sunucusunun dönüş kodunu döndürür.
MT4 ve MT5 protokolleri arasındaki farkı düşünmenize bile gerek yok - arayüz ihtiyacınız olan her şeyi sağlar.
Bunların hepsi OOP'nin özellikleridir.
Kodumu zaten gösterdim ve tekrar göstereceğim:
Bu işlem işlemcisi arayüzüdür - hem MT4 hem de MT5 için tamamen aynıdır.
Kullanıcı sadece bu arayüzü alır - ve alım satım işlemleri için tüm olanaklara sahiptir. Kesinlikle nerede olduğunu bilmesine bile gerek yok - MT4 veya MT5'te.
Ve hepsi OOP sayesinde.
Tipik durumlar için kullanım örnekleri var mı?
Teorinize göre, MQL4=MQL5 ise, MQL4, MT5'te başlatılabilir ve bunun tersi de geçerlidir.
Tipik durumlar için kullanım örnekleri var mı?
Diyelim ki, TP-SL'yi ticaret işlemcisine değiştirme isteği gönderen işlevim:
İlk olarak, Uzman Danışmanın nesneleri-bölümleri, ticaret işlemleri için talepler oluşturur (işte bu taleplerden biri - TP-SL'yi değiştirmek için). Bundan sonra, işlem işlemcisine işlem eylemi hakkında bilgi göndermek için tüm istekler için ProceedRequestInto()işlevi çağrılır .
Ticaret işlemcisinin kendisi aşağıdaki sınıfın bir nesnesidir:
Yani, platforma bağlı olarak CTradeProcessor sınıfı ya CMT5TradeProcessor sınıfından ya da CMT4TradeProceccor sınıfından miras alınır.
Bütün bunlar, elbette, OOP olmadan yapılabilir - anahtarlar ve ifdef'lerin yardımıyla. Ancak bence OOP yaklaşımı çok daha uygun ve net. Ve en önemlisi - varlıkları birbirinden ayırmanıza ve küresel değişkenler yığınından kurtulmanıza izin verir.
Bu arada, bir "OOP yankısı" daha - sadece mevduatlarla çalışmanın ek işlevlerinde. İşlem işlemcisi - uygun olmayan gecikme biletleriyle çalışır - MT4 ve MT5'teki biletlere erişim farklıdır. Bu nedenle, sipariş arayüzünün halefi olan ortak bir COrderInfoCore sınıfı vardır. Bu nesneye bir işaretçiyi işlemciye iletmek çok daha uygundur. Buna göre, aynı şekilde - platforma bağlı yerleri atlıyoruz.
Diyelim ki, TP-SL'yi ticaret işlemcisine değiştirme isteği gönderen işlevim:
İlk olarak, Uzman Danışmanın nesneleri-bölümleri, ticaret işlemleri için talepler oluşturur (işte bu taleplerden biri - TP-SL'yi değiştirmek için). Bundan sonra, işlem işlemcisine işlem eylemi hakkında bilgi göndermek için tüm istekler için ProceedRequestInto()işlevi çağrılır .
Kodum MT4 ve MT5'te tamamen değişmeden çalışıyor.
Ve neden farklı terminallerde çalıştırın?
Aslında içeride neler olduğunu anlamak bana çok karmaşık geliyor... Ve işin özünü anlamadan, birinin onu kullanması pek olası değil... MT5 ve MT5 için ayrı bir versiyon yazmak daha kolay değil mi? gerektiğinde bağla?
George Merts :
Ancak bence OOP yaklaşımı çok daha uygun ve net. Ve en önemlisi - varlıkları birbirinden ayırmanıza ve küresel değişkenler yığınından kurtulmanıza izin verir.
Mesele şu ki, her şeyi her şeyden izole ederek, gerekli tüm değişkenlerin mevcut değerlerini bilmeniz gerektiğinde, kodun yeterli hata ayıklamasının imkansızlığından bahsetmiyorum bile, bu tür kodlarla başa çıkmak çok daha zor olacaktır. ..
Ve neden farklı terminallerde çalıştırın?
Ve sonra, ana hesabım MT4'te açık ve MT5'teki strateji test cihazı çok daha iyi.
Evet ve Freelance'da, söylentilere göre, müşterilerin çok sık bir gereksinimi - "hem MT4 hem de MT5 üzerinde çalışmak" - yani bu bir tesadüf değil. Kendim Freelance çalışmak için bir neden göremiyorum, ancak orada çalışanlara müşterilerin neden çapraz platforma ihtiyaç duyduğunu sorabilirsiniz.
Neden "gerçekten içeride neler olduğunu anlamak"? Platformdan bağımsız olarak bir eylem gerçekleştiren sabit bir arayüz var - ve onu kullanıyoruz. Ve düşük seviyede ne var - fark nedir?