"MQL5 Sihirbazı: Yeni Sürüm" makalesi için tartışma - sayfa 4

 

1. Bir sinyali nasıl tersine çevireceğimi söyleyebilir misiniz?

örnek: GBP/USD alım sinyalini doğrulamak için MACD EUR/GBP satış sinyaline ihtiyacımız var.

Yoksa kütüphane kodunu kazmak ve "artı" yı "eksi" olarak değiştirmek ve farklı bir ad altında bir kütüphane olarak kaydetmek daha mı kolay?

Not: Bir Uzman Danışman oluştururken hangi sinyalin alınacağını seçmek güzel olurdu: ileri veya geri sinyal

2. Kütüphaneye dikilen desenlerin ağırlıklarını, bu ağırlıkları optimize etmek için nasıl çıkarabilirim?

 
52_rus:

1. Sinyali nasıl ters çevireceğimi söyleyebilir misiniz?

örnek: GBP/USD alım sinyalini doğrulamak için MACD EUR/GBP satış sinyaline ihtiyacımız var.

Yoksa kütüphane koduna girip "artı "yı "eksi" olarak değiştirmek ve farklı bir adla kütüphane olarak kaydetmek daha mı kolay?

Not: Bir Uzman Danışman oluştururken hangi sinyalin alınacağını seçmek güzel olurdu: ileri veya geri sinyal

2. Kütüphaneye dikilen desenlerin ağırlıklarını, bu ağırlıkları optimize etmek için nasıl çıkarabiliriz?

1. Sinyalleri tersine çevirme (ve yok sayma) mekanizmaları CExpertSignal temel sınıfına yerleştirilmiştir, ancak ne yazık ki henüz Sihirbazdan kullanılamamaktadır.

2 Aynı şey desen ağırlıkları için de söylenebilir.

Lütfen "Sihirbaz "dan sonra elde edilen Uzman Danışmanın kaynağını kısaca ekleyin. Bunu "elle" nasıl yapacağımı açıklamaya çalışacağım.

NOT. "Sihirbaz" geliştirilecek ve bu ayarlar daha sonra kullanılabilir olacaktır.

 

1. Kitaplığımı (örneğin: mevcut MACD'yi değiştirin ve ana kitaplığı silmeden kaydedin) ana sinyal listesine nasıl ekleyebilirim?

2. Kütüphanelerle çalışma hakkında soru:

Sihirbazın yardımıyla yapılan MAKD'ye dayalı bir Uzman Danışman düşünelim: onu oluşturduk ve derledik, test ettik ve bazı sonuçlar aldık

Kütüphaneden alınan MAKD sinyali aşağıdaki gibiydi:

//--- piyasa modellerinin varsayılan "ağırlıklarının" ayarlanması
   m_pattern_0    =10;       // model 0 "osilatör gerekli yöne sahip"
   m_pattern_1    =30;       // model 1 "osilatörün istenen yöne doğru ters çevrilmesi"
   m_pattern_2    =80;       // model 2 "ana hat ve sinyal hattının kesişimi"
   m_pattern_3    =50;       // model 3 "ana hattın sıfır seviyesinde geçilmesi"
   m_pattern_4    =60;       // model 4 "osilatör ve fiyatın ayrışması"
   m_pattern_5    =100;      // model 5 "osilatör ve fiyatın çift ayrışması" 

Далее, если я занулю не нужные мне паттерны (например 0,1,2,4,5) в библиотеке:

//--- piyasa modellerinin varsayılan "ağırlıklarının" ayarlanması
   m_pattern_0    =0;       // model 0 "osilatör gerekli yöne sahip"
   m_pattern_1    =0;       // model 1 "osilatörün istenen yöne doğru ters çevrilmesi"
   m_pattern_2    =80;       // model 2 "ana hat ve sinyal hattının kesişimi"
   m_pattern_3    =0;       // model 3 "ana hattın sıfır seviyesinde geçilmesi"
   m_pattern_4    =0;       // model 4 "osilatör ve fiyatın ayrışması"
   m_pattern_5    =0;      // model 5 "osilatör ve fiyatın çift ayrışması" 

Sadece kütüphaneyi derleyeceğim (EA kodunun kendisini derlemeyeceğim). Bunu test edeceğim ve ilk testtekiyle tamamen aynı sonucu alacağım.

EA kodunu da derlersem, bu örnekte yalnızca desen 2 için farklı bir sonuç alacağım.

Bir sorum var: Kütüphanedeki bazı parametreleri değiştirdikten sonra neden EA kodunu yeniden derlemem gerekiyor? (Değişmedi).

 
52_rus:

1. Kitaplığımı (örneğin: mevcut MACD'yi değiştirin ve ana olanı silmeden kaydedin) ana sinyaller listesine nasıl ekleyebilirim?


Sinyaller modülünün kodunu içeren include dosyasını mı kastediyorsunuz? Mevcut modülü istediğiniz gibi değiştirin ve aynı dizine, ancak farklı bir adla kaydedin. Bununla ilgili daha fazla ayrıntı makalede verilmiştir:

Yeni MQL5 Sihirbazında bir ticaret robotu oluşturma

EA kodu, MetaEditor'un MQL5 Sihirbazı kullanılarak oluşturulur.

Ticaret stratejilerinin temel sınıfları terminal_data_folder\MQL5\Include\Expert\ içinde bulunur. Alım satım sinyalleri sınıflarının hazır algoritmaları , açık pozisyonları koruma sınıfları ve sermaye ve risk yönetimi sınıfları Signal, Trailing ve Money alt dizinlerinde bulunur. MQL5 Sihirbazı bu dizinlerdeki dosyaları analiz eder ve EA kodunu oluşturmak için bunları kullanır.

Bu, sinyal modüllerinin terminal_data_folder\MQL5\Include\Expert\Signal dizininde olduğu (ve MQL5 Sihirbazı tarafından görülebilmesi için olması gerektiği) anlamına gelir.
 
her şey çalıştı, teşekkürler, sadece kodu düzelttim, ancak sınıf adını değiştirmedim....
 

Bazı nedenlerden dolayı, terminalin yeni sürümleri artık sinyal üreteci modüllerinin özel sürümlerini içermemektedir. MQL5/Include/Expert/Signal/ klasöründe 30 modül vardır, ancak Sihirbaz, Yardım'a göre standart olarak sağlanan yalnızca 20 modül görür.

Sadece bana mı öyle geliyor yoksa MT5 editörü artık yeni modüller için sinyal modülleri içeren klasörü taramıyor mu? Metaquotes tarafından geliştirilen mum çubuğu formasyonlarına dayalı eski sinyal modülleri bile bağlı değil.

 
Livingston:

Bazı nedenlerden dolayı, terminalin yeni sürümleri artık sinyal üreteci modüllerinin özel sürümlerini içermemektedir. MQL5/Include/Expert/Signal/ klasöründe 30 modül vardır, ancak Sihirbaz, Yardım'a göre standart olarak sağlanan yalnızca 20 modül görür.

Sadece bana mı öyle geliyor yoksa MT5 editörü artık yeni modüller için sinyal modüllerinin bulunduğu klasörü taramıyor mu? Metaquotes tarafından geliştirilen eski mum çubuğu formasyonu tabanlı sinyal modülleri bile bağlı değildir.

Yeni bir sinyal modülünün farklı bir modül açıklaması olmalı ve türü SignalAdvanced olmalıdır


 
Rosh:

Yeni sinyal modülü farklı bir modül tanımına sahip olmalı ve türü SignalAdvanced olmalıdır


Çok teşekkür ederim.
 
Rosh:

Yeni bir sinyal modülü farklı bir modül tanımına sahip olmalı ve türü SignalAdvanced olmalıdır


Daha önce yazılmış sinyal modüllerinde Signal'i SignalAdvanced ile değiştirirseniz, yine de çalışmazlar. Şimdi CheckOpenShort/CheckOpenLong fonksiyonları kullanılmıyor ve ShortCondition/LongCondition ile değiştiriliyor?

Bu fonksiyonlarda parametre yoktur, bu nedenle çıkışların ve durakların nasıl ayarlanacağı belirsizdir.

int CSignalMA::LongCondition()
  {
   int result=0;
   int idx   =StartIndex();
//--- analiz edilen ilk çubuktaki kapanış fiyatı ve göstergenin konumsal ilişkisini analiz edin
   if(DiffCloseMA(idx)<0.0)
     {
      //--- kapanış fiyatı göstergenin altında
      if(IS_PATTERN_USAGE(1) && DiffOpenMA(idx)>0.0 && DiffMA(idx)>0.0)
        {
         //--- açılış fiyatı göstergenin üzerinde (yani bir kesişme vardı), ancak gösterge yukarı doğru yönlendirilmiş
         result=m_pattern_1;
         //--- bunun biçimlendirilmemiş bir "delme" olduğunu düşünün ve mevcut fiyattan piyasaya girmeyi önerin
         m_base_price=0.0;
        }
     }
   else
     {
      //--- kapanış fiyatı göstergenin üzerinde (göstergenin satın almaya itirazı yok)
      if(IS_PATTERN_USAGE(0))
         result=m_pattern_0;
      //--- eğer model 2 kullanılıyorsa
      if(IS_PATTERN_USAGE(2) && DiffMA(idx)>0.0)
        {
         //--- gösterge yukarı doğru yönlendirilir
         if(DiffOpenMA(idx)<0.0)
           {
            //--- açılış fiyatı göstergenin altında (yani bir kesişme oldu)
            result=m_pattern_2;
            //--- "geri alma" sırasında piyasaya girmeyi önerin
            m_base_price=m_symbol.NormalizePrice(MA(idx));
           }
         else
           {
            //--- açılış fiyatı göstergenin üzerinde
            if(DiffLowMA(idx)<0.0)
              {
               //--- düşük fiyat göstergenin altında
               result=m_pattern_2;
               //--- bunun oluşmuş bir "delme" olduğunu düşünün ve mevcut fiyattan piyasaya girmeyi önerin
               m_base_price=0.0;
              }
           }
        }
     }
//--- sonucu döndür
   return(result);
  }

IS_PATTERN_USAGE() artık sinyaller modülünün her yerinde kullanılıyor, bunun nedeni belirsiz.

Genel olarak, sinyaller modülünü kendiniz nasıl yapacağınız konusunda bilgi bekliyoruz.

ve eski sihirbaz modu Type=Signal kullanılabilir olacak mı? yoksa tüm modüller artık yeni bir şekilde mi yazılacak?

 

Her piyasa modeline 1'den 100'e kadar ölçülen bir anlamlılık atanır. Değer ne kadar yüksekse model o kadar güçlüdür.

Ağırlığı 0,4 olan MA ve ağırlığı 0,8 olan Stokastik - bu dış değişkenlerde belirlenir ve MA'nın geldiği yerdir - önemi 100'dür. Bu modelin stokastik önemi 80'e eşittir. Her bir modelin önemi nerede belirlenir ya da nasıl belirlenir?