MQL5 Sihirbazı ve Standart Ticaret Sınıfı Kitaplığı hakkında sorular - sayfa 6

 
uncleVic :
Bunun için master ve sınıflar şimdilik "bakım modu"na geçirilmiştir. Sınıflar, en basit çoklu para birimi tüccarlarını oluşturmak için zaten uyarlanmıştır (şu anda hazır değil, ancak daha sonra buraya bir örnek koyacağım).

Master tarafından oluşturulana dayalı olarak sınıflardan çoklu para birimini bungled. Ancak aynı zamanda EXPERT sınıfının düzeltilmesi gerekiyordu.

İçinde, en başta, INIT () yönteminde, çalışan bir sembol için bir kontrol vardır ve buna göre karikatürler çalışmaz. Çek kaldırıldı ve her şey gitti. Bak, zaman olacak - en azından bu fikir ???

if(symbol!=Symbol() || period!=Period()) 

на

 if(period!=Period())

Dosyalar:
Master01_ML.mq5  14 kb
 

Merhaba moderatör!

Bir sorum var:

MQL5 Sihirbazı, sapmaları, aşırı alımları, aşırı satımları vb. tespit etmek için analiz gerçekleştiren 20 sinyal modülüne sahiptir. Aynı şeyi analiz etmek için MQL5 Sihirbazı'ndan bu tür herhangi bir sinyal modülünü bu kitaplıktan ödünç almanın mümkün olup olmadığını söyleyebilir misiniz? gösterge özel , kendi gelişimi ve bunun için ne yapılması gerekiyor? Çok fazla bitirme işi (tekrar işleme) gerektirecek mi yoksa standart teslimattan modülde (kopyasında) bir şeyi değiştirmek yeterli mi?

Şimdiden teşekkürler!

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 

ForexMoneyMaker :

Bu kitaplıktan MQL5 Sihirbazından bu tür herhangi bir sinyal modülünü ödünç almanın mümkün olup olmadığını, kendi tasarımımızla aynı, ancak özel bir göstergeden ödünç almanın mümkün olup olmadığını ve bunun için ne yapılması gerektiğini söyleyebilir misiniz? Çok fazla bitirme işi (tekrar işleme) gerektirecek mi yoksa standart teslimattan modülde (kopyasında) bir şeyi değiştirmek yeterli mi?

İyi soru! İşte bu yüzden - gerçekten de, standart modüllerde minimum değişiklikle, sadece bir gösterge yerine başka bir gösterge ekleyerek yeni bir modül oluşturabilirsiniz. Bu konuda kendimiz ne zaman bir makale yazabileceğimizi bilmiyorum, bu yüzden şunu öneriyorum:

Kim sahip ki "Standart bir sinyal modülüne dayalı olarak kendinizinkini nasıl oluşturabilirsiniz" başlıklı bir makale yazma bilgisi ve arzusu - bana kişisel olarak yazın.

 
Erm955 :

Master tarafından oluşturulana dayalı olarak sınıflardan çoklu para birimini bungled. Ancak aynı zamanda EXPERT sınıfının düzeltilmesi gerekiyordu.

İçinde, en başta, INIT () yönteminde, çalışan bir sembol için bir kontrol vardır ve buna göre karikatürler çalışmaz. Çek kaldırıldı ve her şey gitti. Bak, zaman olacak - en azından bu fikir ???

if(symbol!=Symbol() || period!=Period()) 

на

 if(period!=Period())

Fikir aynı, ancak:

1. CExpert sınıfını değiştirmek iyi değil. Init(...) yöntemini geçersiz kılarak ondan miras almak iyidir.

2. CExpert sınıfını değiştirmeniz gerekmez. Yazmanız gerekir:

...
   if (!ExtExpert_EG.Init( Symbol (), PERIOD_M10 ,Expert_EveryTick,Expert_MagicNumber))
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing expert" );
      ExtExpert_EG.Deinit();
       return (- 1 );
     }
   ExtExpert_EG. Symbol ( "NZDUSD" );
...

Şimdilik olsun...

 
ForexMoneyMaker :

Merhaba moderatör!

Bir sorum var:

MQL5 Sihirbazı, sapmaları, aşırı alımları, aşırı satımları vb. tespit etmek için analiz gerçekleştiren 20 sinyal modülüne sahiptir. Aynı şeyi analiz etmek için MQL5 Sihirbazı'ndan bu tür herhangi bir sinyal modülünü bu kitaplıktan ödünç almanın mümkün olup olmadığını söyleyebilir misiniz? gösterge özel , kendi gelişimi ve bunun için ne yapılması gerekiyor? Çok fazla bitirme işi (tekrar işleme) gerektirecek mi yoksa standart teslimattan modülde (kopyasında) bir şeyi değiştirmek yeterli mi?

Şimdiden teşekkürler!


İngilizce foruma bakın. burada
 
uncleVic :

Fikir aynı, ancak:

1. CExpert sınıfını değiştirmek iyi değil. Init(...) yöntemini geçersiz kılarak ondan miras almak iyidir.

2. CExpert sınıfını değiştirmeniz gerekmez. Yazmanız gerekir:

Şimdilik olsun...

Init () yöntemini, ondan çalışan bir sembol kontrolü hariç, yeniden tanımlamak gerekir. Ve 2. madde uygun değildir, çünkü Init () yönteminde, diğer şeylerin yanı sıra, Basamak basamaklarının sayısı için bir kontrol vardır ve çalışma sembolü 5 basamaklıysa ve test edilen 3 basamaklıysa, o zaman olacaktır. duraklar / karlar ile bir hata olun. Miras aldım ve geçersiz kıldım. Şimdi her şey çalışıyor.

Tabii ki, ben harika bir OOP uzmanı değilim, ancak programı farklı sayıda test edilmiş karakter için esnek bir şekilde yapılandırmak için programda aptalca puanlama yapılması gerektiği ortaya çıktı, örneğin 21 adet kod (için tüm karakterler) ve ardından kodun belirli bir bölümünden geçmek için giriş parametrelerinden seçim yöntemini kullanın. OOP olmadan ben de aynısını yaptım ama internetteki göstergelerin tüm tutamaçları ve değerleri dinamik dizilere konulmuştu ve daha sonra OnTike bu dizileri zaten kullanmıştı. Yani, OOP'nin avantajlarını henüz görmedim?

P S. Tam olarak yazmadım. Karakterlerle aynı anda test edeceğim kadar çok kod parçasını çekiçlemem gerekiyor. Aynı anda çalışan sembollerin sayısının ayarlanması sırasında verileri (tutamaklar ve gösterge değerleri) bir şekilde dinamik olarak bağlamak mümkün olabilir. Sorun, tüm bunların Init'e bağlanması ve OnTic/OnTimer'da kullanılması gerektiğidir.

Dosyalar:
Master02_ML.mq5  20 kb
 
Erm955 :

Init () yöntemini, ondan çalışan bir sembol kontrolü hariç, yeniden tanımlamak gerekir. Ve 2. madde uygun değildir, çünkü Init () yönteminde, diğer şeylerin yanı sıra, Basamak basamaklarının sayısı için bir kontrol vardır ve çalışma sembolü 5 basamaklıysa ve test edilen 3 basamaklıysa, o zaman olacaktır. duraklar / karlar ile bir hata olun. Miras aldım ve geçersiz kıldım. Şimdi her şey çalışıyor.

Tabii ki, ben harika bir OOP uzmanı değilim, ancak programı farklı sayıda test edilmiş karakter için esnek bir şekilde yapılandırmak için programda aptalca puanlama yapılması gerektiği ortaya çıktı, örneğin 21 adet kod (için tüm karakterler) ve ardından kodun belirli bir bölümünden geçmek için giriş parametrelerinden seçim yöntemini kullanın. OOP olmadan ben de aynısını yaptım ama internetteki göstergelerin tüm tutamaçları ve değerleri dinamik dizilere konulmuştu ve daha sonra OnTike bu dizileri zaten kullanmıştı. Yani, OOP'nin avantajlarını henüz görmedim?

P S. Tam olarak yazmadım. Karakterlerle aynı anda test edeceğim kadar çok kod parçasını çekiçlemem gerekiyor. Aynı anda çalışan sembollerin sayısının ayarlanması sırasında verileri (tutamaklar ve gösterge değerleri) bir şekilde dinamik olarak bağlamak mümkün olabilir. Sorun, tüm bunların Init'e bağlanması ve OnTic/OnTimer'da kullanılması gerektiğidir.

O gibi. Bu arada, 2. maddedeki ipucu için teşekkürler. Kontrol ekleyeceğim ve karakter sayısını değiştireceğim.
 
uncleVic :
O gibi. Bu arada, 2. maddedeki ipucu için teşekkürler. Kontrol ekleyeceğim ve karakter sayısını değiştireceğim.

Lanet etmek! Her şeyi düzelttim ve 485'i oluşturmaya yükselttiğimde tekrar bir hata oluştu:

2011.08.08 17:13:04 Core 1 test cihazı, OnInit kritik hatası nedeniyle durduruldu
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 OnInit: göstergeleri başlatma hatası
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpert::InitIndicators: para nesnesinin hata başlatma göstergeleri
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::InitIndicators: ayar parametreleri kontrol edilmez
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetOtherSeries: zaman serisinin değiştirilmesi yasaktır
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetPriceSeries: zaman serisinin değiştirilmesi yasaktır
2011.08.08 17:13:04 Çekirdek 1 EURUSD,H4: tarih 2009.01.02 04:00'dan başlıyor
2011.08.08 17:13:04 Çekirdek 1 EURUSD,H4: tahmini 4692 çubuk için ayrılmış geçmiş önbelleği

Dosyalar:
Master02_ML.mq5  20 kb
 
Erm955 :

Lanet etmek! Her şeyi düzelttim ve 485'i oluşturmaya yükselttiğimde tekrar bir hata oluştu:

Aracılar güncellendi mi? EA yeni sürümde yeniden derlendi mi?
 
Rosh :
Aracılar güncellendi mi? EA yeni sürümde yeniden derlendi mi?

Bu sadece yeniden derlenen nokta!