Обсуждение статьи "Создай торговый робот за 6 шагов!" - страница 2

 
bivmail:

вот уже совсем обрадовался, и вот такую штуку не могу обойти (комм - это вычитал о передаче адресов на память, но так тоже не сработало):

компилятор возвращает ошибку  'm_MethodFast' - constant expression required, ' m_MethodSlow' - constant expression required

конечно, вопросы чайника. может где в другой ветке такое надо спрашивать? чтобы по статье не засорять?  

 


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

да, уж... вторым способом тоже гладко не получиолсь:

спотыкается  

1)'=' - l-value required //...Search(l_array1_select_method_n2.At(i_array1_n2))=-1)

2) 'At' - parameter for EnumToString must be an enumeration   //...EnumToString(l_array1_select_method_n2.At(i_array1_n2)));

expression not boolean

#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("Недопустимый тип сглаживания %s скользящей средней!",EnumToString(l_array1_select_method_n2.At(i_array1_n2)));
        }
     }

   if(YesErrorsFlag_n2)
     {
      return(false);
     }

Сейчас это практической цели не имеет. Оставим как есть в примере...

 
bivmail:

да, уж... вторым способом тоже гладко не получиолсь:

спотыкается  

1)'=' - l-value required //...Search(l_array1_select_method_n2.At(i_array1_n2))=-1)

2) 'At' - parameter for EnumToString must be an enumeration   //...EnumToString(l_array1_select_method_n2.At(i_array1_n2)));

expression not boolean

Сейчас это практической цели не имеет. Оставим как есть в примере...

Давайте приложим код пригодный для компиляции (а то телепаты буксуют).
 

Здравствуйте, возникла такая проблема.

 Сделал все шаги по инструкции до самого конца. Скомпилировал ЕА и попытался провести тест- никаких трейдов за весь год теста не произошло и еще выдает ошибку- genetic pass (nn, порядковый номер) tested with error "cannot initialize expert"

Я попробовал скомпилировать эксперт из сигнала ma_cross.mqh, который шел в комплекте со статьей, выдает ты же ошибку. И на последок я попробовал готовый эксперт который шел в комплекте со статьей, и опять все та же ошибка!! В чем же проблема, подскажите люди добрые? 


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

Спасибо за помощь. перекомпилировал, проблема осталась. Более того хочу уточнить что скачал метатрейдер неделю назад, с официального сайта метатрейдера, поэтому сомневаюсь что чтонибудь успело устареть.

Более того,  я пробовал протестировать этот эксперт с двух разных компьютеров.

 
danielalmaty:

Спасибо за помощь. перекомпилировал, проблема осталась. Более того хочу уточнить что скачал метатрейдер неделю назад, с официального сайта метатрейдера, поэтому сомневаюсь что чтонибудь успело устареть.

Более того,  я пробовал протестировать этот эксперт с двух разных компьютеров.

Нужно попробовать запустить одиночное тестирование (не оптимизацию). В журнале будет более подробная информация о причине неинициализации эксперта.
 

попробовал запустить одиночное тестирование без оптимизации, никаких ошибок не выдает, все идет гладко но ни одного трейда в тесте за весь период так и не было сделанно. 

 
danielalmaty:

попробовал запустить одиночное тестирование без оптимизации, никаких ошибок не выдает, все идет гладко но ни одного трейда в тесте за весь период так и не было сделанно. 

Покажите настройки эксперта и сообщите на каком торговом сервере запускаете тестирование? Есть активный аккаунт?
 

Запускау тестирование не сервере MIGBank-Demo.

настройки эксперта вот такие 

//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string         Expert_Title             ="ssssa";  // Document name
ulong                Expert_MagicNumber       =847;      // 
bool                 Expert_EveryTick         =false;    // 
//--- inputs for main signal
input int            Signal_ThresholdOpen     =10;       // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose    =10;       // Signal threshold value to close [0...100]
input double         Signal_PriceLevel        =0.0;      // Price level to execute a deal
input double         Signal_StopLevel         =50.0;     // Stop Loss level (in points)
input double         Signal_TakeLevel         =50.0;     // Take Profit level (in points)
input int            Signal_Expiration        =4;        // Expiration of pending orders (in bars)
input int            Signal_MaCross_FastPeriod=13;       // My_MA_Cross(13,MODE_SMA,21,...) Period of fast MA
input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Method of fast MA
input int            Signal_MaCross_SlowPeriod=21;       // My_MA_Cross(13,MODE_SMA,21,...) Period of slow MA
input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Method of slow MA
input double         Signal_MaCross_Weight    =1.0;      // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0]
//--- inputs for money
input double         Money_FixLot_Percent     =10.0;     // Percent
input double         Money_FixLot_Lots        =0.1;      // Fixed volume

как я уже сказал, я пробовал запустить экcперт который шел вместе со статей и это привело к такому же результату. Так что настройки можете посмотреть просто скачав файл со статьи. 

Причина обращения: