"6 Adımda Kendi Alım Satım Robotunuzu Oluşturun!" makalesi için tartışma - sayfa 2

 
bivmail:

Heyecanlanıyordum, ancak bunu aşamıyorum (comm - bellek adresi aktarımı hakkında bir şeyler okudum, ancak o şekilde de çalışmadı):

Derleyici 'm_MethodFast' - sabit ifade gerekli, ' m_MethodSlow' - sabit ifade gerekli hatasını döndürüyor

Tabii ki, bunlar aptallar için sorular. belki de makaleyi tıkamamak için bu tür soruları başka bir başlıkta sormalıyım?


ENUM_MA_METHOD l_array1_select_method[2];
l_array1_select_method[0]=MethodFast();
l_array1_select_method[1]=MethodSlow();
 

Evet. İkinci yol da pek işe yaramadı:

tökezliyor

1)'=' - l-değeri gerekli //...Search(l_array1_select_method_n2.At(i_array1_n2))=-1)

2) 'At' - EnumToString için parametre bir numaralandırma olmalıdır //...EnumToString(l_array1_select_method_n2.At(i_array1_n2));

ifade boolean değil

#include <Arrays\ArrayInt.mqh>
   CArrayInt l_array1_select_method_n2;
   l_array1_select_method_n2.Add(m_MethodFast);
   l_array1_select_method_n2.Add(m_MethodSlow);
   //int total_array1_n2=l_array1_select_method_n2.Total()-1;// ArraySize(l_array1_select_method_n2);

   CArrayInt l_array2_enum_ma_method_n2;
   l_array2_enum_ma_method_n2.Add(MODE_SMA);
   l_array2_enum_ma_method_n2.Add(MODE_EMA);
   l_array2_enum_ma_method_n2.Add(MODE_SMMA);
   l_array2_enum_ma_method_n2.Add(MODE_LWMA);

   bool YesErrorsFlag_n2=false;
   for(int i_array1_n2=0;i_array1_n2<l_array1_select_method_n2.Total()-1;i_array1_n2++)
     {
      if(l_array2_enum_ma_method_n2.Search(l_array1_select_method_n2.At(i_array1_n2))=-1)
        {
         YesErrorsFlag_n2=true;
         PrintFormat("Geçersiz yumuşatma türü %s hareketli ortalama!",EnumToString(l_array1_select_method_n2.At(i_array1_n2)));
        }
     }

   if(YesErrorsFlag_n2)
     {
      return(false);
     }

Şimdi bunun pratik bir amacı yok. Örnekte olduğu gibi bırakalım...

 
bivmail:

Evet. İkinci yol da pek işe yaramadı:

tökezliyor

1)'=' - l-değeri gerekli //...Search(l_array1_select_method_n2.At(i_array1_n2))=-1)

2) 'At' - EnumToString için parametre bir numaralandırma olmalıdır //...EnumToString(l_array1_select_method_n2.At(i_array1_n2));

ifade boolean değil

Şimdi bunun pratik bir amacı yok. Örnekte olduğu gibi bırakalım....

Derlemeye uygun kodu ekleyelim (çünkü telepatlar sıkıcıdır).
 

Merhaba, aşağıdaki sorunu yaşıyorum.

Tüm adımları sonuna kadar talimatlara göre yaptım. EA'yı derledim ve test etmeye çalıştım - testin tüm yılı boyunca hiçbir işlem gerçekleşmedi ve bir hata veriyor - genetik geçiş (nn, sıra numarası) "uzman başlatılamıyor" hatasıyla test edildi.

Makale ile birlikte gelen ma_cross.mqh sinyalinden Uzman Danışmanı derlemeye çalıştım, aynı hatayı veriyor. Ve son olarak, makale ile birlikte gelen hazır Uzman Danışmanı denedim ve yine aynı hata!!! Sorun nedir, bana söyleyebilir misiniz?


 
Sağlanan özel gösterge "Custom Moving Average.mq5 "i yeniden derlemeyi deneyin. Custom Moving Average.ex5 dosyasının sürümü derleyicinin mevcut sürümüyle çakışmazsa, oluşturulan Uzman Danışmanın başlatılması sırasında gösterge tanıtıcısı oluşturulmayacaktır. Görünüşe göre böyle bir durumunuz var.
Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 

Yardımınız için teşekkürler. Yeniden derledim, ancak sorun devam ediyor. Dahası, metatrader'ı bir hafta önce resmi metatrader sitesinden indirdiğimi açıklığa kavuşturmak istiyorum, bu yüzden herhangi bir şeyin güncelliğini yitirecek zamanı olduğundan şüpheliyim.

Dahası, bu Uzman Danışmanı iki farklı bilgisayardan test etmeye çalıştım.

 
danielalmaty:

Yardımınız için teşekkürler. Yeniden derledim, ancak sorun devam ediyor. Dahası, metatrader'ı bir hafta önce resmi metatrader sitesinden indirdiğimi açıklığa kavuşturmak istiyorum, bu yüzden herhangi bir şeyin güncelliğini yitirecek zamanı olduğundan şüpheliyim.

Dahası, bu Uzman Danışmanı iki farklı bilgisayardan test etmeye çalıştım.

Tek bir test çalıştırmayı denemelisiniz (optimizasyon değil). Günlük, Uzman Danışmanın başlatılmamasının nedeni hakkında daha ayrıntılı bilgi içerecektir.
 

Optimizasyon olmadan tek bir test çalıştırmayı denedim, hata yok, her şey sorunsuz gidiyor, ancak tüm dönem boyunca testte tek bir işlem yapılmadı.

 
danielalmaty:

Optimizasyon olmadan tek bir test çalıştırmayı denedim, hata yok, her şey sorunsuz gidiyor, ancak tüm süre boyunca testte tek bir işlem yapılmadı.

Uzman Danışman ayarlarını gösterebilir ve testi hangi ticaret sunucusunda çalıştırdığınızı söyleyebilir misiniz? Aktif bir hesabınız var mı?
 

MIGBank-Demo sunucusundatest başlatılıyor.

Uzman Danışmanın ayarları şu şekildedir

//+------------------------------------------------------------------+
//| Girişler|
//+------------------------------------------------------------------+
//--- Uzman için girdiler
input string         Expert_Title             ="ssssa";  // Belge adı
ulong                Expert_MagicNumber       =847;      // 
bool                 Expert_EveryTick         =false;    // 
//--- ana sinyal için girişler
input int            Signal_ThresholdOpen     =10;       // Açılacak sinyal eşik değeri [0...100]
input int            Signal_ThresholdClose    =10;       // Kapatılacak sinyal eşik değeri [0...100]
input double         Signal_PriceLevel        =0.0;      // Bir anlaşmayı gerçekleştirmek için fiyat seviyesi
input double         Signal_StopLevel         =50.0;     // Zararı Durdur seviyesi (puan olarak)
input double         Signal_TakeLevel         =50.0;     // Kâr Al seviyesi (puan olarak)
input int            Signal_Expiration        =4;        // Bekleyen emirlerin sona ermesi (çubuk cinsinden)
input int            Signal_MaCross_FastPeriod=13;       // My_MA_Cross(13,MODE_SMA,21,...) Hızlı MA periyodu
input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Hızlı MA yöntemi
input int            Signal_MaCross_SlowPeriod=21;       // My_MA_Cross(13,MODE_SMA,21,...) Yavaş MA periyodu
input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Yavaş MA yöntemi
input double         Signal_MaCross_Weight    =1.0;      // My_MA_Cross(13,MODE_SMA,21,...) Ağırlık [0...1.0]
//--- para için girdiler
input double         Money_FixLot_Percent     =10.0;     // Yüzde.
input double         Money_FixLot_Lots        =0.1;      // Sabit hacim

Dediğim gibi, makale ile birlikte gelen Uzman Danışmanı çalıştırmayı denedim ve aynı sonuca yol açtı. Yani sadece makaledeki dosyayı indirerek ayarları görebilirsiniz.