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

 

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

Я проверял советника на  истории и постоянно выскакивает вот такая ошибка

12:17:41 TIC: loaded successfully
12:19:07 Test Generator: unmatched data error (low value 87.6580 at 2010.07.08 00:00 is not reached from the least timeframe, low price 87.6590 mismatches)
12:19:07 Test Generator: unmatched data error (volume limit 6029 at 2010.08.30 12:00 exceeded)
12:19:09 Test Generator: unmatched data error (high value 81.8880 at 2010.10.12 16:00 is not reached from the least timeframe, high price 81.8470 mismatches)
12:19:09 Test Generator: unmatched data error (low value 81.6610 at 2010.10.12 16:00 is not reached from the least timeframe, low price 81.7620 mismatches)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Низкий объем ,  высокий объем,  я  уже не знаю какие величины менять.

Я менял MiniLotSize на 0.1 и  1  и    0.01 ,   тагже менял  MaxLotSize,    устанавливал значение на 0 (настроийки брокера), но все равно советник не торгует,

полный  отказ...  Помогите.  Заранее  благодарен.. 

 
A2dn:

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

Я проверял советника на  истории и постоянно выскакивает вот такая ошибка

12:17:41 TIC: loaded successfully
12:19:07 Test Generator: unmatched data error (low value 87.6580 at 2010.07.08 00:00 is not reached from the least timeframe, low price 87.6590 mismatches)
12:19:07 Test Generator: unmatched data error (volume limit 6029 at 2010.08.30 12:00 exceeded)
12:19:09 Test Generator: unmatched data error (high value 81.8880 at 2010.10.12 16:00 is not reached from the least timeframe, high price 81.8470 mismatches)
12:19:09 Test Generator: unmatched data error (low value 81.6610 at 2010.10.12 16:00 is not reached from the least timeframe, low price 81.7620 mismatches)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Низкий объем ,  высокий объем,  я  уже не знаю какие величины менять.

Я менял MiniLotSize на 0.1 и  1  и    0.01 ,   тагже менял  MaxLotSize,    устанавливал значение на 0 (настроийки брокера), но все равно советник не торгует,

полный  отказ...  Помогите.  Заранее  благодарен.. 

Эти сообщения говорят о несогласованности исторических данных разных таймфреймов между собой. Торговые настройки тут ни при чём. Просто перезакачайте все данные вручную.

PS Этот вопрос касается MT4, а никак не MQL5 

 
stringo:

Функция ChartGetInteger(chartID,CHART_WIDTH_IN_PIXELS) при масимизированных графиках выдает размер окна до максимизации если делается скриншот не с текущего графика, что вроде как не правильно.
 

Добавляю индикатор на график функцией ChartIndicatorAdd(). Теперь не получается догадаться какой функцией его убрать с графика.

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - Документация по MQL5
 

разработчики планируют передачу параметра при вызове(new) конструктора класса? проблематично работать с динамическими массивами в классах. 

спецификатор доступа private , при наследовании, не скрывает методы родителя со спецификатором public, если не ошибаюсь, то так не должно быть  

ЗЫ: исправьте справку - пример: "Справочник MQL5 / Основы языка / Объектно-ориентированное программирование / Наследование " 

Пример:

//--- Базовый класс Фигура
class CShape{}
  {.........

и ниже

//--- производный класс Круг
class CCircle{} : public CShape        // после двоеточия указывается базовый класс,
  {.................

из-за {} не компилируются 

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 

Разработчикам.

Обнаружена не корректная работа PositionsTotal() и OrdersTotal() в блоке инициализации (по крайней мере на мой взгляд не корректная).

В чем проблема:

Если инициализация проводится после смены торгового счета, _UninitReason = 6 (REASON_ACCOUNT), то эти функции возвращают 0.

Хотя на самом деле позиции и ордера существуют.

PS

Чтобы было понятно скажу что у меня разрешена торговля при смене счета и есть контроль первого запуска эксперта.

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

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

Работает вроде, но как-то странно, даже не через раз, а по случаю. То работает, то нет...


PPS

Как я понял лечится это при помощи засыпания на определенное количество секунд, осталось выяснить на какое...
 
IgorM:

ЗЫ: исправьте справку - пример: "Справочник MQL5 / Основы языка / Объектно-ориентированное программирование / Наследование " 

и ниже

из-за {} не компилируются 

Спасибо за сообщение, исправили.
 
Rosh:
Спасибо за сообщение, исправили.

может я не до конца объяснил в своём предыдущем посте, но при работе с конструкторами класса обычно было так:

http://www.delphisources.ru/pages/faq/faq_delphi_basics/Constructor.php.html или http://ru.wikipedia.org/wiki/Конструктор_(программирование)

был неприятно удивлен (Справочник MQL5 / Основы языка / Типы данных / Структуры и классы ), на ограничение:

"Конструктор не имеет возвращаемого типа (можно указать тип void). В MQL5 конструкторы не имеют никаких входных параметров. Таким образом каждый класс может иметь только один конструктор." 

а использовав стандартный конструктор (т.е. не создавал свой,у меня в классе используется динамическое выделение памяти для массивов) появляется ошибка "Array out of Range", которой нет если при объявлении переменной типа класс - т.е. не пользоваться оператором new

//index_currency    aud,cad; // работает
index_currency    *aud,*cad; // не работает

int OnInit(){
   aud = new index_currency; cad = new index_currency; // неправильно работает
   aud.create(AUDX,100,PERIOD_M1,PRICE_CLOSE);
   cad.create(CADX,100,PERIOD_M1,PRICE_CLOSE);

ошибки нет если использовать один указатель на экземпляр класса,  если два и более возникает ошибка, ошибки нет если объявлять без *   : index_currency aud,cad;

Delphi Constructor - Ключевое слово определяет процедуру Name конструктора для класса (справочник функций и процедур - Delphi Sources)
Delphi Constructor - Ключевое слово определяет процедуру Name конструктора для класса (справочник функций и процедур - Delphi Sources)
  • Andrey Simagin
  • www.delphisources.ru
1 type Class declaration     ...     Constructor Name; {Overload;}     ...   end; 2 type Class declaration     ...     Constructor Name(Arguments); {Overload;}     ...   end; Ключевое слово Constructor определяет процедуру Name конструктора для класса. При создании объекта, вы вызываете метод Constructor класса, а не объекта...
 
IgorM:

а использовав стандартный конструктор (т.е. не создавал свой,у меня в классе используется динамическое выделение памяти для массивов) появляется ошибка "Array out of Range", которой нет если при объявлении переменной типа класс - т.е. не пользоваться оператором new

Почитайте статьи Порядок создания и уничтожения объектов в MQL5 и Когда нужно использовать указатели в MQL5
 
IgorM:

ошибки нет если использовать один указатель на экземпляр класса,  если два и более возникает ошибка, ошибки нет если объявлять без *   : index_currency aud,cad;

Этого не должно быть. Нужны исходные коды, лучше написать в Сервисдеск.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.