Grafik modunda MQL için bir GUI oluşturma.

 

Bu konuyu birkaç yıl önce, grafik arayüz oluşturmak için çeşitli kütüphaneler hızla gelişmeye başladığında gündeme getirdim. O zamandan beri, çok fazla ince ayar yapıldılar, ancak yaratma sürecinin kendisi 30 yıl önceki seviyede kaldı (arayüzden nasıl acı çektiklerini başka kim hatırlıyor, Win API'de tutamaçlarla yarattılar?) ve böyle bir araç ortaya çıktı, memnuniyetle tekmeyi kabul edeceğim ve kelimeleri geri alacağım.

-------

İşte VS 2017'den en basit örnek, C# Windows Forms. Solda, forma sürüklenebilen bir kontrol araç çubuğu bulunur.

panelbiçim

Ve işte bu en basit form için oluşturulan kodun bir kısmı.

 private void InitializeComponent()
        {
             this .btnDoSomething = new System.Windows.Forms.Button();
             this .textBox1 = new System.Windows.Forms.TextBox();
             this .SuspendLayout();
             // 
             // btnDoSomething
             // 
             this .btnDoSomething.Location = new System.Drawing. Point ( 12 , 12 );
             this .btnDoSomething.Name = "btnDoSomething" ;
             this .btnDoSomething.Size = new System.Drawing.Size( 100 , 23 );
             this .btnDoSomething.TabIndex = 0 ;
             this .btnDoSomething.Text = "Do something" ;
             this .btnDoSomething.UseCompatibleTextRendering = true ;
             this .btnDoSomething.UseVisualStyleBackColor = true ;
             // 
             // textBox1
             // 
             this .textBox1.Location = new System.Drawing. Point ( 12 , 53 );
             this .textBox1.Name = "textBox1" ;
             this .textBox1.Size = new System.Drawing.Size( 100 , 20 );
             this .textBox1.TabIndex = 1 ;
             this .textBox1.Text = "Hello MQL5!" ;
             this .textBox1.TextChanged += new System.EventHandler( this .textBox1_TextChanged);
             // 
             // Form1
             // 
             this .AutoScaleDimensions = new System.Drawing.SizeF( 6 F, 13 F);
             this .AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this .ClientSize = new System.Drawing.Size( 133 , 98 );
             this .Controls.Add( this .textBox1);
             this .Controls.Add( this .btnDoSomething);
             this .Name = "Form1" ;
             this .Text = "Form1" ;
             this .ResumeLayout( false );
             this .PerformLayout();

        }

         protected System.Windows.Forms.Button btnDoSomething;
         private System.Windows.Forms.TextBox textBox1;

O halde, bu sitede sunulan kitaplıklardan herhangi birine dayalı olarak bu kodun ayrıştırılacağı ve grafik kodunun oluşturulacağı bir projeyi kim üstlenir?

Sonuçta, "MQL5'te yemek ve para kazanın" bölümünde bir yıldır yazarı olmayan bir makale var.

55 Kaynak kodlarının ayrıştırılması ve otomatik olarak değiştirilmesi   MQL5   aracılığıyla   Düzenli ifadeler  
Fonksiyonların, global değişkenlerin, tanımların, sınıfların vb. bir listesini alma.

Neden kimse almıyor? Evet, çünkü kimsenin bu ayrıştırmaya ihtiyacı yok. 10 yıldan fazla bir süredir cilalanmış ve geliştirilmiş harika bir Doxygen programı var. Ve hiç kimse onun acıklı suretini yaratmaya çalışmakla ilgilenmiyor (ve kıyaslandığında kesinlikle acıklı olacak). Ve son zamanlarda Otomatik belge oluşturma konusunda bir makale çıktı...

Böyle,

  1. Zaten böyle bir proje varsa.
  2. Böyle bir grafik arayüz oluşturma ile kim ilgilenir?
Özel olarak ayrı bir dal yaptım çünkü. şube bölümünde "MQL5'te Yiyecek ve Kazanç" çabucak kaybolacak ve çok az kişi bunu okuyacaktır.

 

METATRADER için bir GUI, çok uzak bir olasılık. Paneller oluşturmak için - tamam. Ama artık daha fazlasına gerek yok.

Her ne kadar sizinle aynı fikirde olsam da - "Görsel" MetaEditor - konuyla ilgili olurdu

 
Vladislav Andruschenko :

METATRADER için bir GUI, çok uzak bir olasılık. Paneller oluşturmak için - tamam. Ama artık daha fazlasına gerek yok.

Her ne kadar sizinle aynı fikirde olsam da - "Görsel" MetaEditor - konuyla ilgili olurdu

Neden işleri bu kadar karmaşık hale getiriyorsunuz, özellikle MT-MQL? MQL, IMHO, zaten aşırı karmaşık. Sonuçta, VS var ve paneller yapın. ve ihtiyacınız olan her şey orada, örneğin aynı DLL aracılığıyla. MT-MQL'den bir canavar yaratmaya gerek yok.))

 
Yuriy Asaulenko :

Neden işleri bu kadar karmaşık hale getiriyorsunuz, özellikle MT-MQL? MQL, IMHO, zaten aşırı karmaşık. Sonuçta, VS var ve paneller yapın. ve ihtiyacınız olan her şey orada, örneğin aynı DLL aracılığıyla. MT-MQL'den bir canavar yaratmaya gerek yok.))


Pekala, benim, rüya görüyorum :-) (grafikler ve ticaret sistemleri oluşturmak için GÖRSEL), zaten birçok kurucu olduğu açık....

Dürüst olmak gerekirse, ilk panelimi Photoshop'ta çizdim. ve o hala...

şimdi doğrudan terminalde çizmeye çalışıyorum, ancak sadece birkaçının onu kullandığını anlıyorum.

Ve özel panellerin ayrı ayrı yapılması daha kolaydır.

Yine de kütüphane çizimiyle ilgili makaleleri yakından incelememe rağmen. Ama bu kütüphaneleri kullanmanın %1 için faydalı olacağına karar verdim ve vazgeçtim...

 
Yuriy Asaulenko :

Neden işleri bu kadar karmaşık hale getiriyorsunuz, özellikle MT-MQL? MQL, IMHO, zaten aşırı karmaşık. Sonuçta, VS var ve paneller yapın. ve ihtiyacınız olan her şey orada, örneğin aynı DLL aracılığıyla. MT-MQL'den bir canavar yaratmaya gerek yok.))

Bunu daha önce yaptım. Aşağıda, çok stratejili (oh, kahretsin!) Uzman Danışman için basit bir kurulum paneli örneği verilmiştir. Ama piyasayı kesiyor!

MT'nin bununla ne ilgisi olduğunu anlamıyorum? Ben sadece MQL'de bir komut dosyası ayrıştırıcısı yapmayı öneriyorum. C++/C#'da da mümkündür, ancak daha sonra makalelere bile almazlar.

Oh, resmi unuttum, işte burada, gösterişsiz


 
Vladislav Andruschenko :


Pekala, benim, rüya görüyorum :-) (grafikler ve ticaret sistemleri oluşturmak için GÖRSEL), zaten birçok kurucu olduğu açık....

Dürüst olmak gerekirse, ilk panelimi Photoshop'ta çizdim. ve o hala...

şimdi doğrudan terminalde çizmeye çalışıyorum, ancak sadece birkaçının onu kullandığını anlıyorum.

Ve özel panellerin ayrı ayrı yapılması daha kolaydır.

Yine de kütüphane çizimiyle ilgili makaleleri yakından incelememe rağmen. Ama bu kütüphaneleri kullanmanın %1 için faydalı olacağına karar verdim ve vazgeçtim...

Yani, kütüphaneler olmadan mı yapıyorsunuz? Sadece burada oldukça karmaşık bir panel yapmak gibi bir görevim var ve bunun birçok kez yeniden düzenleneceğini hissediyorum.

Şimdiye kadar, VS'de bir görsel yapmaya karar verdim, ardından kontrollerin koordinatlarını ve boyutlarını tutamaçlarla alıp tekrar tutamaçları bir kütüphaneye aktarmaya karar verdim. Ben Anatoly Kazrsky'den kütüphanelere doğru eğilirken, orada korkunç bir iş çıkardı. Sonuçları bir kağıda yazmak->kod düzenleme...vb. ile her şey kod düzenleme->çalıştır->düzeltme işleminden daha hızlı olacaktır.

 
Alexey Volchanskiy :

Yani, kütüphaneler olmadan mı yapıyorsunuz? Sadece burada oldukça karmaşık bir panel yapmak gibi bir görevim var ve bunun birçok kez yeniden düzenleneceğini hissediyorum.

Şimdiye kadar, VS'de bir görsel yapmaya karar verdim, ardından kontrollerin koordinatlarını ve boyutlarını tutamaçlarla alıp tekrar tutamaçları bir kütüphaneye aktarmaya karar verdim. Ben Anatoly Kazrsky'den kütüphanelere doğru eğilirken, orada korkunç bir iş çıkardı. Sonuçları bir kağıda yazmak->kod düzenleme...vb. ile her şey kod düzenleme->çalıştır->düzeltme işleminden daha hızlı olacaktır.

Kazarsky'nin İncil'ini kullanmak daha iyidir,

ama evet, çizim kitaplıklarım var. onlar standart. (Tabii Kazarsky'ninkilerle aynı değil :-))

Sadece çizim yapmayı çok nadir kullanıyorum, bu yüzden bununla zaman kaybetmenin bir anlamı yok.


ve evet - Photoshop'ta çizdim - Delphi'de kod çizdim ve koordinatlar boyunca gidiyoruz :-)

şimdi öyle yapmazdım ama sonra MQL'de ilk panelimi bu şekilde çizdim (daha önce Delphi'deydi)

ve hala dokunmaya korkuyorum :-) Güncelliyorum, tabii ki zaten kodu 10 kez optimize ettim. ama aynı paneli sıradan düğmelerle çizmeyi düşünüyorum......

ancak artıları ve eksileri var: sıradan düğmeler güzel değil: Kanvas test cihazında çalışmıyor ...............

 
Alexey Volchanskiy :

Bunu daha önce yaptım. Aşağıda, çok stratejili (oh, kahretsin!) Uzman Danışman için basit bir kurulum paneli örneği verilmiştir. Ama piyasayı kesiyor!

MT'nin bununla ne ilgisi olduğunu anlamıyorum? Ben sadece MQL'de bir komut dosyası ayrıştırıcısı yapmayı öneriyorum. C++/C#'da da mümkündür, ancak daha sonra makalelere bile almazlar.

Oh, resmi unuttum, işte burada, gösterişsiz

Pazar içinse, evet, kötü. Sadece MQL. (((

Ama kendim için gerekli değil ve VS ile her şey kolay.

 
Yuriy Asaulenko :

Pazar içinse, evet, kötü. Sadece MQL. (((

Ama kendim için gerekli değil ve VS ile her şey kolay.

VS ile her şey son derece basit ve hızlı, genellikle o paneli paylaşılan dosyalar üzerinden erişimle yaptım, her şey iyi ve hızlı çalıştı.

Bilmiyorum bile, belki VS'de hızlı bir şekilde bir varyant oluşturabilirim ve sonra çocukluk hastalıklarını ortadan kaldırdığımda MQL'ye geçebilirim?

Ama sonuçta C# içindeki panelin altında bu forumda şube açmak mümkün olmayacak. Yani, yine kırmızı üzerinde çalış ve sonra boş konuşmaya mı gir? Ne diyorsunuz sevgili moderatörler? Proje kapsamında burada C# ile bir panel yayınlamak mümkün müdür?

Tabii ki MQL5 kısmını thread içinde, C# panelini de blogda paylaşabilirim. Bu sadece bir şekilde aşağılayıcı, sanki likenmişim gibi, blogda saklanmak zorunda kaldım.

 
Alexey Volchanskiy :

VS ile her şey son derece basit ve hızlı, genellikle bu paneli paylaşılan dosyalar üzerinden erişimle yaptım, her şey iyi ve hızlı çalıştı.

Bilmiyorum bile, belki VS'de hızlı bir şekilde bir varyant oluşturabilirim ve sonra çocukluk hastalıklarını ortadan kaldırdığımda MQL'ye geçebilirim?

Ama sonuçta C# içindeki panelin altında bu forumda şube açmak mümkün olmayacak. Yani, yine kırmızı üzerinde çalış ve sonra boş konuşmaya mı gir? Ne diyorsunuz sevgili moderatörler? Proje kapsamında burada C# ile bir panel yayınlamak mümkün müdür?

Tabii ki MQL5 kısmını thread içinde, C# panelini de blogda paylaşabilirim. Bu sadece bir şekilde aşağılayıcı, sanki likenmişim gibi, blogda saklanmak zorunda kaldım.

Pts dosya alışverişini beğendim - her şey basit, hızlı. RAM-Disk aracılığıyla, DLL'lere ve zillere ve ıslıklara gerek yoktur, hız> 1.5 GB / s'dir. Her şeye yeter, hatta kalır.))

Ve her türlü DLL daha sonra, boş zamanlarınızda, gerekirse beceriksiz hale getirilebilir.

 
Alexey, panelinle C# ile çalışıp grafik penceresinin içinde görüntülenmesi mümkün mü?