Ошибки, баги, вопросы - страница 2908

 

Если есть более подходящая ветка для вопросов по кодебазе, перенесите вопрос туда. Эти "ошибки" - слишком длинные и, вероятно, их не очень внимательно читают MQ.

Такая проблема. Хотел опубликовать модуль для MQL Wizard для генерации универсальных сигналов, то есть настраиваемых пользователем и использующих произвольные индикаторы, а не ограниченный набор, поставляемый со стандартной библиотекой. В качестве mq5-кода приложил эксперт, сгенерированный с использованием нового модуля. Но разумеется, в модуле нет никаких жестко прописанных сигналов, потому что весь его смысл в настройке. В результате эксперт не торгует и не проходит автоматическую проверку.

Какие есть варианты решения проблемы?

 
Stanislav Korotky:

Если есть более подходящая ветка для вопросов по кодебазе, перенесите вопрос туда. Эти "ошибки" - слишком длинные и, вероятно, их не очень внимательно читают MQ.

Такая проблема. Хотел опубликовать модуль для MQL Wizard для генерации универсальных сигналов, то есть настраиваемых пользователем и использующих произвольные индикаторы, а не ограниченный набор, поставляемый со стандартной библиотекой. В качестве mq5-кода приложил эксперт, сгенерированный с использованием нового модуля. Но разумеется, в модуле нет никаких жестко прописанных сигналов, потому что весь его смысл в настройке. В результате эксперт не торгует и не проходит автоматическую проверку.

Какие есть варианты решения проблемы?

Обходил в советнике открывающем ордера по времени, открывая ордер с СЛ и ТП в ОнИнит. в мт4. Проходил валидацию полгода назад.

Да и условие ставил, Если в Тестере, то открываем ордер, если нет, то пропускаем. Валидация же в тестере проводится.

 
Stanislav Korotky:

Если есть более подходящая ветка для вопросов по кодебазе, перенесите вопрос туда. Эти "ошибки" - слишком длинные и, вероятно, их не очень внимательно читают MQ.

Такая проблема. Хотел опубликовать модуль для MQL Wizard для генерации универсальных сигналов, то есть настраиваемых пользователем и использующих произвольные индикаторы, а не ограниченный набор, поставляемый со стандартной библиотекой. В качестве mq5-кода приложил эксперт, сгенерированный с использованием нового модуля. Но разумеется, в модуле нет никаких жестко прописанных сигналов, потому что весь его смысл в настройке. В результате эксперт не торгует и не проходит автоматическую проверку.

Какие есть варианты решения проблемы?

Думал, что можно будет сделать запускающую обертку с помощью директивы #property tester_set, но она, оказывается, не устанавливает эти параметры по умолчанию автоматически, а лишь добавляет пункт меню в тестер для выбора вручную.

 
Stanislav Korotky:

Думал, что можно будет сделать запускающую обертку с помощью директивы #property tester_set, но она, оказывается, не устанавливает эти параметры по умолчанию автоматически, а лишь добавляет пункт меню в тестер для выбора вручную.

Попробовал также директиву #property tester_file "DefaultSettings.tpl". Указанный файл копируется на агент в корневую папку, но не применяется автоматически (по крайней мере в плане настроек эксперта).

 
Aleksei Ostroborodov:
В маркете не отображается рейтинг продукта, количество голосов и отзывов, хотя они присутствуют внутри описания https://www.mql5.com/en/market/
Спасибо за решение конкретного случая. 
Но как быть с другими продуктами? У меня такая же ситуация ещё с четыремя советниками. Каждый раз публиковать ссылку? 
 

Тестер во время оптимизации советника при каждом новом прогоне переключается на вкладку "настройки", невозможно контролировать состояние агентов, тупо убегает на другую вкладку. Заметил сегодня, в данный момент build 2697.

На локальные агенты раздает неравномерное кол-во заданий, при этом ни одно не выполняется



Есть идеи?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Как через CopyTicks получить тик, который был до заданного времени?
 
fxsaber:
Как через CopyTicks получить тик, который был до заданного времени?

Ну если Макс. баров в окне - unlimited, 

то наверное что-то вроде:

MqlTick Prev_Tick(ulong t) {  // t - время в миллисекундах
   MqlTick ticks[];
   int bar =iBarShift(_Symbol,PERIOD_M1,t/1000); 
   if (bar>=0 && CopyTicksRange(_Symbol,ticks,COPY_TICKS_ALL,iTime(_Symbol,PERIOD_M1,bar)*1000,t)>0) 
      return ticks[ArraySize(ticks)-1];
   else {
      MqlTick tick;  // если до заданного времени нет тиков возвращаем пустой тик.
      return tick;
   }
}

проверил, но не с пристрастием.

Если обходится без баров (iBarShift), то, если время попадет на выходные, поиск ближайшего тика может быть весьма затратным.


 
Nikolai Semko:

Если обходится без баров (iBarShift), то, если время попадет на выходные, поиск ближайшего тика может быть весьма затратным.

Да, тик справа - элементарно, тик слева - ужас.

 
fxsaber:

Да, тик справа - элементарно, тик слева - ужас.

Ага. 
Не хватает, чтобы в функции

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, которые необходимо получить 
   );

параметр count был int и эта функция поддерживала бы отрицательные значения count, т.е. в обратную сторону.

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