Benim yaklaşımım. Çekirdek - Motor. - sayfa 63

 
El satan ve ek kütüphanelerde ustalaşabilen ve onu kullanabilen birkaç programcı var.

Kendi kütüphanelerini yazabilen az sayıda programcı da vardır.

Kendileri için bir GUI isteyen birçok kullanıcı var. Ama onlar için her şey kolay olmalı. İki kere iki gibi.
Bunu yapmak için, vs gibi çalışmanıza izin veren ayrı bir proje yapmanız gerekir.

Peter, doğru olduğunu düşündüğün şeyi yap. Talebi ancak istatistik topladıktan sonra yargılamak mümkündür. Sizlerle birlikte hesap istatistikleri toplamak için bir gösterge yapmaya çalıştık. Henüz hesaplama kısmını tamamlamadığım için zahmet etmek istemedim.
GUI'nizin benimkinden daha kolay programlandığından emin olmama rağmen, bu zaten yapıldı.
Sadece sürekli olarak değiştiriliyorum ve kodumu kendim yönetmek benim için daha kolay, başkalarından bir şey istemek istemiyorum.


Ancak çalışmanızı takdir edecek çok az gerçek kullanıcı var. Tecrübelerime dayanarak konuşuyorum.
Uzmanlar için ücretsiz bir kütüphane yaptım. Bilgi hazır kitaplık. Hangi yalnızca bilgileri görüntüler ve herhangi bir danışmanı yönetmenize izin verir.
Yüzlerce indirme. Birkaç kez teşekkürler. Çin, Brezilya, Tayland, biraz Rusya pompalıyorlar. Herşey.

Güzel bir arayüz isteyen satıcılar için kitaplığınız faydalı olacaktır. Ancak hız ve frenleri aksaklıklarla karşılaştırmak gerekli olacaktır. Buna koştum.

Diğer her şey önemli değil.
İşine bak. Hiçbir şey kanıtlamak zorunda değilsin.
 
Vladislav Andruschenko :
El satan ve ek kütüphanelerde ustalaşabilen ve onu kullanabilen birkaç programcı var.

Kendi kütüphanelerini yazabilen az sayıda programcı da vardır.

Kendileri için bir GUI isteyen birçok kullanıcı var. Ama onlar için her şey kolay olmalı. İki kere iki gibi.
Bunu yapmak için, vs gibi çalışmanıza izin veren ayrı bir proje oluşturmanız gerekir.

Peter, doğru olduğunu düşündüğün şeyi yap. Talebi ancak istatistik topladıktan sonra yargılamak mümkündür. Sizlerle birlikte hesap istatistikleri toplamak için bir gösterge yapmaya çalıştık. Henüz hesaplama kısmını tamamlamadığım için zahmet etmek istemedim.
GUI'nizin benimkinden daha kolay programlandığından emin olmama rağmen, bu zaten yapıldı.
Sadece sürekli olarak değiştiriliyorum ve kodumu kendim yönetmek benim için daha kolay, başkalarından bir şey istemek istemiyorum.


Ancak çalışmanızı takdir edecek çok az gerçek kullanıcı var. Tecrübelerime dayanarak konuşuyorum.
Uzmanlar için ücretsiz bir kütüphane yaptım. Bilgi hazır kitaplık. Hangi yalnızca bilgileri görüntüler ve herhangi bir danışmanı yönetmenize izin verir.
Yüzlerce indirme. Birkaç kez teşekkürler. Çin, Brezilya, Tayland, biraz Rusya pompalıyorlar. Herşey.

Güzel bir arayüz isteyen satıcılar için kitaplığınız faydalı olacaktır. Ancak hız ve frenleri aksaklıklarla karşılaştırmak gerekli olacaktır. Buna koştum.

Diğer her şey önemli değil.
İşine bak. Hiçbir şey kanıtlamak zorunda değilsin.


Teşekkür ederim. Geniş deneyime sahip bir geliştirici ve satıcı olarak fikriniz benim için çok önemli.

 
Реter Konow :


Teşekkür ederim. Geniş deneyime sahip bir geliştirici ve satıcı olarak fikriniz benim için çok önemli.

Teşekkür ederim.
Ana amaç, kütüphanenin danışmanın ana algoritmasını etkilememesidir.
Kitaplığımı yaptığımda ilk kez bununla karşılaştım.
 
Vladislav Andruschenko :
Teşekkür ederim.
Ana amaç, kütüphanenin danışmanın ana algoritmasını etkilememesidir.
Kitaplığımı yaptığımda ilk kez bununla karşılaştım.

Tüm bağlantılarım harici. Hiç etkilemiyor.

İşaretleme dilinde bir GUI çizildi. "Motor" göstergesi tarafından taşınır.

Danışmana 2 dosya bağlandı ve bağlantı dosyası dolduruldu.

Bir GUI ve bir danışman ile bir motor başlattı.

Ve her şey çalışıyor.

 
Vladislav Andruschenko :
...

Kendi kütüphanelerini yazabilen az sayıda programcı da vardır.

...

Aynı fikirde olmamak. Her MQL programcısı, hatta profesyonel olmayanlar bile, bunu uzun süredir yapıyorsa, orijinal işlevlerinin çoğunu biriktirir. Bunları bir araya toplamak ve dosyayı bir kitaplık olarak düzenlemek zor değil. Bence çoğu insan bunu yapabilir.

 
khorosh :

Aynı fikirde olmamak. Her MQL programcısı, hatta profesyonel olmayanlar bile, bunu uzun süredir yapıyorsa, orijinal işlevlerinin çoğunu biriktirir. Bunları bir araya toplamak ve dosyayı bir kitaplık olarak düzenlemek zor değil. Bence çoğu insan bunu yapabilir.

Özellik setinden bahsetmiyorum. GUI kütüphanesinden bahsediyorum. İnan bana. Her şeyi organize etmek zor. Ve Peter harika bir iş çıkardı.
 

Konuyu tekrar edeyim:

  1. MT programı, Windows formunun (basılan / serbest bırakılan) öğelerinin durumlarını değiştirmelidir.
  2. MT programı, Windows form düğmelerinin rengini değiştirmelidir.
  3. MT programı , bir Windows formunun giriş alanlarından gelen metni kabul etmelidir.
  4. MT programı, metni Windows formunun giriş alanlarında ayarlamalıdır.
  5. MT programı, Windows uygulama pencerelerini açmalı/kapatmalıdır.

Her şey basit görünüyor. C# ile iki basit şekil çizmem gerekiyor. Bir düğme, bir giriş alanı ve bir onay kutusu olmalıdır. DLL'yi ekleyin. MT5 ile bağlantı kurun.

Analogumu MT'de yapacağım. Aynı formlar ve öğeler ve aynı işlevlerin performansı. Ardından, çözümleri kalite ve geliştirme potansiyeli açısından karşılaştırıyoruz.

//------------------------------------------------ -------------------------------------------------- -------------------------------------------------- --------------------------------------------------

İşte benim çözümüm:


//------------------------------------------------ -------------------------------------------------- -------------------------------------------------- -------------------------------------------------

EA'daki kontrol kodu:

 void OnTimer ()
  { 
   static int q,q2,q3,q4,q5;    q++; q2++; q3++; q4++; q5++;
   //-----------------------------------------------------------------
   //Реализуем изменение цвета кнопки внутри формы.
   //-----------------------------------------------------------------
   if (q == 1 )E_Window_1_Button_1(M_COLOR, C'245,245,245' );
   if (q == 2 )E_Window_1_Button_1(M_COLOR, C'245,0,0' );
   if (q == 3 )q = 0 ;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку кнопки.
   //-----------------------------------------------------------------
   if (q2 == 1 )E_Window_1_Button_2(STATE,ON);  
   if (q2 == 2 )E_Window_1_Button_2(STATE,LOCKED_ON);
   if (q2 == 3 )E_Window_1_Button_2(STATE,OFF);
   if (q2 == 4 )E_Window_1_Button_2(STATE,LOCKED_OFF);
   if (q2 == 5 )q2 = 0 ;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку чекбоксов.
   //-----------------------------------------------------------------
   if (q3 == 1 ){E_Window_1_Checkbox_1(STATE,ON);         E_Window_1_Checkbox_2(STATE,LOCKED_ON);  E_Window_1_Checkbox_3(STATE,OFF);} 
   if (q3 == 2 ){E_Window_1_Checkbox_1(STATE,LOCKED_ON);  E_Window_1_Checkbox_2(STATE,OFF);        E_Window_1_Checkbox_3(STATE,ON);}
   if (q3 == 3 ){E_Window_1_Checkbox_1(STATE,OFF);        E_Window_1_Checkbox_2(STATE,ON);         E_Window_1_Checkbox_3(STATE,LOCKED_ON);}
   if (q3 == 4 )q3 = 0 ;
   //-----------------------------------------------------------------
   //Реализуем изменение текста в поле ввода:
   //-----------------------------------------------------------------
   E_Window_1_Edit_box_1( "Current text: " + MathRand ());
   //-----------------------------------------------------------------
   //Реализуем изменение цвета текста в поле ввода.
   //-----------------------------------------------------------------
   if (q4 == 1 )E_Window_1_Edit_box_1(T_COLOR, C'145,245,245' );
   if (q4 == 2 )E_Window_1_Edit_box_1(T_COLOR, C'245,10,0' );
   if (q4 == 3 )E_Window_1_Edit_box_1(T_COLOR, C'245,20,50' );
   if (q4 == 4 )E_Window_1_Edit_box_1(T_COLOR, C'245,130,0' );
   if (q4 == 5 )E_Window_1_Edit_box_1(T_COLOR, C'25,40,20' );
   if (q4 == 6 )E_Window_1_Edit_box_1(T_COLOR, C'245,170,0' );
   if (q4 == 7 )E_Window_1_Edit_box_1(T_COLOR, C'245,110,110' );
   if (q4 == 8 )E_Window_1_Edit_box_1(T_COLOR, C'245,255,0' );
   if (q4 == 9 )q4 = 0 ;
   //-----------------------------------------------------------------
   //Реализуем поочередное закрытие/открытие окон:
   //-----------------------------------------------------------------
   if (q5 == 1 )W_Window_2(close);
   if (q5 == 5 )W_Window_2();
   if (q5 == 10 )q5 = 0 ;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

Aşağıda ekli dosyalar:

1. EA dosyasını test edin (Uzmanlar klasörüne kurun, açın, kaydedin, derleyin, çizelgeye koyun).

2. Harici Bağlantı dosyası (dahil klasörüne yükleyin).

3. Bağlantı Özellikleri dosyası (dahil klasörüne yükleyin).

4. Windows kodlu forum örnek 2 dosyası (yalnızca görüntüleme).

5. Motor (göstergeler klasörüne kurun. Bir test danışmanıyla tabloya atın.)

 
Umarım rakiplerimin bir Windows formunu bir DLL aracılığıyla bağlama sorununa çözümlerini sağlarlar.
 
Реter Konow :
Umarım rakiplerimin bir Windows formunu bir DLL aracılığıyla bağlama sorununa çözümlerini sağlarlar.

Bu "özel olimpiyatınıza" sadece sizin katıldığınızı hissediyorum :-)

 

Lütfen uygulamada. Expert Advisor başlatıldığında, bir pencere açılacaktır, pencerede iki düğme, iki metin alanı ve bir onay kutusu vardır. Düğmelerin rengi ve ilk metin alanının metni saniyede bir değişir. İkinci metin alanına metin girerseniz, EA olay mesajı ve bu metinle birlikte bir uyarı açar. Butonlara basıldığında uyarı da açılır ve ilk buton form-2'yi açar, ikinci buton form-2'yi kapatır. Başka bir form-2 bir çarpı ile kapatılabilir. Ana form (form 1) bir çarpı işareti ile kapatılmaz, Expert Advisor bağlantısı kesildiğinde kaybolur. Onay kutusundan bir uyarı da açılır, ondan iki tür olay vardır: 1 ve 2 - onay kutusunun kaldırılması ve ayarlanması.

Çoğu zaman C#'ı hatırlamakla geçti (hatırlayarak, orada bir şey bilseydim :), üç yıldan fazla bir süredir üzerinde hiçbir şey yapmadım ve ayrıca olayları iletmek için bir sınıf geliştirdim, ancak evrenseldir, kullanılabilir herhangi bir projede. Yani şimdi dakikalarca bir gui hesabı oluştururken ;)

İçeride ne kadar zahmetli olduğunu merak ediyorsanız, bir uzmana olay göndermek için sınıf yöntemini - bir satır çağırmanız gerekir. Bir uzmandan kontrolleri yönetebilme yeteneği sağlamak için, biri form sınıfında diğeri olay geçme sınıfında olmak üzere iki yöntem yazmanız gerekir, her birinde bir kod satırı bulunur.

Uzmanları onay kutusunu yönetmedi - yoruldu, bu nedenle bir renk ve metin ayarı var - hem metin parametresi hem de girişler. Renk RGB olarak iletiliyor, ancak muhtemelen tek bir değişkenle yapılmış olabilir, derinlemesine incelemedim.

Ayrıca, C# ve FindowsForms'u daha iyi bilen birinin bunu iki kat daha kolay yapabileceğine dair bir varsayım var - özellikleri ayarlamak için iki yöntem olmadan, ancak yalnızca bir ve belki daha da iyi.

Genel olarak, C# ve FindowsForms'un sonsuz dünyasının kapıları açıktır.


Dosyalar: