Обсуждение статьи "Возможности Мастера MQL5, которые вам нужно знать (Часть 1): Регрессионный анализ"

 

Опубликована статья Возможности Мастера MQL5, которые вам нужно знать (Часть 1): Регрессионный анализ:

Современный трейдер почти всегда сознательно или бессознательно находится в поиске новых идей. Он постоянно пробует новые стратегии, модифицирует их и отбрасывает те, что не оправдали себя. Этот исследовательский процесс требует много времени и сопряжен с ошибками. В этой серии статей я постараюсь доказать, что Мастер MQL5 является настоящей опорой трейдера. Благодаря Мастеру, трейдер экономит время при реализации своих идей. Кроме того, снижается вероятность ошибок, возникающих при дублировании кода. Вместо того чтобы тратить время на оформление кода, трейдеры претворяют в жизнь свою торговую философию.

Ниже представлены результаты нашей оптимизации. Во-первых, это отчет и кривая эквити лучших результатов торговли только с рыночными ордерами.


Автор: Stephen Njuki

 


Привет, Стивен,

Очень хорошая статья. Я провел несколько тестов, и они дали хорошие результаты. Похоже, у нас есть обнадеживающая торговая система.

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

Я пытался изменить эти строки, но OnInit "возвращает ненулевой код 1" без сообщения об ошибке.

//--- входные данные для эксперта
input string Expert_Title                     ="Regr2"; // Имя документа
ulong        Expert_MagicNumber               =26034;   //
bool         Expert_EveryTick                 =false;   //
input ENUM_TIMEFRAMES   timeframe             =PERIOD_M5;      //TimeFrame
//--- входы для основного сигнала
.
.
.
.
int OnInit()
  {
//--- Инициализация эксперта
   if(!ExtExpert.Init(Symbol(),timeframe,Expert_EveryTick,Expert_MagicNumber))
     {
      //--- не удалось
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Создание сигнала
.
.
.
.




Можете ли вы мне помочь?

 
Guilherme Mendonca #:


Привет, Стивен,

Очень хорошая статья. Я провел несколько тестов, и они дали хорошие результаты. Похоже, у нас есть обнадеживающая торговая система.

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

Я пытался изменить эти строки, но OnInit "возвращает ненулевой код 1" без сообщения об ошибке.




Можете ли вы мне помочь?

Здравствуйте, вы получили помощь от Стивена?
 
Guilherme Mendonca #:


Привет, Стивен,

Очень хорошая статья. Я провел несколько тестов, и они дали хорошие результаты. Похоже, у нас есть обнадеживающая торговая система.

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

Я пытался изменить эти строки, но OnInit "возвращает ненулевой код 1" без сообщения об ошибке.




Можете ли вы мне помочь?

Здравствуйте,

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

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

 

При компиляции эксперта, созданного с использованием SignalDUAL_RA, я получаю ошибку. Она прослеживается в файле matrix.mqh.

CMatrixDouble - это вызов функции встроенных классов MetaEditor, matrix.mqh, поэтому я предполагаю, что ошибка кроется не там.

Можете ли вы помочь мне решить эту проблему?

Кто-нибудь может помочь?

Файлы:
 

он не компилируется с ранее упомянутой проблемой (см. скриншот). Я решил проблему следующим образом


_a[r].Set(c,Data(r+c,close)); должно быть _a.Set(r,c,Data(r+c,close));


при использовании _a[r] мы не редактируем r-ю строку напрямую, а передаем ее как ссылку. Это исправление сработало.