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

 

Очень хорошая статья. Спасибо за помощь.

 

Видимо плохо искал, ткните носом,  где искать описание CCustom

Не могу понять, для чего, после создания пользовательского индикатора, нужно вызвать проверку (или это донастройка индикатора?):

 //| Set number of buffers of indicator.                              |

//--- количество буферов
   if(!m_slow_ma.NumBuffers(1)) return(false);
//--- дошли до этого места, значит, функция выполнена успешно - вернем true
   
 
bivmail:

Видимо плохо искал, ткните носом, пжлста , где искать описание CCustom

У Вас опечатка в написании. И прямо в статье есть ссылка на CiCustom:

Конечно, вы можете создать свой собственный класс индикатора, который будет являться потомком CIndicator и реализовывать все необходимые методы для использования с Мастером MQL5. Но в данном случае мы хотим показать, как с помощью CiCustom можно использовать любой пользовательский индикатор в модуле торговых сигналов.

 

хорошая статья

 

не могу победить... Помогите

В тот же каталог создаю сигнальник из примера, генерирую советник, всё работает. 

Генерирую советник, на основании моего сигнальника, показывает окошко с описанием и входными параметрами, нажимаю ОК, вылетает:

2012.03.26 20:45:16 art367exp.ex5 Invalid EX5 file

 уже и разные названия давал, создавал новый файл сигнала, копировал туда текст, компилируются нормально оба файла, но на графике Invalid EX5 file. 

Зрительно сравниваю, кажется всё на месте. Где ошибка?  Билд 572


	          
Файлы:
 
bivmail:

не могу победить... Помогите

В тот же каталог создаю сигнальник из примера, генерирую советник, всё работает. 

Генерирую советник, на основании моего сигнальника, показывает окошко с описанием и входными параметрами, нажимаю ОК, вылетает:

2012.03.26 20:45:16 art367exp.ex5 Invalid EX5 file

 уже и разные названия давал, создавал новый файл сигнала, копировал туда текст, компилируются нормально оба файла, но на графике Invalid EX5 file. 

Зрительно сравниваю, кажется всё на месте. Где ошибка?  Билд 572

Будем разбираться (даже в OnInit() не приходит).
 
uncleVic:
Будем разбираться (даже в OnInit() не приходит).
Попробуйте обновить терминал (текущий билд давно за 600)
 
uncleVic:
Попробуйте обновить терминал (текущий билд давно за 600)

Обновил до 619 от 23 марта, другого альфафорекс не предлагает.

результат такой же. Попробовал непосредственно текст сигнальника поместить в эксперт (вместо строчки include) , компилируется нормально, но  не работает всё с той же ошибкой.. 

А как узнать имя файла, на котором спотыкается?

попробовал в onInit поставить первой строкой  printf(__FUNCTION__+": initializing expert"); результата нет, что, собственно, подтверждает выше...

в журнале пишет:

2012.03.27 14:59:39 Experts expert art367biv (EURUSD,H1) loaded successfully

2012.03.27 14:59:41 Experts initializing of art367biv (EURUSD,H1) failed

2012.03.27 14:59:41 Experts expert art367biv (EURUSD,H1) removed

Видимо, придётся построчно по порядку выстроить аналогично примеру.

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

Обновил до 619 от 23 марта, другого альфафорекс не предлагает.

результат такой же. Попробовал непосредственно текст сигнальника поместить в эксперт (вместо строчки include) , компилируется нормально, но  не работает всё с той же ошибкой.. 

А как узнать имя файла, на котором спотыкается?

попробовал в onInit поставить первой строкой  printf(__FUNCTION__+": initializing expert"); результата нет, что, собственно, подтверждает выше...

в журнале пишет:

2012.03.27 14:59:39 Experts expert art367biv (EURUSD,H1) loaded successfully

2012.03.27 14:59:41 Experts initializing of art367biv (EURUSD,H1) failed

2012.03.27 14:59:41 Experts expert art367biv (EURUSD,H1) removed

Видимо, придётся построчно по порядку выстроить аналогично примеру.

 

Спасибо. Благодаря Вашему программингу, нашли ошибку в компиляторе.

У Вас:

   bool GetFastMA(const int index) const{ return(m_fast_ma.GetData(0,index));}
   bool GetSlowMA(const int index) const{ return(m_slow_ma.GetData(0,index));}

нужно:

   double GetFastMA(const int index) const{ return(m_fast_ma.GetData(0,index));}
   double GetSlowMA(const int index) const{ return(m_slow_ma.GetData(0,index));}
 

Ещё одна ошибка (Ваша):

//--- инициализация объекта  
   if(!m_fast_mam_slow_ma.Create(m_symbol.Name(),m_period,IND_CUSTOM,4,parameters))
     {
      printf(__FUNCTION__+": ошибка инициализации объекта медленной MA");
      return(false);
     }
//--- количество буферов
   if(!m_slow_ma.NumBuffers(1)) return(false);

Посмотрю, как можно защититься от такого в Библиотеке.