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

 
Artyom Trishkin :

Durmak. Sen yazdın:

Peki kimin ne tür bir ordusu var, nelerden oluşuyor?

Pekala, “bilge adam” hakkındaki kabalığınızı, Rusça'yı iyi konuşmadığınız gerçeğine yazacağım ve bu itirazın muhataplara karşı aşağılayıcı ve küçümseyen bir tutum anlamına geldiğini anlamıyorum.

Mizah duygunuzu mu kaybettiniz, yoksa ne?

 
Vasiliy Sokolov :

Maalesef evet. Temelde farklı iki sistem arasındaki geri arama arayüzü bulandırılamaz.

Aslında, soru neredeyse retorikti)

IMHO, NET uyumluluğunun eklenmesiyle, terminale geri aramalar eklemek için acil bir ihtiyaç vardır. En az bir) En azından olayı terminal kuyruğuna itmek.

 
Artyom Trishkin :

Bir zamanlayıcı aracılığıyla, test cihazında nasıl çalışmayı düşündünüz? Pekala, platformlar arası kod yaptığınızı söylediniz.

Artyom, ne tür sorular? zamanlayıcı çalışmazsa, diğer kaynaklardan öykünür..

Bu, "savaş robotunda" bile her zaman böyledir, çünkü EventSetTimer :-)

ps / bulaşıcı bir şekilde militarist bir temaya çekilen bir şey .. komuta direkleri, savaş robotları .. "Galakteko tehlikesi"

 
Dmitriy Skub :

Aslında, soru neredeyse retorikti)

IMHO, NET uyumluluğunun eklenmesiyle, terminale geri aramalar eklemek için acil bir ihtiyaç vardır. En az bir) En azından olayı terminal kuyruğuna itmek.

MT5'te olayları yakalamayı başaramadım, nedense Spy++ grafik olaylarını görmüyor , görünüşe göre kendi kendine yazılmış sınıflar ve olay modelleri kullanılıyor ve standart Windows olanları değil, MT4'te sorunsuz bir Windows olayı gönderebilirsiniz

Ayrıca OnTimer üzerinden yoklama yapıyorum ve bu nedenle, modern PC hızlarında, belki de boşuna çok açgözlü olmama rağmen, istekte minimum veri paketini almaya çalışıyorum)))

Artyom Trishkin :

Bir zamanlayıcı aracılığıyla, test cihazında nasıl çalışmayı düşündünüz? Platformlar arası kod yaptığınızı söylediniz.

MT5'te, test cihazındaki zamanlayıcı sorunsuz oluşturulur ve C# altında kod yazmak bir zevktir - .dll'yi aradım, hemen formu başlattı ve ayrı bir iş parçacığına ( Thread ) tüm grafikler ve hepsi bu, o zaman biz yalnızca C# ve MT5 arasında veri alışverişi ile çalışır ve düğmeli formun kendisi normal bir Windows uygulaması gibi çalışır - MT5'ten gelen bir istekte, yalnızca önceden tıklanmış öğelerin durumu iletilir, hiçbir şey yavaşlamaz ve yavaşlamaz; )

 
Maxim Kuznetsov :

Artyom, ne tür sorular? zamanlayıcı çalışmazsa, diğer kaynaklardan öykünür..

Bu, "savaş robotunda" bile her zaman böyledir, çünkü EventSetTimer :-)

ps / bulaşıcı bir şekilde militarist bir temaya çekilen bir şey .. komuta direkleri, savaş robotları .. "Galakteko tehlikesi"

Duc ... Vasily'den bunu nasıl yapacağını bilmek istedim. Kendim uzun zaman önce yaptığımla karşılaştırmak için (tabii ki Vasil'in talimatları olmadan değil)

 
Igor Makanu :

MT5'te olayları yakalamayı başaramadım, nedense Spy++ grafik olaylarını görmüyor , görünüşe göre kendi kendine yazılmış sınıflar ve olay modelleri kullanılıyor ve standart Windows olanları değil, MT4'te sorunsuz bir Windows olayı gönderebilirsiniz

Ayrıca OnTimer üzerinden yoklama yapıyorum ve bu nedenle, modern PC hızlarında belki de boşuna çok açgözlü olmama rağmen, istekte minimum veri paketini almaya çalışıyorum)))

MT5'te, test cihazındaki zamanlayıcı sorunsuz oluşturulur ve C# altında kod yazmak bir zevktir - .dll'yi aradım, hemen formu başlattı ve ayrı bir iş parçacığına ( Thread ) tüm grafikler ve hepsi bu, o zaman biz yalnızca C# ve MT5 arasında veri alışverişi ile çalışır ve düğmeli formun kendisi normal bir Windows uygulaması gibi çalışır - MT5'ten gelen bir istekte, yalnızca önceden tıklanmış öğelerin durumu iletilir, hiçbir şey yavaşlamaz ve yavaşlamaz; )

Test cihazındaki zamanlayıcı aracılığıyla ilk beşte yaptım. Basit kullanımı bile (ve bir milisaniyelik bir multitimerdir) test cihazının ciddi şekilde yavaşlamasına neden oldu. Bu nedenle, görselleştiricideki zamanlayıcıyı reddettim - çalışmak için keneler üzerinde bir incir var. İki model yaptım - zamanlayıcıya göre ve OnTick() aracılığıyla olay bayraklarına göre. Gerçek zamanlı olarak zamanlayıcıya göre, kenelere göre - görselleştiricide.

not. Yalan söylüyorum - üç model - ayrıca OnChartEvent () aracılığıyla - ayrıca sadece gerçek zamanlı var.

 
Igor Makanu :

MT5'te olayları yakalamayı başaramadım, nedense Spy++ grafik olaylarını görmüyor , görünüşe göre kendi kendine yazılmış sınıflar ve olay modelleri kullanılıyor ve standart Windows olanları değil, MT4'te sorunsuz bir Windows olayı gönderebilirsiniz

Ayrıca OnTimer üzerinden yoklama yapıyorum ve bu nedenle, modern PC hızlarında belki de boşuna çok açgözlü olmama rağmen, istekte minimum veri paketini almaya çalışıyorum)))

MT5'te, test cihazındaki zamanlayıcı sorunsuz oluşturulur ve C# altında kod yazmak bir zevktir - .dll'yi aradım, hemen formu başlattı ve ayrı bir iş parçacığına ( Thread ) tüm grafikler ve hepsi bu kadar, o zaman biz yalnızca C# ve MT5 arasında veri alışverişi ile çalışır ve düğmeli formun kendisi normal bir Windows uygulaması gibi çalışır - MT5'ten gelen bir istekte, yalnızca önceden tıklanan öğelerin durumu iletilir, hiçbir şey yavaşlamaz ve yavaşlamaz; )

Modeli MQL düzeyinde karıştırırsanız ve geri kalanını Sharpei'de karıştırırsanız, tamamen daha güzel hale gelebilir. O zaman mantık ayrı, görüş ayrı. Ön uç, kullanılabilirlik ile tasarımla uğraşır ve geri alım satıma uymaz. Form üzerindeki butonların konfigürasyonunu değiştirmek veya formu ikiye veya üçe bölmek danışmanın algoritmalarını hiçbir şekilde etkilememelidir.

 
Vasiliy Sokolov :

Piotr, sakıncası yoksa MQL'de .Net kitaplıkları ile yeni entegrasyonu kullanarak nasıl kolayca grafik uygulama oluşturabileceğinize dair bir makale hazırlayacağım. Makalenin başlığı ".Net Framework ve C# Tabanlı Uzman Danışmanlar için VisualStudio'da Özel Formlar Oluşturma" olacaktır.

Yaklaşımınız ve fikirleriniz beni rahatsız etti. Kendime sordum: Sadece temel programlama yeteneklerine sahip olarak, uzmanım için kolay ve hızlı bir şekilde bir grafik formu oluşturmak mümkün mü? Bir deney yaptım ve bunun mümkün olduğu ortaya çıktı! Bunun gibi bir formum var:

Buradaki fikir, kullanıcının ihtiyaç duyduğu formu VisualStudio düzenleyicide çizmesi ve bu pencereyi MQL koduyla birleştirmek için gerekli tüm çalışmaların otomatik modda "perde arkasında" yapılmasıydı. Bunu yapmak için, C#'ta küre kompakt bir denetleyici yazmam gerekiyordu - çekirdeğinizin bir tür analogu, ancak bu yalnızca yaklaşık 200 satır kod alıyor.

Başladığım makalede her şeyin nasıl çalıştığını okuyabilirsiniz.

Hepsi bu, Vasily, kovayı bakır bir leğenle kapladı.

 
Dmitry Fedoseev :

Hepsi bu, Vasily, kovayı bakır bir leğenle kapladı.

genel olarak böyle bitmesi bekleniyor ama henüz kesinleşmiş bir yazı yok..

ancak böyle bir makalenin çekirdek motordan daha erken yayınlanma şansı %99'dur. Peter'ın kalan yüzdeyi karşılaması gerekiyor

 
Artyom Trishkin :

Test cihazındaki zamanlayıcı aracılığıyla ilk beşte yaptım. Basit kullanımı bile (ve bir milisaniyelik multitimerdir) test cihazının ciddi şekilde yavaşlamasına neden oldu. Bu nedenle, görselleştiricideki zamanlayıcıyı basitçe reddettim - çalışmak için keneler üzerinde bir incir var. İki model yaptım - zamanlayıcıya göre ve OnTick() aracılığıyla olay bayraklarına göre. Gerçek zamanlı olarak zamanlayıcıya göre, kenelere göre - görselleştiricide.

not. Yalan söylüyorum - üç model - ayrıca OnChartEvent () aracılığıyla - ayrıca sadece gerçek zamanlı var.

Henüz tasarıma karar vermedim, test cihazında sorunsuz çalıştığını kontrol ettim, teşekkürler @fxsaber #define koduna yardımcı oldu - kapsayıcıyı bağlarken otomatik olarak OnTick(), OnTimer() işleyicilerini ekliyorum... EA'nın herhangi bir bölümünde gerekli aramaları tamamlayabilirim

nerede yavaşlayabileceğini bile anlamasam da? Zamanlayıcıyı oldukça sık 400 ms kullanıyorum, ancak çağrı sadece 10 el-in ve 2 int'lik .dll 2 int dizilerinden (kaç düğme ve kaç onay kutusu, böyle bir dizi boyutu) geliyor, fiziksel olarak hiçbir şey yapamaz yavaşla, çünkü butonlara tıklandığında dizilere yazsam ve butonun numarasını int'ye geçirsem bile prensipte diziye gerek yok, güvenlik için kullanıcının sinirleri bozuksa ve o yapacak. düğmeye 0,5 saniyeden daha hızlı vurun)))

burada sadece farklı görevlerimiz var, görünüşe göre, bir araç yapmaktan bahsediyorsak, o zaman grafiklere gerek yok, bir aracın hatalarını ayıklamaktan ve görselleştirmekten bahsediyorsak, o zaman burada test cihazının hızına gerek yok;)


Maksim Kuznetsov :

Modeli MQL düzeyinde karıştırırsanız ve geri kalanını Sharpei'de karıştırırsanız, tamamen daha güzel hale gelebilir. O zaman mantık ayrı, görüş ayrı. Ön uç, kullanılabilirlik ile tasarımla uğraşır ve geri alım satıma uymaz. Form üzerindeki butonların konfigürasyonunu değiştirmek veya formu ikiye veya üçe bölmek danışmanın algoritmalarını hiçbir şekilde etkilememelidir.

! Bunu kendime saklayacağım, iyi yayınlar! , ve eğer kamu tartışması için olgunlaşırsam açıklamaya yazacağım