Profesyonel bir programcı olarak bir "terminalden" ne isterim. MQL5 için dileklerle ilgili başka bir konu. - sayfa 8

 
Ancak, herhangi bir JMP'de if() - koşulsuz veya koşullu hala dallanıyor + while/for
 
MQL5 geliştiricileriyle yapılan bir röportajda, artık yorumlayıcının bayt koduna değil, platformun x86 koduna derleneceği söylendi. Yani, prensip olarak, terminal ile çalışmak için API'yi sökmek ve görmek mümkündür. Hatta buna dayanarak kütüphaneler yazabilir ve en azından VC++ ile yazabilirsiniz.
 

Test sonuçlarında bir pozisyona çift tıklayarak grafikteki etkinliğe gitmek çok uygun olacaktır.

Bu arada, anı ellerinizle aramalısınız - can sıkıcı.

 
majestic >> :

Grafikteki bir olaya gitmek için test sonuçlarındaki bir konuma çift tıklamak çok uygun olacaktır.

Bu arada, anı ellerinizle aramalısınız - can sıkıcı.

Zaten uygun olmayan ne var?

 

MProgrammer, neden grafikler çizecek bir dotnet modülüne ihtiyacınız var? Ayrıca, MQ'nun böyle bir tablo modülünü üçüncü şahıs programcılara ücretsiz olarak vermekle ne ilgisi var?

MQL4'te yazılmış bir komut dosyası veya gösterge kullanarak nesnelerin yüklendiği ve görüntülendiği normal bir dosya üzerinden bir grafikte gösterilmesi gereken C#'dan hesaplanmış verilerinizi vermek artık mümkün değil mi? Yani, bir Uzman Danışman tarafından C# programı >> veri >> dosya >> komut dosyası, gösterge veya eşzamanlı erişim.

C# veya alışık olduğunuz başka bir programlama dilinde Expert Advisor oluşturmak istiyorsanız MT ile aşağıdaki gibi bir iletişim zinciri oluşturabilirsiniz:


danışman için:

MQL4 Uzman Danışman >> Dll >> senkronizasyon soketi >> C# programı (tırnaklarla çalışır) >> (sonuçlar) >> senkronizasyon soketi >> Dll >> MQL4 Expert Advisor (nesne grafiğini, açılış ve kapanış konumlarını görüntüleme)


optimize ediciniz veya test cihazınız için:

MQL4 komut dosyası >> Dll >> senkronizasyon soketi >> C# programı (tırnaklarla çalışan, çoklu çalıştırmalar) >> (sonuçlar) >> senkronizasyon soketi >> Dll >> MQL4 Expert Advisor (çalışmanın nesnelerinin ve konumlarının bir grafiğini şu şekilde görüntüler: testten sonra)


Bu yaklaşımın avantajları:

- Tüm diller yüksek olduğu için alışık olduğunuz dilde ve ortamda program geliştirebilirsiniz. seviyeler artık soketlerle çalışmayı destekliyor.

- Strateji programında hata ayıklamak mümkündür.

- Bilgi işlem gücü işlemciler (birkaç iş parçacığı) ve hatta ağdaki bilgisayarlar arasında dağıtılan kendi optimize edicilerinizi oluşturabilirsiniz.

(tabii ki dağıtımla birlikte çok iş var ama zaman zaman optimizasyon hızı artacak). Örneğin, optimize ediciyi evde bir masaüstü bilgisayarda çalıştırarak, çalıştırmaların bir kısmını yerel bir ev ağı üzerinden bir dizüstü bilgisayara, ayrıca bir arkadaşınızın bilgisayarına ve hatta muhtemelen optimizasyon modülünüzün üzerinde çalıştığı işyerindeki bir bilgisayara verecektir. ayrıca çalışır durumda (ofis kapasitesinin kendi amaçlarınız için izinsiz kullanımı :)).


eksileri:

- Dll'ye veri aktarımı MQL4'te uygun şekilde uygulanmaz. Yani yapıların yapıları ve dizileri geçilemez, sadece çift diziler geçilebilir, ancak MQL5 bu sorunu çözme sözü verdi.

Msvc++'ın double ile diğer veri türlerinden daha hızlı çalıştığı göz önüne alındığında, mevcut yaklaşım daha az kullanışlı olmasına rağmen belki daha da iyidir.

- Bir iletişim modülü oluşturmanız ve bu işin hatalarını ayıklamanız gerekecek (ancak profesyonel bir programcı için sorun yok - konunun yazarının dediği gibi kendi çizelgelerinizi oluşturmaktan daha kolay)


Dot ve Java için soketlerde iletişim modülünü kendim uygulamak istiyorum. Şu anda Delphi'de benzer bir modülüm var ve WM_COPYDATA mesajını kullanıyorum - iyi çalışıyor ve gerçek hayatta mt ve ticaret ile ilgili bir programda kullanılıyor.

Bu arada, geçenlerde Java ve C++'da gerçek ve tamsayılar üzerinde çalışmalarla testler yaptım.

Genel olarak, -sunucu modunda bir Java makinesi kullanırsanız, ikinci veya üçüncü çalıştırmadan başlayarak, tamsayılarla çalışmak için Java testinin hızı MSVC ++ programını geride bırakır.

Çift veri türleri ile msvc++, java'yı geride bırakır, ancak kayan türler kullanırsanız, java favoridir. Yani, yürütme sırasında Java programının dinamik bir optimizasyonu vardır.

C#'da herhangi bir test yapmadım ama Delphi'de hayal kırıklığına uğradım - hız testlerinde hem C++ hem de Java'nın gerisinde kalıyor. Birçok küçük nesne ile çalışırken (sıralama, taşıma, silme, oluşturma) olsa da Delphi kendini en iyi yönden gösterecektir.

 

Sevgili, GOTO hakkında birkaç şey söylememe izin verin.

Bütün bu hikaye, bazılarının nostaljiyle hatırladığı o eski kişisel bilgisayarların ortaya çıkmasından çok önce başladı.

"Durum, Dijkstra'nın ünlü makalesinin " Goto Operatörünün Zararları Üzerine " 68. yılında ortaya çıkmasıyla tamamen havaya uçtu ve bu, tek bir programın goto operatörü olmadan yapamayacağı bir zamandaydı. programcının yeterliliği, programında kullandığı atlama ifadelerinin sayısıyla ters orantılıdır. Bu sadece programlama alanında değil, aynı zamanda genel olarak programlama metodolojisinde de devrim niteliğinde bir şoktu."

Daha sonra yapılandırılmış programlama üzerine bir dizi çalışma yapıldı ve burada herhangi bir programın GOTO olmadan 3 temel yapı kullanılarak çizilebileceği gösterildi: sıra, dal ve döngü. Bir yerlerde Hoare'nin Yapısal Programlama kitabı bile vardı. Tam olarak hatırlamıyorum, belki de Wirth oradaki ikinci yazardı.

"69. yılda, en saf haliyle Dijkstra'nın fikirlerini gerçekleştiren Pascal dili ortaya çıktı."

" Peki goto ifadesini kullanabilir veya kullanamaz mısınız? 1974'te Knuth'un "Goto İfadesini Kullanarak Yapılandırılmış Programlama" adlı makalesi çıktı.

Vb. vb.

Kısacası, tartışmalar uzun zaman önce sona erdi, GOTO kullanımı teşvik edilmiyor, her türlü ara, devam, çıkış, durma, hende hox ve diğer GOTO ikameleri ortaya çıktı, ancak operatör birçok dilde korundu. MQL geliştiricilerinin bu hikayeye aşina olduğunu düşünüyorum, bu yüzden MQL5'te GOTO yoktur. Geleneksel olarak amaçlarını otomatik olarak "gizledikleri" açıktır. :-)

 

büyükbabaya
herkes bir programcıyı utandırabilir ve sitem edebilir,
kitabın kapağının ne renk olduğunu bilmeyen kişi, özellikle utananları utandırmaya muktedirdir.
"Yapısal programlama" ve yazarının Yodan (Ürdün) olduğunu bilmiyor
Evet ve GOTO'nun yenilme tarihleri Amerikalıların aya inişine göre ayarlandı, ama neden?
Ayrıca C#'ın yayınlanmasını takip eden olaylardan da haberiniz yok ve neden?
Ve son şey - Dijkstra günlerinde programlardaki GOTO sayısı %50'ye ulaştı))))
ancak niteliklerden başka bir nedenle.
Size daha açık hale getirmek için, birinin söyleyeceği aynı şey - küçük onarımların sayısını azaltarak bir büyükbabanın çalışmasını değerlendirmek
- ne kadar az onarım olursa, büyükbabanın kalifikasyonu o kadar yüksek olur.

ve büyükbabanın daha iyi çalışmasını sağlamak için aletlerini elinden alın.

 
Korey писал(а) >>

büyükbabaya
herkes bir programcıyı utandırabilir ve suçlayabilir,
kitabın kapağının ne renk olduğunu bilmeyen kişi, özellikle utananları utandırmaya muktedirdir.
"Yapısal programlama" ve yazarının Yodan (Ürdün) olduğunu bilmiyor
Evet ve GOTO'nun yenilme tarihleri Amerikalıların aya inişine göre ayarlandı, ama neden?
Ayrıca C#'ın yayınlanmasını takip eden olaylardan da haberiniz yok ve neden?
Ve son şey - Dijkstra günlerinde programlardaki GOTO sayısı %50'ye ulaştı))))
ancak niteliklerden başka bir nedenle.
Size daha açık hale getirmek için, birinin söyleyeceği aynı şey - küçük onarımların sayısını azaltarak bir büyükbabanın çalışmasını değerlendirmek
- ne kadar az onarım olursa, büyükbabanın kalifikasyonu o kadar yüksek olur.

ve büyükbabanın daha iyi çalışmasını sağlamak için aletlerini elinden alın.

Sevgili Kore, ne olur ne olmaz diye yazımı birkaç kez tekrar okudum... Vallahi, kimseyi sitem etmeye veya utandırmaya yönelik herhangi bir ipucu görmüyorum.

Evet ve bu benim düşüncelerimde değildi, 30 yıl önce tartışma konusuyla yeni tanıştım ... Ve ne tür Büyükbabam bacakların nereden büyüdüğünü söylemeye karar verdi. :-)

Ve "Yapısal Programlama" hakkında - evet, çok kalın sarı bir ciltsiz kitap var, klasik bir çalışma var: W. Dahl, E. Dijkstra, K. Hoar "Yapısal Programlama", M., "Mir", 1975.

Ve son olarak, geçmiş günlerin işlerinden bahsediyorum ve geçen yüzyıldaki tüm kitaplara sahibim ve gerçekten "C#'ın yayınlanmasını takip eden olayları bilmiyorum" çünkü pratik bir programcı olmadım. uzun zamandır. Yani, küçük bir firmada ekipmanda bekçi olarak oturuyorum :-). Ama MQL5 ile ilgilenmeye başladım, öyle görünüyor ki eski günleri sallamam ve yavaş yavaş kış uykusundan çıkmam gerekecek - birçok şeyin programlanması gerekiyor ve burada özel yardım bekleyecek kimse yok, bu yüzden foruma geldim, senin gibiler için canım, bütün umutlar... Sadece yemin etme - Sevmiyorum...

 

büyükbabaya

1. Avatarına bakıyorum, - Denizci gibi bir sandık görüyorum, + "Dede" lakabı, - evet, bir gemi tamircisi anlamına geliyor. Özellikle kürkün başları takas ticaretine girdi.
2. Forumdaki "küfür" seviyesi kabul edilebilir, ticaret bencilliktir, bencillik olmadan ticaret yapmanın bir yolu yoktur)))
onlar. burada sık sık ve çok küçük durumlarda küfür edin.
3. Şahsen küfür etmek isteyip istemediğinize ama çok küfüre girdiniz, özellikle MQL-4'ten beri dil ve ortam olarak hala aynı =)))
öyle olur ki "dört harfli operatör" için utandırmaya katılırsınız.
ve ayrıca ilk kişilerin - MQL'nin Yaratıcılarının - derin düşüncelerini anlamamak için utanç var)))
- Delikli ortamlarda delikli deliklerin ne şekilde olduğunu hatırlarsanız, MQL ve MT-4'ün fiyatını yakında anlayacaksınız.
4. goto biber yardımı ile memeden koparılır gibi ve ihtiyatsızlıkta ayıp olarak yani. sözde zihinsel sefalet ve utanç.
kanıt için bu konuya göz atın.
= programcılardan goto operatörünü aldı, sözde şimdi atlamalarına izin verdi.
5.
Ancak konuyla ilgili:
utanç verici goto sözcüğü atlanabilir, ancak utanç verici sözcük goto'nun kendisi ve onun utanç verici sözcüğü goto operatörü OLMALIDIR

 

Olmalı, olmalı - sadece sanat adına. Kısa ve zarif bir şekilde kodlamanın tek yolunun goto olduğu durumlar vardır.