Bir sınıf olarak satın al stop Sat stop Grid Expert Advisor

 

proje açıyorum

Proje Uzman Danışmanı Satın al dur Sat dur Grid sınıf olarak

bekleyen durdurma emirleriyle çalışma stratejisini test etmek için.

Ticaretin özü: Başlangıçta iki stop bekleyen emir koyduk (Satın alma stop ve Sell stop). Biri işe yaradı - ikincisini sileriz (sonra sadece değiştiririz, ama şimdilik sadece sileriz) ve yine iki bekleyen emri durdurur.

Anlamı: trende göre bir dizi pozisyon.

Resim (bir eğilim olduğunda ve bekleyen birkaç sipariş tetiklendiğinde sonuç):

Satın al durdur Sat durdur Grid

(biraz sonra...).


Tam koda erişim nasıl geçecek: SADECE projeye bağlantı yoluyla ve parçalar elbette bu başlıkta tartışılacaktır. EA'nın kendisi bir sınıf (*.mqh) biçiminde olacaktır.


Katma:

Expert Advisor'ın çalışması sırasında OnTradeTransaction'da diziye veriler yazılır. Kayıt formatı şu şekildedir: Alış pozisyonu açıksa "+1", Satış pozisyonu açılmışsa "-1" yazarız.

Piramit fikrini kontrol edelim (bir önceki pozisyon yönünde pozisyon açma durumları için)

 
Vladimir Karputov :

Bekleyen durdurma emirleriyle çalışma stratejisini test etmek için bir proje açıyorum.

Ticaretin özü: Başlangıçta, iki stop bekleyen emir koyduk (Al stop ve Sell stop). Biri işe yaradı - ikincisini sileriz (sonra sadece değiştiririz, ama şimdilik sadece sileriz) ve yine iki bekleyen emri durdurur.

Anlamı: trende göre bir dizi pozisyon.

Resim:

(biraz sonra...).


Tam koda erişim nasıl geçecek: SADECE projeye bağlantı yoluyla ve parçalar elbette bu başlıkta tartışılacaktır. EA'nın kendisi bir sınıf (*.mqh) biçiminde olacaktır.


Şimdi sıraya benzer bir şey yapıyorum, sadece daha karmaşık

 

Bu projeyi ilgiyle takip edeceğim...

 
Vasily Bykov :

Bu projeyi ilgiyle takip edeceğim...


Lütfen projeye bağlanmak isteyip istemediğinizi belirtin ( Projeler - MetaEditor ) ?

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Hey!


Bu tür robotlar biliniyor ve var. Ve projenizin amacı nedir?
 
Alexander Ivanov :

Hey!


Bu tür robotlar biliniyor ve var. Ve projenizin amacı nedir?

Ana hedefler yukarıda açıklanmıştır:

  • bu, ayrı bir sınıf şeklinde bir danışmanın yaratılmasıdır.
  • proje geliştirme ( Projeler - MetaEditor )
  • bekleyen emirleri durdurmada ticaret stratejisini kontrol etme

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Konu benim için ilginç. Her şeyden önce, "sınıf şeklinde" koşulu.

"Tamamen bir sınıf şeklinde" var - işe yaramadı. Sistem mimarisi, OnInit() , OnTick() ve diğer standart işlevleri tanımlayan Core şablonunu içerir. Ayrıca, tüm bu olayların işleyicileri olan sınıfın üyeleri olan - işlevleri olan - CExpert sınıfının bir nesnesini bildirir. Ana Şablonda, üye işlevler standart işlevlerden çağrılır.

Yani, danışman sınıfının olay işleyicilerinin çağrıldığı standart işlevler olduğundan, zaten "tamamen bir sınıf biçiminde değil" var.

Ve ayrıca, bu mimaride - aynı danışman sınıfını değiştirmek istiyorsak - bu şablon dosyasının tamamını yeniden yazmamız gerektiği ortaya çıkıyor. Rahatsız. "Sınıf olarak Uzman Danışman" şöyle görünmelidir: EA sınıfını ilan edin (tüm açıklaması dahil edilen dosyalardadır), şablonu ekleyin ve hepsi bu kadar.

Yani, şablonun standart işlevler, Uzman Danışmanı bu standart işlevlere bağlayan bir yoğunlaştırıcı nesne içermesi gerektiği ortaya çıktı ve ardından ana dosya "doğru yapıya" indirgenebilir - Uzman Danışman nesnesinin bildirimi, ve şablonun bağlantısı. Bu durumda, ana dosyada bir danışman nesnesi bildiririz, Ana Şablonu bağlarız, Ana Şablonda hub nesnesi, danışman nesnesini kaydeder ve işleyici işlevlerini standart olay işlevlerine bağlar.

Burada birçok TS'yi bir Expert Advisor'da bile uygulayabilirsiniz - bunun için birkaç uzman danışman nesnesi ilan ediyoruz ve hub sınıfı hepsini ana işlevlere bağlar ve birbirlerinden bağımsız olarak çalışırlar (tabii ki, bağlanırken şunları yapmanız gerekir: büyülerdeki farkı kontrol edin ve uzmanların kendileri sihirbazlarının pozisyonlarını seçmelidir).


"Beni projeye bağla"ya gelince - Salt Okunur modunda bağlanmaya hazırım - Bir şey yazmam pek mümkün değil, ancak bir göz atabilir, bir şeyler önerebilir, hataları işaret edebilirim.

 
George Merts :

***

Ve ayrıca, bu mimaride - aynı danışman sınıfını değiştirmek istiyorsak - bu şablon dosyasının tamamını yeniden yazmamız gerektiği ortaya çıkıyor. Rahatsız. "Sınıf olarak Uzman Danışman" şöyle görünmelidir: EA sınıfını ilan edin (tüm açıklaması dahil edilen dosyalardadır), şablonu ekleyin ve hepsi bu kadar.

***

... şablonu bağlayın ve giriş parametrelerini EA sınıfına iletin


George Merts'in fotoğrafı.

***

"Beni projeye bağla"ya gelince - Salt Okunur modunda bağlanmaya hazırım - Bir şey yazmam pek mümkün değil, ancak bir göz atabilir, bir şeyler önerebilir, hataları işaret edebilirim.


Bitti, bağlandı.

 
Vladimir Karputov :

... şablonu bağlayın ve giriş parametrelerini EA sınıfına iletin



Bitti, bağlandı.

Ö ! Böyle bir şey var. Dosyalar orada. Zamanım olduğunda, orada ne olduğunu göreceğim.

 
Ibragim Dzhanaev :

Programlamayı bilmeyen, katılamaz?


Herkes katılabilir - yalnızca projeye katılma arzusunu ifade edenler TAM koda erişebilir ( Projects - MetaEditor ). Konuda proje hakkında bir tartışma olacak - bu nedenle, herhangi birinin (hatta bir programcının, hatta bir kullanıcının bile) görüşü değerli olacaktır.

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 
Ibragim Dzhanaev :

Nasıl programlayacağımı bilmiyorum ama 4-ku'yu bir araya getirdim, senin fikrin.



Burada sadece mql5. Eski terminal listede yok.

Neden: