Çeviri zorlukları :)

 

Bir gecede projemi MQL4'ten 5'e nasıl aktardığımı anlatmak istiyorum. Hemen, Andrey heyecanlanmasın diye, gösteriş yapmıyorum, sadece uygulama hakkında konuşmak istiyorum, her şey eğlenceli ve basit oldu)

Yani dün öğleden sonra yorgundum, yarım saat uzandım ve gece bir buçukta uyandım. Sanırım horladınız, şimdi ne yapacaksınız, uyuyacaksınız.

Ve uzun zamandır scalper projemi hedge ile MT4'ten MT5'e aktarmak istiyordum, uzun zaman önce robo'dan hedge demolarına başlamıştım, ama gerçekten zamanım yoktu. Ana amaç, robo'dan gerçek keneler üzerinde test etmektir. Optimize ediciyi, hızın gerçekten tatmin edici olduğu bulutta çalıştırın.

Şimdi modeli Matlab'da çalıştırıyorum, ancak bu hala basitleştirilmiş bir sürüm ve kod ve modeldeki değişiklikleri senkronize etmek daha zor, daha sıkıcı hale geliyor. Diyelim ki model sürekli olarak gerçek MQL4 kodunun gerisinde kalıyor.

********** Taşıma Süreci *****

Dolayısıyla projem bir .mq4 dosyası ve bir grup .mqh sınıfından oluşuyor. Her şeyi 5-ku'ya taşıdı, .mq4'ü .mq5 olarak yeniden adlandırdı, sınıfları olduğu gibi bıraktı. Derleme başlatıldı, doğal olarak 100500 hata. Tamam, zorluklar bizi korkutmaz, hatalara bakarız. Toplu, hemen hemen her yerde bulunan MarketInfo ile ilişkilidir. Tamam, tembel bir kediyim, tembelliğin ilkeleri ellerimle temizlememe izin vermiyor)) Visual Studio'yu başlatıyoruz ve orada zaten MQL4/5 dosyalarıyla çalışmak için bir projem var.

Bu arada, YouTube'un 2011'den kalma eski videomu, MQL dosyalarını olumlu olarak algılaması için stüdyo 2010'u nasıl kuracağımı hala dikkatle saklıyorum. Hiçbir şey değişmedi, şimdi hala kullanabilirsiniz.

Video 2011'den, MQL4'e çok küfür edebilirim, şimdi durum değişti, dil normal )) Tekrar dinlemek için çok tembelim ama geçmişin yankıları sızabiliyor.

https://www.youtube.com/watch?v=oQs4qqwhqzg

Böylece, her şeyi stüdyoya attım, oradaki olanaklar, tek bir dosya için değil, tüm proje için arama ve değiştirmenin hemen yapılabilmesidir. Tüm MarketInfo, MQL5'ten analoglarla değiştirildi. Birkaç küçük düzeltmeden sonra, beklendiği gibi tüm hatalar COrderManager sınıfında kaldı. Bu, siparişleri yöneten, ızgaraları ve her türlü şeyi oluşturan ve değiştiren benim sınıfım.

Yeniden yapmak muhtemelen 3 saatimi aldı, CTrade Standard Library sınıfını kullandım ancak bazı özellikler yeterli olmadığı için ondan bir bebek doğurmak zorunda kaldım.

--------------------------

Çözüm. Evet, saçmalık, tüm bu zavallı bir programcının ilk beşe geçmesinin ne kadar zor olduğuyla ilgili inlemeler! Geçiş sırasında, büyük bir tavada etli patates kızarttım, geceleri yürüyüşe çıktım, geceleri yürümeyi seviyorum, Bruce W. ile küçük bir film izledim, peki ve ellerimin yapmadığı yerleri önemli ölçüde iyileştirdim. ulaşmak. Şimdi bir indirim yapmak oldukça mümkün, aksi takdirde geçenlerde eski bir söz hatırlatıldı ve konu geçen gün tekrar ortaya çıktı.

Evet, COrderManager sınıfı, Standart Kitaplığı kullanarak çok fazla kilo verdi

Настройка Visual Studio 2010 для редактирования MQL файлов
Настройка Visual Studio 2010 для редактирования MQL файлов
  • 2011.07.01
  • www.youtube.com
Как известно, редактор Metatrader 4 далек от совершенства. Часто удобно редактировать большие проекты в VS2010. На этом видео я показываю процесс настройки.
 
Andrey F. Zelinsky :

"Gece yürüyüşe çıktıktan" sonra "bu yerleri iyileştirdi" nasıl anlaşılır?

Gece mi yürüdün yoksa yürüyüşe mi çıktın?

Ofiste uzun süre oturmama gerek yok, genellikle geceleri yürüyorum) Projede uzun zamandır yenilemek istediğim yerleri iyileştirdim ama çok tembeldim ve böyle oldu. Ve burada, böyle bir şey için, dönüşüm, bir şekilde bir araya geldi ve birçok şeyi yeniden yaptı.

Andrey, "yürümek" ve "darbelemek" iki farklı şeydir))

 

Alexey, sana bir soru:

Prosedürel bir tarzda yazılmış projeleri tercüme etmek ne kadar uzun ve zor? Neden prosedürde? - Alıştım, her durum için bir şablon var, içindeki koşullar için 3-5 satır yazıyorum ve herhangi bir baykuş tüm hata ayıklama ile yarım saat içinde hazır

Takip etmek:

Pozisyon açma fonksiyonunu dördü ile aynı formda kullanmak için yeniden yazmak mümkün mü, sadece isimlerine alıştım ve birkaç yıl içinde kullanmaya başladım ve hiçbir kütüphanenin bağlanmasına gerek yok.

Peki, grafik açma ve oluşturma koşulları bloğu:

Hala çok fazla grafik var, bir şekilde beşincide bir kez yazdım, bu yüzden .opu yapılan zaman ve ilk noktayı ve ikinciyi seçmenin bedeli ile bir şey var. Dördüncüde şöyle: ObjectSetInteger(0,nm,OBJPROP_TIME 1 , t1) ve ObjectSetInteger(0,nm,OBJPROP_TIME 2 , t2), ancak beşincide bu yapı çalışmıyor(

Cevabınız için şimdiden teşekkür ederiz!

 
Alexey Volchanskiy :

...

Çözüm. Evet, çöp, tüm bu zavallı bir programcının ilk beşe geçmesinin ne kadar zor olduğuyla ilgili inlemeler! ...

Burada Tanrı'nın armağanını sahanda yumurta ile karıştırmak gerekli değildir. EA birkaç siparişle çalışıyorsa ve netleştirmeye aktarılıyorsa, bu gerçekçi olmayan bir iştir.
 

Kodu taşımamayı daha kolay buluyorum. Ve sıfırdan yaz. Böylece daha kaliteli olacaktır.

 
Dmitry Fedoseev :
Burada Tanrı'nın armağanını sahanda yumurta ile karıştırmak gerekli değildir. EA birkaç siparişle çalışıyorsa ve netleştirmeye aktarılıyorsa, bu gerçekçi olmayan bir iştir.

Tabii ki ilk yazımda yazmıştım " Ve uzun süredir skalper projemi MT4'ten MT5'e hedge ile aktarmak istiyordum, zaten robodan hedge demolarına uzun zamandır başlamıştım ama gerçekten vakit yoktu. " muhtemelen bu detayları gözden kaçırmıştır.

Bu yüzden sadece netleştirme varken MT5'e geçmedim. Şimdi, bir çitle yavaşça sürünüyorum.

Gönderi, geçişin tamamen teknik tarafıyla ilgiliydi.

 
Anton Zverev :

Kodu taşımamak bana daha kolay geliyor. Ve sıfırdan yaz. Böylece daha kaliteli olacaktır.

Niye ya? Diller aynı, zaman serilerine erişim işlevleri farklıdır, bazıları ise, bu, yazdığım gibi tüm projeyi değiştirerek VS'de çözüldü. Hızlı ve kolaydır. Ticaret bölümüyle ilgili bazı zorluklar, emirlerin işlenmesine ek olarak pozisyonların işlenmesini sınıfa tanıtmak zorunda kaldım. Ancak, prensipte, aynı zamanda saçmalık.

Bir kez daha, her ihtimale karşı - Ben çitten bahsediyorum.

 
Vitaly Muzichenko :

Alexey, sana bir soru:

Prosedürel bir tarzda yazılmış projeleri tercüme etmek ne kadar uzun ve zor? Neden prosedürde? - Alıştım, her durum için bir şablon var, içindeki koşullar için 3-5 satır yazıyorum ve herhangi bir baykuş tüm hata ayıklama ile yarım saat içinde hazır

Takip etmek:

Pozisyon açma fonksiyonunu dördü ile aynı formda kullanmak için yeniden yazmak mümkün mü, sadece isimlerine alıştım ve birkaç yıl içinde kullanmaya başladım ve hiçbir kütüphanenin bağlanmasına gerek yok.

Peki, grafik açma ve oluşturma koşulları bloğu:

Hala çok fazla grafik var, bir şekilde beşincide bir kez yazdım, bu yüzden .opu yapılan zaman ve ilk noktayı ve ikinciyi seçmenin bedeli ile bir şey var. Dördüncüde şöyle: ObjectSetInteger(0,nm,OBJPROP_TIME 1 , t1) ve ObjectSetInteger(0,nm,OBJPROP_TIME 2 , t2), ancak beşincide bu yapı çalışmıyor(

Cevabınız için şimdiden teşekkür ederiz!

Vitaly, her şeyi prosedürel bir tarzda bırakabilmeniz için kimse sizi OOP kullanmaya zorlamaz. Sadece Standart Kütüphane benim için net, sınıfımı ondan doğurdum, bir şeyler ekledim. Evet ve her şeyi OOP'de yaptım.

ters sırayla cevap veriyorum

1. Senaryoyu grafiklerle yeniden çalıştım, farklılıklar var ama çok küçük olanlar. Temel olarak, isteğe bağlı olan dördünde pencereyi ve alt pencereyi açıkça belirtmeniz gerekir.

2. Açık pozisyonlara gelince, CTrade sınıfını kullanırsanız, MQL4 fonksiyonlarının neredeyse doğrudan analogları vardır.

3. Bence uzun sürmez.

Serbest çalışmaktan bahsediyorsanız, çok hızlı bir şekilde dahil olabilirsiniz. Temel olarak, siparişlerin, anlaşmaların ve pozisyonların farklı şeyler olduğu gerçeğine alışmanız gerekir. ve çitin üzerinde.

 
Anton Zverev :

Kodu taşımamayı daha kolay buluyorum. Ve sıfırdan yaz. Böylece daha kaliteli olacaktır.

Bazen işini, karını, tüm hayatını bırakıp sıfırdan başlamak iyidir. Ben çok kez yaptım. Her şey daha da güzelleşiyor :)
 
Alexey Volchanskiy :
Bazen işini, karını, tüm hayatını bırakıp sıfırdan başlamak iyidir. Ben çok kez yaptım. Her şey daha da güzelleşiyor :)
))
 
Şimdi bana saldıracaklar - hissediyorum. OOP tarzında yazmak gerekiyor ve mutluluk olacak.
Ve sonra böyle bir hareket olacak - kolay bir gece yürüyüşü.