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

 
Александр :

Gönderiniz uygulamaya katılım için bir başvuru olarak kabul ediliyor mu?

Bu konuya da baktım ama bir önceki yazımı dikkatli okumamışsınız.

Serbest çalışıyorsanız - lütfen. Bütçe nedir? Dikkatsizce okuduğumu nereden çıkardın?

 
Dmitry Fedoseev :

Serbest çalışıyorsanız - lütfen. Bütçe nedir? Dikkatsizce okuduğumu nereden çıkardın?

Serbest çalışmaktan kaçınacağım.

ve burada bakım hakkında:

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

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

İskender , 2018.12.16 16:12

MQL ve genel olarak programlama konusundaki becerilerim oldukça mütevazı. ...

...sürece dalmadan sonucu hızlandırmak için bir fırsat varsa, neden bundan faydalanmıyorsunuz?

 

Motor penceresinde Uzman Danışman tarafından çizilen özel bir animasyon örneği:

EA'daki kontrol kodu:

 void OnTimer ()
  { 
   static int q1,a,b; 
   //------------------------------------
   if (!a)LOAD_CANVAS_Last_10_bars(); 
   //---------------------------------
   if (!b) q1++;
   if (q1 == 200 )b = 1 ;
   if (b)q1--;
   if (!q1)b = 0 ;  
   //------------- 
   ELLIPSE(q1,q1,q1+q1* 2 ,q1+q1, clrBlue );          
   //------------------------------------
  }

Motorun çizim bloğuna CCanvas sınıfından 14 çizim fonksiyonu eklendi. Bu işlevler EA'dan çağrılır. Bunu yapmak için, Connection_Properties.mqh dosyasına çizim işlevleri için sarmalayıcı işlevler eklendi.

Daireler, dikdörtgenler, üçgenler, kemerler, elipsler, çizgiler çizebilirsiniz.

Çizim fonksiyonlarını çağırmadan önce hangi tuval üzerine çizeceklerini belirlemeniz gerekir (örneğin: LOAD_CANVAS_Last_10_bars(); )

Teknoloji henüz ham. Hata ayıklarken, hazır bir örnek yayınlayacağım.

 
Александр :

Güzel gün.

Kendi üretimimin ticaret fonksiyonlarını etkinleştirme/devre dışı bırakma ve buna göre birkaç parametresini ayarlamayı kontrol etmek için bir panel oluşturmaya çalışıyorum.

EA kodunda paneli uygularken, test cihazında ChartEvent olayının olmaması nedeniyle uygulama, strateji test cihazındaki panel düğmelerine basmanın normal çalışmasının imkansızlığıyla karşılaştı.

Veya gösterge kodunda panel uygularken sipariş açmanın imkansızlığı.

Burada tartışma: https://www.mql5.com/ru/forum/294890

Peter, reddedemeyeceğim bir panel geliştirmem için bana yardım teklif etti.

Yani, bugün panel şöyle görünüyor:

veya tüm düğmelere basıldığında bunun gibi:

her düğmenin altında hem yukarı/aşağı oklarla hem de düzenleme alanını düzenleyerek değiştirilebilen parametreleri.

"Şimdi" düğmeleri için parametre değeri .Kilitleme(yanlış);, diğer tüm düğmeler için .Locking(true);

"Sonraki" butonu için, Tüm/Her değerleri ile bir parametre (switch) daha eklemeniz gerekir.

Ek olarak, panele, her bir siparişin karını (takas dahil) ve önünde bir çarpı işareti bulunan, mevcut sembol için açık siparişlerin listesini içeren bir zaman aralığı ve açık siparişlerin listesini içeren bir açılır liste eklemeniz gerekir. her biri kapatmak için.

Peter, bu açıklama TK için yeterli mi?

İşte panel.

Lütfen görünümde düzeltmeler yapın ve "Tümü / Her" anahtarının tam olarak nereye yerleştirileceğini ve ayrıca vol. zaman çerçeveli bir liste (sanırım en üstte ortada).

Basılan düğmeler:


 

Test cihazında ticarete gelince, şimdi bu sorunu çözüyorum. Danışman ve motor arasındaki bağlantıyı tamamen yeniden yapmak istiyorum. Bunu "iletişim nesneleri" (dizi açıklaması programlar arasında veri aktarmak için kullanılan MT nesneleri) aracılığıyla uygulayın.

Bu, normal etkileşim ve Expert Advisor test modunda etkileşim için hem hızlı hem de evrensel bir iletişim yolu olabilir.

Geçerli iletişim yaklaşımıyla OnChartEvent() olay kuyruğu yüklenir. Çok sayıda olayla, EA ile motor arasında mesaj gönderme ve alma gecikir ve bu görsel olarak fark edilir hale gelir. Mesajlar OnChartEvent() olay kuyruğunun dışında alınıp gönderileceğinden, MT nesneleri aracılığıyla iletişim bu sorunu ortadan kaldırmalıdır.

Teoride çalışması gerekir...

 
Реter Konow :

İşte panel.

Lütfen görünümde düzeltmeler yapın ve "Tümü / Her" anahtarının tam olarak nereye yerleştirileceğini ve ayrıca vol. zaman çerçeveli bir liste (sanırım en üstte ortada).

Paneli çalışma alanının tam genişliğine getirmenin daha iyi olduğunu düşünüyorum (sipariş listesi için daha fazla meta olacak).

Parti, Kâr etiketli ve "Şimdi" düğmelerinin yanındaki Düzenle alanlarında yüzdeler olmalıdır (0,00 biçimi).

Denedim ve alanı bir Etiket ve iki düğme ("-" ve "+") içeren zaman dilimleri listesiyle değiştirmenin daha iyi olduğu sonucuna vardım. Düğmelerin üst sırasının seviyesine yerleştirin. Etiket ortada, "-" düğmesi solda, "+" düğmesi ise Etiketin sağında. Aşağıda açık siparişlerin bir listesi için bir yer olacaktır.

Tümü/Her biri anahtarlarını "Kar" etiketi düzeyinde "Sondaki" düğmelerinin altına yerleştirin.

Bu benim vizyonum ama anladığım kadarıyla forumu okuduktan ve işinize baktıktan sonra, sizin için bir istek ve çizim yeteneği var, bu yüzden önerilerinize aldırmayacağım.

 
Александр :

1. Paneli çalışma alanının tüm genişliğine getirmenin daha iyi olduğunu düşünüyorum (sipariş listesi için daha fazla meta olacak).

2. Parti, Kâr etiketli ve "Şimdi" butonlarının yanındaki Düzenle alanlarında yüzdeler olmalıdır (0.00 formatı).

3. Denedim ve alanı bir Etiket ve iki düğme ("-" ve "+") içeren zaman dilimleri listesiyle değiştirmenin daha iyi olduğu sonucuna vardım. Düğmelerin üst sırasının seviyesine yerleştirin. Etiket ortada, "-" düğmesi solda, "+" düğmesi ise Etiketin sağında. Aşağıda açık siparişlerin bir listesi için bir yer olacaktır.

4. Tümünü/Her anahtarını "Kar" etiketi düzeyinde "Sondaki" düğmelerinin altına yerleştirin.

5. Vizyonum bu ama anladığım kadarıyla forumu okuduktan ve işinize baktıktan sonra, sizin için bir istek ve çizim yeteneği var, bu yüzden önerilerinize itiraz etmeyeceğim.

1. Yani panelin tablonun genişliğine göre otomatik olarak ayarlanmasını sağlamak için ? Yoksa sadece grafiğin genişliği mi?

2. Yapacağım.

3. Tam olarak anlaşılmadı. Yani, giriş alanında +/- düğmeleriyle zaman çerçeveleri yapılandırılmalıdır? Ve sipariş listesiyle ayrı bir pencere yapmamak? Hepsi panelde mi?

4. Bir anahtar, basıldığında/bırakıldığında metni değiştiren basit bir düğme olabilir mi?

5. Grafik öğeleri ekleyin.

(Anahtar olarak küçük bir kaydırıcı yapabilirsiniz. Kaydırıcı sağa / sola gidecektir)

 
Реter Konow :

Test cihazında ticarete gelince, şimdi bu sorunu çözüyorum. Danışman ve motor arasındaki bağlantıyı tamamen yeniden yapmak istiyorum. Bunu "iletişim nesneleri" (dizi açıklaması programlar arasında veri aktarmak için kullanılan MT nesneleri) aracılığıyla uygulayın.

Bu, normal etkileşim ve Expert Advisor test modunda etkileşim için hem hızlı hem de evrensel bir iletişim yolu olabilir.

Geçerli iletişim yaklaşımıyla OnChartEvent() olay kuyruğu yüklenir. Çok sayıda olayla, EA ile motor arasında mesaj gönderme ve alma gecikir ve bu görsel olarak fark edilir hale gelir. Mesajlar OnChartEvent() olay kuyruğunun dışında alınıp gönderileceğinden, MT nesneleri aracılığıyla iletişim bu sorunu ortadan kaldırmalıdır.

Teoride çalışması gerekir...

Konuyu tam olarak anladığımdan emin değilim.

Panel ile Expert Advisor arasındaki bağlantıyı test modunda OnChartEvent() olayları aracılığıyla uygulayacağınızı doğru anlıyor muyum?

Eğer öyleyse, o zaman çok az başarı şansı var çünkü. Test cihazında, Uzman Danışman için OnChartEvent() olayları oluşturulmaz (yalnızca gösterge için).

https://www.mql5.com/en/forum/294890/page4#comment_9914750 burada OnChartEvent() olaylarının OnTick() olayı ile değiştirilmesi önerildi.

Denedim, ancak tüm bileşik nesneler (SpinEdit, ComboBox ve diğerleri) çalışmayı durdurdu. Button.Pressed() test cihazında ve yalnızca bağımsız düğmeler için değişkenlerin değerlerini değiştirmenize izin veren tek yöntem (Düğmeler, SpinEdit türündeki herhangi bir karmaşık nesneye dahil değildir)

SimplePanel проблема при переключении таймфрейма
SimplePanel проблема при переключении таймфрейма
  • 2018.12.16
  • www.mql5.com
В составе стандартного пакета MT4 имеется пример создания панели управления "Simple Panel...
 
Александр :

Konuyu tam olarak anladığımdan emin değilim.

Panel ile Expert Advisor arasındaki bağlantıyı test modunda OnChartEvent() olayları aracılığıyla uygulayacağınızı doğru anlıyor muyum?

Eğer öyleyse, o zaman çok az başarı şansı var çünkü. Test cihazında, Uzman Danışman için OnChartEvent() olayları oluşturulmaz (yalnızca gösterge için).

https://www.mql5.com/en/forum/294890/page4#comment_9914750 burada OnChartEvent() olaylarının OnTick() olayı ile değiştirilmesi önerildi.

Denedim, ancak tüm bileşik nesneler (SpinEdit, ComboBox ve diğerleri) çalışmayı durdurdu. Button.Pressed() test cihazında ve yalnızca bağımsız düğmeler için değişkenlerin değerlerini değiştirmenize izin veren tek yöntem (Düğmeler, SpinEdit türündeki herhangi bir karmaşık nesneye dahil değildir)

Açıklaması uzun. Ama tecrübeme güven. İletişim yöntemi işe yarayacaktır.

Panel düzenli bir grafik üzerinde olacaktır. Test cihazında danışman. Panel, test cihazında Uzman Danışmanı bulacak, MT nesneleri oluşturacak ve açıklamaları aracılığıyla Uzman Danışman ile "iletişim kuracaktır".

Normal bir grafikte OnChartEvent() çalışır. Test cihazında, hayır. Ancak parametre değerlerinin senkronizasyonuna müdahale etmeyecektir.

Eminim işe yarayacaktır.

Bir haftalık soru.

 
Реter Konow :

Açıklaması uzun. Ama tecrübeme güven. İletişim yöntemi işe yarayacaktır.

Panel düzenli bir grafik üzerinde olacaktır. Test cihazında danışman. Panel, test cihazında Uzman Danışmanı bulacak, MT nesneleri oluşturacak ve açıklamaları aracılığıyla Uzman Danışman ile "iletişim kuracaktır".

Normal bir grafikte OnChartEvent() çalışır. Test cihazında, hayır. Ancak parametre değerlerinin senkronizasyonuna müdahale etmeyecektir.

Eminim işe yarayacaktır.

Bir haftalık soru.

çalışmayacak.

Neden: