MQL5 hakkında geri bildirim

 

MQL4'ü uzun süredir kullanıyorum ve OOP'nin sonunda MQL5'te görüneceğini duyduğuma çok sevindim, çünkü daha esnek otomatik analiz sistemlerini daha hızlı yazabileceğim. Ama ne kadar hayal kırıklığına uğradığımı anlatacak kelime bulamıyorum. İşaretçilerle tam olarak çalışamamaktan , nesnelerle kolay ve hızlı bir şekilde çalışamamaktan korktum, bu özellikle vakaların %95'inde işe yaramaz sistemler geliştirmek için geçerli. Hepimiz bazı teorileri test etmek, daha sonra fikrin başarısızlığını doğrulamak ve onu optimize etmek için otomatik veri analizi yapmak için MQL'de programlar yazıyoruz ve bu çok hızlı bir şekilde yapılmalıdır, çünkü fikrin birçok kez optimize edilmesi gerekecek. zamanlar. Dili görmezden gelsek bile, bu bağlamda ticaret sistemlerinin veya analiz sistemlerinin geliştirilmesi nankör bir iş çünkü. büyük olasılıkla yetersiz veya işe yaramaz olacağını bilerek çalışmaya başlarsınız. MQL5'in geliştiricileri bize kendi sözleriyle kendimize ateş etmenin imkansız olduğu, ancak basit bir fikri veya başka bir deyişle temel bir fikri uygulamak için onlarca saat süren süper güvenli bir araç verdiyse ne diyebiliriz? algoritma.

Bu yüzden, MQL5 geliştiricileri, Stroustrup'un kitabını okurken ilginç bir paragraf okudum ve MQL5 "ürününüzü" anında hatırladım, bütünüyle alıntı yapacağım:

"Düşündüğümüz dil (program yazma) ile hayal edebileceğimiz problemler (çözümler) arasındaki bağlantı çok yakındır. Bu nedenle programlama hatalarını önlemek için dilin yeteneklerini kısıtlamak en iyi ihtimalle tehlikelidir. doğal diller söz konusu olduğunda, en az iki dil bilgisi büyük fayda sağlar.Bir dil, programcıya bir dizi kavramsal araç sağlar.Bu araçlar eldeki görev için yetersizse, basitçe göz ardı edilirler.İyi tasarım ve hataların olmaması, basitçe dilde belirli özelliklerin varlığı veya yokluğu ile garanti edilemez. "

Dolayısıyla, yukarıdaki incelememe göre, programlama uğruna programladığınız şey, MQL'nin gerçekleştirmek için tasarlandığı amaçlar için tamamen kullanılamaz. MQL5'te OOP gibi bir aracı basitçe görmezden gelmem gerektiği için teşekkür ederim.

 

Bazı örnekler verilecekti.

İşaretçilerle tam olarak çalışamamanız ve nesnelerle kolay ve hızlı bir şekilde çalışamamanız ne anlama gelir? Genel olarak, büyük ölçekli planlar geliştirilirken bununla ilgili hiçbir sorun ortaya çıkmamıştır.

 

İşaretçilerle çalışmak "dolu" (yani tehlikeli) hiçbir modern, yönetilen ve güvenli dilde artık mümkün değil. Özellikle güvenlik ve kontrol edilebilirliğin önce gelmesi gereken MQL4/MQL5'te.

Diğer her şey mevcut ve mevcuttur. Ve güvenli işaretçiler de var.

Büyük olasılıkla, anlamadınız, ancak kendi düşünce yığınınızı ortaya çıkardınız. Bu kanıtlanmamış akışı çağırmanın başka bir yolu yok.

 
Renat Fatkhullin :

İşaretçilerle çalışmak "dolu" (yani tehlikeli) hiçbir modern, yönetilen ve güvenli dilde artık mümkün değil. Özellikle güvenlik ve kontrolün önce gelmesi gereken MQL4/MQL5'te.

Diğer her şey mevcut ve mevcuttur. Ve güvenli işaretçiler de var.

Büyük olasılıkla, anlamadınız, ancak kendi düşünce yığınınızı ortaya çıkardınız. Bu kanıtlanmamış akışı çağırmanın başka bir yolu yok.

Rica ederim:

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

https://www.mql5.com/en/forum/1111/

Bir işaretçiye farklı bir adres atayamayacağım, yaygın olarak kullanılan bir dili adlandırın? Aynı türden bir başvuruya başka bir nesneye bir tür başvuru atayamayacağım en az bir yönetilen dil de adlandırın? Dilinizin bu sınırlamaları nedeniyle başka nerede bir yapıcı veya kopyalama işlevi tanımlamak zorunda kalacağım?

Ve eğer kontrol edilebilirlik sizin için çok önemliyse, o zaman neden diğer kontrollü diller benzer kısıtlamalar getirmiyor?

Şahsen benim için, her şeyden önce güvenlik ve kontrol edilebilirlik değil, fikri hayata geçirme hızımdır, bu fikir ticareti bağlamında son derece doğrudur, buna katılmayanlar ya kendi değerlerinin değerini abartırlar. sistemler veya programlama uğruna program ve belirli bir sonuç için değil.

 

Renat, ilk gönderide yazdığım her şeyi kendin tanıyorsun ve güvenlikle esneklik kaybını örtüyor, tartışılmaz bir avantaj derecesine yükseltiyorsun, ancak durum böyle değil.

Битый  указатель  (именно указатель как сущность и рабочая единица языка) контролируется системой и безопасно обрабатывается, выдавая при необходимости рантайм ошибку, указывая на ошибку автора. А вот "физическая" ссылка не может быть проконтролирована, да ее и нет в языке (не путайте с передачей  параметра по ссылке , где это лишь контролируемый системой метод связи).

Tehlikeli referansları devre dışı bırakmak, C++'ın şimdi olduğu canavardan güvenli bir dil oluşturmaya yönelik ilk adımdır. Arbaletten kurtularak bilinçli olarak esneklikte kaybederek , bağlantıları kasten ve bilinçli olarak kaldırdık.

Kendimi ayağımdan vurayım Bu yetenek olmadan, programlamayı kontrol etmem gerekiyor ama uygulamak istediğim fikri kontrol etmek istiyorum.
 
urusov :

Rica ederim:

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

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

Bir işaretçiye farklı bir adres atayamayacağım, yaygın olarak kullanılan bir dili adlandırın? Aynı türden bir başvuruya başka bir nesneye bir tür başvuru atayamayacağım en az bir yönetilen dil de adlandırın? Dilinizin bu sınırlamaları nedeniyle başka nerede bir yapıcı veya kopyalama işlevi tanımlamak zorunda kalacağım?

Ve eğer kontrol edilebilirlik sizin için çok önemliyse, o zaman neden diğer kontrollü diller benzer kısıtlamalar getirmiyor?

Şahsen benim için, her şeyden önce güvenlik ve kontrol edilebilirlik değil, fikri hayata geçirme hızımdır, bu fikir ticareti bağlamında son derece doğrudur, buna katılmayanlar ya kendi değerlerinin değerini abartırlar. sistemler veya programlama uğruna program ve belirli bir sonuç için değil.

Tovarisch! Dil bilginizin eksikliğini geliştiricilerin sorumluluğuna atmayın. MQL5'te çeşitli nesneleri işaretçilere özgürce atayabilir ve bu nesneleri işaretçi olarak iletebilirsiniz. MQL5'teki C# ve Java gibi diğer modern dillerde olduğu gibi, açık bir tür kontrolü vardır ve bunların dönüştürülmesi yalnızca aynı sınıf hiyerarşisi (kalıtım) içinde gerçekleştirilebilir. Yine aynı davranış, C# ve Java gibi yaygın olarak kullanılan diğer dillerde uygulanmaktadır.

 
urusov :

Renat, ilk gönderide yazdığım her şeyi kendin tanıyorsun ve güvenlikle esneklik kaybını örtüyor, tartışılmaz bir avantaj derecesine yükseltiyorsun, ancak durum böyle değil.

Kendimi ayağımdan vurayım Bu yetenek olmadan, programlamayı kontrol etmem gerekiyor ama uygulamak istediğim fikri kontrol etmek istiyorum.
Önceki gönderilerinize bakılırsa, ustaca ayağınıza ateş etmeyi öğrenmişsiniz. Şimdi sadece programlamayı öğrenmem gerekiyor.
 
Ve ben 5-rka'yı seviyorum. Büyük olasılıkla, marşın konuyu anlamak için zamanı yoktu ve bir sonuç çıkarmak için acele etti. İlk başta zor, ama buna değer.
 
urusov :

Renat, ilk gönderide yazdığım her şeyi kendin tanıyorsun ve güvenlikle esneklik kaybını örtüyor, tartışılmaz bir avantaj derecesine yükseltiyorsun, ancak durum böyle değil.

Kendimi ayağımdan vurayım Bu yetenek olmadan, programlamayı kontrol etmem gerekiyor ama uygulamak istediğim fikri kontrol etmek istiyorum.

Kendinizi eğitmeli ve güvenlik hakkında daha fazla düşünmelisiniz.

Hiçbir şeyi kabul etmiyorum, ancak MQL4/MQL5'te neyin, nasıl ve neden yapıldığını (belirli bir yerin açık bir göstergesi olmadan bile atılan) referanslarda haklı çıkardım. 2001'den beri (MQL piyasaya sürüldüğünde), ticaret platformları için uygulamalı dillerin geliştirilmesindeki pratik deneyim, küresel bir sonuç elde etmek için neyin gerekli olduğunu açıkça anlamamızı sağlar.


Sınırsız hız mı istiyorsunuz? C++ ile yazın ve DLL'yi ekleyin. Ancak MQL5'te bile yerel C++ derleyicilerini yakaladık: Yeni MQL5 derleyicisini x64 platformları için test ediyoruz - hesaplamaları 2 ila 10 kat hızlandırıyoruz!

 
urusov :

Bir işaretçiye farklı bir adres atayamayacağım, yaygın olarak kullanılan bir dili adlandırın? Aynı türden bir başvuruya başka bir nesneye bir tür başvuru atayamayacağım en az bir yönetilen dil de adlandırın? Dilinizin bu sınırlamaları nedeniyle başka nerede bir yapıcı veya kopyalama işlevi tanımlamak zorunda kalacağım?

https://www.mql5.com/en/docs/standardlibrary standart kitaplığına bir göz atın ve güçlü ve ana bağlantılarla çalışan koda (MQL5\Include\* içinde bulunur) bakın.

Anlaşılan o dili hiç bilmiyorsunuz.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Renat , lütfen bu konuya bir göz at.

https://www.mql5.com/ru/forum/60581/page2

Куда пропала история сигнала?
Куда пропала история сигнала?
  • www.mql5.com
Помогите разобраться, пропала история торговли сигнала (доходность, сделки и прочее). - Страница 2 - Категория: общее обсуждение
Neden: