"Alım Satım Modellerine Dayalı Çoklu Uzman Danışmanlar Oluşturma" makalesi için tartışma

 

Yeni makale Alım Satım Modellerine Dayalı Çoklu Uzman Danışmanlar Oluşturma yayınlandı:

MQL5'te nesne yönelimli yaklaşımı kullanmak, çoklu para birimli/çoklu sistemli/çoklu zaman dilimli Uzman Danışmanların oluşturulmasını büyük ölçüde basitleştirir. Tek bir EA ile birkaç düzine alım satım stratejisinde, mevcut tüm araçlarda ve olası tüm zaman dilimlerinde işlem yapabildiğini hayal edin! Buna ek olarak, EA test edicide kolayca test edilir ve bileşimine dâhil edilen tüm stratejiler için bir veya birkaç para yönetimi çalışma sistemine sahiptir.

Genel olarak, kurduğumuz etkileşim sistemi aşağıdaki şema ile tanımlanabilir:

Modellerin sıralanması yukarıdaki kodda gösterildiği gibi OnTick() fonksiyonu içinde gerçekleşse de tamamen böyle olması gerekmediğini unutmayın. Sıralama döngüsü OnTrade() veya OnTimer() gibi istenen herhangi bir başka fonksiyona kolayca yerleştirilebilir. 

Yazar: Vasiliy Sokolov

 

Vasily, açıkçası daha iyisini beklerdim. Bu eserde, önerinizin anlamı ile okuyucunun kafasını karıştırmayı başardınız.

Ancak bunu çok daha basit bir şekilde adlandırabilirdiniz - "MT5 terminalinde MQL4 mantığı ile Uzman Danışman ticareti nasıl yapılır". Ve dikkat etmeniz gereken şey budur.
Bu temel taşa odaklanmış olsaydınız, çok daha derli toplu ve anlaşılır olurdu.

Ve böylece, önce dinamik listeler ve bunların bu özel durum için uygulamalarını yüklediniz. Sonra bir sanal emirler tablosu ile.

MQL4'ün tüm mantığı, İKİ yöntemin işlevselliği kullanılarak MQL5'te çözülmüştür!
1. Terminal geçmişinden zararı durdur ve kar al biletlerinin geri yüklenmesi
2. Bunlardan biri gerçekleştiğinde daha fazla kontrol edilmeleri. Bunlardan biri tetiklendiğinde veya ana oderer silindiğinde daha fazla kontrol edilmeleri.

Ve sonra, bu iki GENEL işlevi açıkladıktan sonra, dinamik dizilere ve "models-mql4-experts" oluşturmaya geçin.

Bekleyen emirlerle çalışmayı açıklamamış olmanız çok kötü. piyasa emirlerinden daha karmaşık olmamalarına rağmen. sadece gerçek zararı durdur ve kar al emirlerinin yerleştirilmesini geciktirirler.

Bazı nedenlerden dolayı okuyucuya <Time.mqh> adlı işe yaramaz bir dosya yüklemişler ve bu dosyanın işlevleri pek de güzel değil.

Sonra emir sayma, lot kontrolü için fonksiyonlar.

Görünüşe göre uzmanlarla çalışma konusundaki tüm bilginizi makaleye koymaya çalışmışlar ve makalenin asıl amacını bu büyümenin altına gömmüşler.

Peki, ve verilen modellerde - bir emirde zararı durdur ve karı al'ı nasıl kullandığınızı anlamadım. Ne IACD'de ne de Bolinger'de stop kullanımını bulamadım.

Genel olarak, makaleyi okumaktan zevk almadım. parlak bir fikri gömen çok fazla gereksiz ağırlık var.

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 

Evet, işlem listesini hesap geçmişinden (veya kendi dosyanızdan) geri yüklemeden, bir test oyuncağı olduğu ortaya çıktı.

 
udmurt2:

Bekleyen sipariş lerle çalışmayı açıklamamış olmanız çok kötü.

Bekleyen emirlerle çalışma var, ancak makalenin en sonunda yazıyor. (muhtemelen okuyacak sabrınız yoktu :)).

Genel olarak makaleyi anlamak gerçekten zor. Bilgi sunumu açısından daha iyi yapılandırılabilirdi.

 

Kime:Udmurt2

Sizce MQL4 uzmanlarının mantığı benim makalemin neresinde? Sizin tarafınızdan yazılan incelemeden, malzemeyi tam olarak anlamadığınız izlenimini edindim. Pek çok açıdan bu benim hatam elbette, belki de gerçekten daha iyi yapılandırılmalıydı.

--------------------------------

Makalenin yapısını iyileştirmek için özel önerileriniz var mı?

Katılıyorum, pek çok şey "perde arkasında" bırakıldı. Bu sürümü 1.0 olarak düşünün. İşte tanıtılması planlananlar:

1. Veri dosyalarına dayalı verilerin serileştirilmesi;

2. Model işlemlerinin geçmişinin sipariş geçmişine göre yeniden yapılandırılması;

3. Bekleyen emirlere dayalı modelin tam açıklaması;

4. Karşılıklı sayılan emirlerden oluşan karmaşık bir sistem kullanılarak alım satım modelinin tanımlanması;

5. Her modelin verimliliğinin dinamik kontrolü (verimsiz modellerin model listesinden çıkarılması).

6. Harici işlevlerin alım satım modellerinden çekilmesi, örneğin sermaye yönetimi işlevleri.

7. Multithreading desteği (MT5 dahili paralelleştirme sayesinde şimdi kısmen kullanılıyor).

...

Gördüğünüz gibi, hala dikkate alınması gereken materyal o kadar kapsamlı ki, bunun üzerine başka bir makale yazmanın zamanı geldi, tabiri caizse ikinci bölüm. Bu makale bir lastik makale değil, zaten kendime koyduğum görevlerin çözüldüğüne inanıyorum. Ve burada Udmurt2 özellikle yanılıyor. Önerilen yaklaşımın temeli dinamik listelerdir, bekleyen emirlerle hiç çalışmaz (nedense ona göründüğü gibi). Bu yüzden onlara bu kadar çok dikkat ediliyor. Genel olarak, bekleyen emirleri kullanmadan çözülemeyecek hiçbir strateji olmayacaktır. Bununla birlikte, önerdiğim yaklaşım, aynı durdurma ve çıkarma işlemlerini simüle eden bekleyen emirlerin kullanımına herhangi bir kısıtlama getirmemektedir. Ancak, bu durumda ek kontroller ve program alt sistemleri gereklidir, özellikle de Trade() olayını tanımlayan bir yapı çok faydalı olacaktır. Ve böyle bir yapı yokken (çünkü MQL5 gelişiyor), var olmayan olasılıklar için kontrol sistemleri yazmanın tam bir çılgınlık olduğunu düşünüyorum.

Bu arada, en basit durumda, birkaç saat içinde dosyalardan bir ticaret geri yükleyici yazabilirsiniz. Ancak, bu konu makalede dikkate alınmadı, çünkü bu çözümü sadece aceleyle yazılmış bir çözüm değil, iyi düşünülmüş bir çözüm haline getirmek istiyorum. Her durumda, ikinci bölümde çözülecek birçok ilginç sorundan biri olacak.

MQL5 şu anda gelişiyor. MQL5'in yanı sıra önerilen yaklaşım da zaman içinde gelişecek ve fırsatlar kazanacaktır. Bazı kişilere şu aşamada bir test uzmanı için oyuncak gibi görünebilir. Bu durumda MetaTrader 5'in de demo hesaplar için bir oyuncak olduğunu söyleyebiliriz. Ancak inanın bana, çok fazla zaman geçmeyecek ve MT5 fiili bir standart haline gelecek ve önerdiğim yaklaşım çoklu para birimi / çoklu çerçeve / çoklu sistem ticareti için güçlü bir çözüm olacak. Şimdi asıl önemli olan temelleri anlamaktır. Bu temeller, bu makalede ana hatlarıyla belirttiğim şeylerdir. Bunları anladıktan sonra, bekleyen emirlerin tüm avantajlarını kullanarak ve işlemlerinizi dosyalara kaydederek kendi işlem modelinizi kolayca yazabilirsiniz.

 
Oh, ve bir şey daha. Aktif bir MTS tüccarı olduğum için başlangıçta önerilen ticaret motorunu kendim için yazdım. Böyle bir motora ihtiyacım vardı, böylece gelecekte gerçek hesaplar üzerindeki çalışmalarda kullanabilirdim. Şimdi gerçek hesaplar yok ve MT5'e tam teşekküllü bir geçiş henüz gelmedi. Bu nedenle, gerçek hesaplarda işlem yapmak için gerekli olan önerilen model dahilinde gerekli işlevselliği düşünmek ve uygulamak için hala zamanım var. Her halükarda, yüksek derecede kapsülleme ve esnek bellek yönetimi sayesinde yüksek derecede ölçeklenebilirlik ve çok yönlülük elde edildiğine inanıyorum. Önerilen yaklaşım temelinde, listedeki her bir alım satım modeli için bir verimlilik kontrol sistemi, her bir model için bireysel bir kapitalizasyon sistemi (halihazırda uygulanmaktadır), bir alım satım modelinin listeye koşullu olarak dahil edilmesi/çıkarılması sistemi (piyasanın, modelin verimli veya verimsiz olduğu belirli biçimlendirilmiş özelliklere sahip olması durumunda, dinamik olarak listeye dahil edilir veya listeden çıkarılır) gibi birçok ilginç hizmet alt sistemi oluşturmak mümkündür. Dahası, algoritma yüzlerce modeli aynı anda işleyebilir (gelecekte standart yollarla çoklu iş parçacığı eklenmesi planlanmaktadır). Söyleyin bana, önerilen başka hangi yaklaşım bu kadar esnekliğe ve kontrol edilebilirliğe sahiptir?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
C-4:

Sizce MQL4 uzmanlarının mantığı benim makalemin neresinde?

en başını açın ve okuyun:

İşte çözmemiz gereken ana görevler:

  1. Bir Uzman Danışman, aynı anda birkaç ticaret sistemi temelinde ticaret yapmalıdır. Aynı zamanda, hem bir hem de birkaç ticaret sistemi ile ticaret yapmak eşit derecede kolay olmalıdır;
  2. Uzman Danışmana dahil olan tüm ticaret sistemleri birbiriyle çelişmemelidir. Her ticaret sistemi, yalnızca toplam pozisyona katkısını ve yalnızca emirlerini işlemelidir;
  3. Toplam sistemlerden herhangi birinin hem enstrümanın bir zaman diliminde hem de aynı anda tüm zaman dilimlerinde ticareti eşit derecede kolay olmalıdır.
  4. Toplam sistemlerden herhangi biri, hem bir alım satım aracında hem de mevcut tüm araçlarda aynı anda işlem yapmak için eşit derecede kolay olmalıdır.

ve tüm bu noktalarla MT4 terminalinin mantığı açık ve kesin bir şekilde tanımlanmıştır

1. Sihir ve net pozisyonun olmaması sayesinde aynı anda birkaç Uzman Danışmana liderlik edebilir.
2. Uzmanlar, aynı sihir ve net pozisyonun olmaması sayesinde birbirleriyle çatışmazlar.
3. Her şey herhangi bir zaman diliminde işlem görür. Her şey herhangi bir zaman diliminde işlem görür
4. Her şey herhangi bir enstrümanda işlem görür. Her şey herhangi bir enstrüman üzerinde işlem görür.

SORU:MT4 terminalinde olmayan yeni ne yazdınız?

Yukarıda, mantığınızı MQL4'ün temelinden oluşturabileceğinizi ve uygulamasını geliştirebileceğinizi yazdım. böylece ne söylemek istediğiniz çok daha net olacaktır.

Makalenin yapısını nasıl geliştirebileceğinize dair özel önerileriniz var mı?

Magik-ticket ile durakların muhasebeleştirilmesinden bir ticaret Uzman Danışmanı-mt4
modeli oluşturmaya kadar adım adım bir şekilde inşa ederdim ve ancak o zaman birkaç Uzman Danışmanı kontrol etme yöntemlerine geçerdim. (listeler/listesizler zaten başvurma havasında olacak)

Bu sürümü 1.0 olarak kabul edin. Tanıtılması planlananlar şunlardır:
2. Model işlemlerinin geçmişinin emir geçmişine göre yeniden yapılandırılması;
3. Bekleyen emirlere dayalı modelin tam açıklaması;
4. Karşılıklı sayılan emirlerden oluşan karmaşık bir sistem kullanan alım satım modelinin açıklaması;

2-4. maddeler bu makalede hemen çözmeniz gerekenler. diğer her şey kötü olandan. ve programcının takdirine veya ikinci makaleye bırakılabilirdi.

Ve burada Udmurt2 özellikle yanılıyor. Önerilen yaklaşımın temeli dinamik listelerdir, bekleyen emirlerle hiç çalışmaz (bazı nedenlerden dolayı ona göründüğü gibi). Bu yüzden onlara bu kadar çok dikkat ediliyor.
Nasıl bakarsanız bakın, ancak bu yöntemin temeli (ilk görevleriniz ve bu makalenin amacı) listeler değil, MT5 net pozisyonunu MT4 Uzman Danışmanlarının mantığına yaymak ve duraklarını magik-ticket aracılığıyla işlemektir.

Dinamik listeler, sıradan bir dizi ile yapabileceğiniz kontrol ve muhasebe yöntemlerinden yalnızca biridir.

Söyleyin bana, önerilen başka hangi yaklaşım bu kadar esnekliğe ve kontrol edilebilirliğe sahiptir?

herhangi bir MT4 uzmanı :)))

 

C-4:

Bazı insanlara şu aşamada bir test cihazı için bir oyuncak gibi görünebilir. Bu durumda MetaTrader 5'in artık demo hesaplar için de bir oyuncak olduğunu söyleyebiliriz.

Evet, öyle ;)

Ancak MT sonuçlandırılıyor. Ve makalede önerilen kod gerçek hesaplar için yazılmış olabilir.


Bu arada, Şampiyona Uzman Danışmanı nasıl? Yeniden başlatmalardan muzdarip mi?

 

Vasily, çok çalışıyor olmalısın. Bazen başa dönmeniz ve her şeyi yeniden yapmanız gerekir. İnsanların her şeyi karmaşıklaştırma eğiliminde olduğuna bininci kez ikna oldum. Size dostça tavsiyem - MT4 terminal işleminin ana mantığı üzerine temel sınıflarınızı doğrusal bir cihazla yeniden yapın. Pek çok şey daha açık hale gelecektir.
Aksi takdirde ikinci makaleyi yazmak zorunda kalacağım :)

 
komposter:

Evet, öyle ;)

Ancak MT son halini alıyor. Ve makalede önerilen kod, gerçek bir bakış açısıyla hemen yazılabilirdi.

Bu arada, Şampiyona EA'sı nasıl? Yeniden başlatmalardan zarar gördü mü?


Acı çekti ama önemli ölçüde değil. Elbette, yerleşik bir başlatma/deinitializasyon olay işleyicisi vardı. Ancak bir şeyi hesaba katmamıştım: başlatma ve devre dışı bırakma işlemleri mesai saatleri dışında, örneğin Cumartesi günü gerçekleşebilir, şampiyona organizatörleri de bunu ayarladı. Bu sadece birkaç satır kodla çözülebilir, ancak böyle sinsi bir kombinasyonu fark etmedim (her şeyi hesaba katamazsınız), bu yüzden bir yerlerde 1 çok şey kayboldu.

En yakın zamanda basit bir veri serileştirmesi yazmaya ve bunu makaleye eklemeye çalışacağım (prensipte iki gün sürecek). Bununla birlikte, gerçek zamanlı hesaplar (demo ve gerçek) üzerinde çalışmak için tam teşekküllü bir ürün olacak. Yani bunun bir testçi için bir oyuncak olduğunu söylüyorsunuz. Gerçek hesaplarda güvenilir kullanım için bakım kodunun yalnızca %5-6'sından yoksundur.

Ayrıca böyle bir şey sunmayı planlıyoruz: diyelim ki soyut bir ticaret modeli var. Yalnızca bekleyen emirleri kullanır (duraklar, çıkışlar, giriş noktaları). Bunu motorda kullanmanın iki yolu olacaktır: tüm giriş noktaları sanal olacak, komisyoncunun gözünden gizlenecektir. İkinci seçenek: güvenilirliği artırmak için tüm alım durakları ve giriş noktaları bekleyen emirlerde olacaktır. Her model için iki tür sanallaştırma (bekleyen ve sanal) olması ilginçtir. Yani şöyle olacak: switch virtual_orders=true; - ve tüm emirler sanaldır, komisyoncunun gözünden gizlenir; switch virtual_orders=false; - ve tüm emirler sihirli bir şekilde beklemede olur. En iyisi, modelden özel bir destek gerekmeyecek, her şey motor seviyesinde uygulanacak. Modellerin yalnızca giriş noktaları için emir türünü belirtmesi gerekecek, durdurma ve alma türleri virtual_orders anahtarına bağlı olarak bağımsız olarak seçilecektir.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

Kime:Udmurt

Lütfen bana ne yapmam ve ne yapmamam gerektiğini söylemeyin. Ben sizin çıkarlarınıza hizmet etmiyorum ve sizin için çalışmıyorum.

Konuşmamızı saçmalık olarak görüyorum, çünkü kendi ifadelerinizin özünü bile tam olarak anlamıyorsunuz. Bana MQL4'ü gerçekten anladığınızı ve bunun üzerine bir ticaret uzmanı yazdığınızı, örneğin aynı anda 500 farklı ticaret modelinde işlem yaptığınızı kanıtlayın. Örnek olarak 5 strateji * 20 enstrüman * 5 zaman dilimi alalım. Uzman Danışmanınız en azından test cihazında bunlar üzerinde açıkça çalıştığında, o zaman ve ancak o zaman söylediğiniz aşırı ısınmış saçmalıkların gerçekten saçmalık olmadığını, zeki bir kişinin yararlı açıklamaları olduğunu kabul edeceğim. Şimdi sizden bir iyilik istiyorum: beni boşuna rahatsız etmeyin ve bu uzmanın kaynak kodu olmadan benimle iletişim kurmaya bile çalışmayın.