MG4 komut dosyalarını ve Uzman Danışmanları destekleyen test cihazı - sayfa 5

 
Integer :
Bu bağlamda, C++ JavaScript'ten farklı değildir. Ve bu doğru!

En büyük yalan!

Javascript'teki eval() işlevine benzer bir işlevin C++ uygulamasına bir örnek verin:

 01        var str = "if (a) { 1+1 } else { 1+2 }"
02        var a = true
03        var b = eval(str)
04       alert( "b равно : " + b) // 2
05        
06        // теперь поменяем "a"
07        
08       a = false
09       b = eval(str)
10       alert( "b равно : " + b) // 3

Yani, std::string tipindeki bir değişkene bir parça C++ kaynak metni yazarız ve sonra std::string tipindeki bir değişkenden alınan bu kod parçasını çalıştıracak olan eval() fonksiyonunu çağırırız.

C++'da böyle bir eval() işlevinin bir uygulamasını önerin (yani, böyle bir işlevin yokluğundan bile bahsetmiyoruz, ancak böyle bir işlevin dilde olma olasılığından bahsediyoruz).

Muhtemelen bunun tek farktan uzak olduğunu söylemeye gerek yok.

MQL4++ dilinin özü, MQL5 dilinin özünden farklı değildir: aynı sözdizimi, aynı türler, işlemler, nesneler, polimorfizm, aşırı yükleme...

Yalnızca Uzman Danışmanların API'sini, göstergeleri ve komut dosyalarını uygulayan kitaplık farklıdır. Bu anlamda aynı Javascript'te dilin çekirdeği ve iki nesne modeli öne çıkıyor:

Yapısal olarak JavaScript, açıkça ayırt edilebilen üç parçanın birleşimi olarak temsil edilebilir:

  • çekirdek (ECMAScript),
  • tarayıcı nesne modeli (Tarayıcı Nesne Modeli veya Malzeme Listesi),
  • belge nesne modeli (Belge Nesne Modeli veya DOM).

Ve MQL açıkça ayırt edilebilir şeyler olarak temsil edilebilir: dilin ve kitaplıkların özü. MQL4 çekirdeği MQL4++ çekirdeğinden farklıysa, MQL4++ çekirdeği MQL5 çekirdeğinden farklı değildir.

Yani, Renat kesinlikle burada ve bununla tartışmak garip.

 
Integer :

Aynen öyle. Özellikle otoriter pozisyonun otoritesini kullanmak.

Özellikle abartılı olan birkaç istisna dışında tüm diller aynıdır. Hepsi herhangi bir çaydanlık tarafından 21 gün içinde incelenir. Hepsi için, if, anahtarın farklı bir yazı biçimi olabilir, ancak bundan temelde hiçbir şey değişmez.

Bu kadar yüzeysel bir anlayış elbette aradaki farkı görmeyi mümkün kılmaz. Burada da aynı görünüyor.

Eval() işlevini yalnızca C++'da değil, MQL4++'da da kullanmayı çok isterim.

Yerleşik bir işlev olmadığı için en azından MQL4++ ile böyle bir işlev yazar mısınız?

Bunu yazmamın bir yolu yok - benim için Javascript ve MQL4++ arasında çok fazla fark var.

Tüm dillerin aynı olduğunu ve buna göre Javascript ve MQL4++ bir ve aynı olduğunu söylüyorsunuz, yazmanız sizin için oldukça kolay olmalı.

 
Renat :

Bunun yerine, geliştiricinin mevcut grafiğin tamamını değil, yerel diziye ihtiyaç duyduğu kadar veriyi doğru bir şekilde talep ettiği çok ekonomik CopyXXX işlevlerine geçtik. Ardından yerel verilerle mümkün olan en hızlı çalışma gelir (eskisinin yerine, Açık/Yüksek/Düşük/Kapalı/Zaman[xxx] oldukça pahalıdır), ayrıca yazar bu verileri önbelleğe alabilir ve bir dahaki sefere çağrıldığında idareli kullanabilir . Bellek ve CPU'daki tasarruflar çok büyük. Ek olarak, platformun kendisi büyük veritabanlarını yönetme işini serbest bırakır - bunlara erişim her zaman istek üzerinedir (kontrolsüz doğrudan yerine) ve bu, önbellekleri esnek bir şekilde yönetmenize olanak tanır.

MQL4'te Açık/Yüksek/Düşük/Kapalı/Zamana[xxx] erişim kolaylığının yalnızca geçerli simge ve zaman çerçevesiyle ilgili olduğunu ve diğer tüm simgeler ve zaman çerçevelerinin diğer tüm verilerinin iClose/iLow( ...) ciddi frenler veren fonksiyonlar. MQL5'te CopyXXX işlevlerinin birleşik modeline geçiş, durumu kökten iyileştirdi ve geliştiricilerin gerekli veri parçalarını tek bir istekle almalarını ve birden fazla engelleme çağrısı yapmamasını sağladı (her bir iClose çağrısında engellemeyi düşünün).

Bunlar yazıdaki gibi bizim fonksiyonumuz değil. Bu makale bir sürü canavarca koltuk değneğidir, ancak farkı göstermek için yayınlandı.

MQL5'e geçme konularını ve özellikle MQL5'in yeni özelliklerini kullanmanız ve akıllara durgunluk veren koltuk değnekleri oluşturmamanız gerektiğini defalarca açıkladım.

MQL5'in yeni özelliklerinin yetkin kullanımına dayanan, diğer şeylerin yanı sıra, yeterli sayıda örneğin eşlik edeceği belgeler olsaydı, böylece yeni başlayanlar bile, küplerden sanki, ihtiyaçları için kodu bir araya getirebilirdi. Tüm inceliklere bir kerede girmeden ve yeterli sayıda örnek ve yine MQL5'in yeni özelliklerinin yetkin kullanımı ile yazılmış örneklerin kodu sayesinde kodları hala genel olarak okuryazar kalacakken, o zaman MT5 ile durum bu kadar içler acısı olamazdı.

Ve bunun yerine, kod olarak bir dizi "canavar koltuk değneği"nin kullanıldığı makaleler olduğundan, hem reddedilen MT5'e sahibiz hem de MQL5'teki API'ye karşı tutum böyle. İzleyici, çoğunlukla profesyonel programcılar değildir. Doğal olarak, MT5'in "reddedilmesinin" tek nedeni bu değil, ana sebeplerden biri.

 

Birine soruldu:

- Neden, varsayalım, uzaylılar varsa, bizimle konuşmuyorlar, bize öğretmiyorlar?

Ona cevap verdiler:

- Hamamböceklerine konuşmayı öğretir misin? Neden yapmıyorsun?


Aptal, alınma, Integer'ın dediğinden bir bok anlamadın.
 
simpleton :

Diğer şeylerin yanı sıra, yeni MQL5 özelliklerinin yetkin kullanımına dayanan yeterli sayıda yazılı örnekle birlikte verilecek belgeler varsa,

9 dilde 4000 sayfalık MQL5 dokümantasyonu , büyük bir kaynak kodu tabanı, 5 dile çevrilmiş 360 makale, doğru soruları sorabileceğiniz 5 dilde forumlar vb.

 
rustein :

Aptal, alınma, Integer'ın dediğinden bir bok anlamadın.

Doğru anladı.

Reshetov daha da net bir şekilde söyledi: https://www.mql5.com/ru/forum/153749/page4#998584

Genel olarak, MT5'e yapılan baskınlar, yeni bir terminale geçmek istemeyenler için sadece çürük bahaneler veya sadece MT5 hakkında bir zil sesi duyan, ancak nerede olduğunu bilmeyenlerin icatlarıdır.

 
Renat :

Doğru anladı.

Genel olarak, MT5'e yapılan baskınlar, yeni bir terminale geçmek istemeyenler için sadece çürük bahaneler veya sadece MT5 hakkında bir zil sesi duyan, ancak nerede olduğunu bilmeyenlerin icatlarıdır.


Neden MT5'e geçmelisiniz?
Bunu uzun zamandır yapmak istiyordum. Ancak komisyoncu henüz MT5 sunmuyor. Bu yüzden normal şekilde açın.
Neyi anlayıp anlamadığının fırçasında, belki anlamadın. Bu kadar önemli mi?
 
rustein :

Neyi anlayıp anlamadığının fırçasında, belki anlamadın. Bu kadar önemli mi?

Tek bir anlamlı cümle söylemedin ve tek bir argüman vermedin. Sadece duygular.

 
Renat :

Tek bir anlamlı cümle söylemedin ve tek bir argüman vermedin. Sadece duygular.

VE?
 
simpleton :

...

Geçenlerde burada bir yerde hangi programlama dilinin öğrenileceği tartışıldı. Bir katılımcı çok faydalı bir tavsiye verdi - ilk önce Rusça (iyi veya başka herhangi bir yerli). Ne konuşulduğunu anlamak için.

" Bu şekilde , C ++ JavaScript'ten farklı değildir " cümlesinde " Bu şekilde " ifadesi karşılaştırma ölçütünü tanımlar (veya iyileştirir). Bu nedenle, garip bir soru ortaya çıkıyor - "Şimdi burada ne hakkında konuşuyorsunuz?"