Обсуждение статьи "Создай торговый робот за 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);

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

 
uncleVic:

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

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

Спасибо! Не сразу уловил bool, double. Буду внимательнее и при копировании тоже.
 

Дошла очередь до тестера (билд 619, win xp)

1)  закладка Настройки: выбор даты по календарю. По кнопке выбора, календарь появляется и  исчезает, не успеваю выбрать. 

2) оптимизировал советник:

период вся история, только евро/дол часовик (в обзоре тоже только евр/дол), произв задержка, OHLC на M1, 3тысдол, 1:100, генетик Balance+Sharpe, без форварда;

параметры SL 20-50 шаг5, TP 30-50 шаг 5, PFast 13-17 шаг 1, MFast Simple - Linear, PSlow 21-24 шаг 1, MSlowt Simple - Linear

все получилось за 25 минут, 11200 прогонов.

Результат оптимизации  ранжировал максимум результат,

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

сообщения журнала см текстовый файл 

2012.03.28 14:27:18 Core 1 1971.02.04 00:00:01   MA_Cross::CreateFastMA: ошибка инициализации объекта быстрой MA


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

Файлы:
Причина обращения: