Бета-версия платформы MetaTrader 5 build 2055: Интеграция с Python и массовые улучшения в тестере стратегий - страница 15

 
fxsaber:

Честно говоря, не понимаю эти вопросы совсем. Звучат, как какой-то школьный примитив, без обид.

Фреймы можно читать когда/где/сколько угодно. Выше человек 44 гига фреймов читать явно не будет один раз.

Что значит "когда/где угодно"?  Функционал MQL и МТ предполагает чтение только во время текущего сеанса оптимизации советника.  Всё остальное - это уже персональные костыли. И с темы то не съезжайте. Я вам указал на неправильность архитектуры вашего кода.  В нормальном коде эти танцы с бубнами не нужны.  Поэтому вы действительно чего-то не допонимаете.  Человек однократно получает 44 гб фрэймов в процессе оптимизации, сохраняет их себе в файлы, в том формате, в котором требуется, и больше фрэймы ему не нужны.  Фрэйм - это по сути временный буфер при передаче, и не более.

 
Alexey Navoykov:

Что значит "когда/где угодно"?  Функционал MQL и МТ предполагает чтение только во время текущего сеанса оптимизации советника.  Всё остальное - это уже персональные костыли. И с темы то не съезжайте. Я вам указал на неправильность архитектуры вашего кода.  В нормальном коде эти танцы с бубнами не нужны.  Поэтому вы действительно чего-то не допонимаете.  Человек однократно получает 44 гб фрэймов в процессе оптимизации, сохраняет их себе в файлы, в том формате, в котором требуется, и больше фрэймы ему не нужны.  Фрэйм - это по сути временный буфер для передачи, и не более.

Ну это очень узкий взгляд на фреймы. Да и код не мой....

Фреймы используются во frame-режиме с их анализом и многократным перечтением с полноценным GUI.

Более того, полезно и не во фрейм-режиме читать их, что реализовано, конечно. Фреймы удобно передавать в виде mqd-файла на сторонние машины и т.д.

 
elibrarius:

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

Поддерживаю.  А ещё лучше - ввести специальный параметр в виде #property, указывающий на необходимость удалять обработанные фрэймы.
 
fxsaber:

Фреймы используются во frame-режиме с их анализом и многократным перечтением с полноценным GUI.

Более того, полезно и не во фрейм-режиме читать их, что реализовано, конечно. Фреймы удобно передавать в виде mqd-файла на сторонние машины и т.д.

Никто не запрещает создавать собственные mqd-файлы, если вам это требуется.  Только зачем это принудительно делать всем остальным?

 
Alexey Navoykov:

Никто не запрещает создавать собственные mqd-файлы, если вам это требуется.  Только зачем это принудительно делать всем остальным?

Хронологию этого обсуждения прочтите, пожалуйста.

 

Проблема с размером фреймов была в моем коде. Какой то старый глюк решал приведением фрейма к большему размеру.

Сейчас все исправил.

 

Об этом сообщается на английском форуме.

Форум по трейдингу, автоматизированным торговым системам и тестированию торговых стратегий

Бета-версия платформы MetaTrader 5 2055: интеграция с улучшениями Python и тестером стратегий

Джеймс Катер , 2019.05.29 10:37

Я обнаружил проблему с вызовом TimeCurrent в тестере стратегий (это никогда не происходит в реальных графиках)

В начале каждого бара TimeCurrent отстает от времени нового бара на 30 секунд (что означает, что он не обновляется с последним имитированным событием времени)

 #property  strict
#property  indicator_chart_window
#property  indicator_plots 0

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
#ifndef  __MQL4__
   ArraySetAsSeries (time, true );
#endif

    if ( TimeCurrent () < time[ 0 ])
   {
       Print ( "WARNING  TimeCurrent()=" , TimeCurrent (), " is less than time[0]=" , time[ 0 ]);         
   }
   return rates_total;
}


2019.05.29 09: 33: 31.229 2019.05.27 01: 30:00 ПРЕДУПРЕЖДЕНИЕ TimeCurrent () = 2019.05.27 01: 29:30 меньше времени [0] = 2019.05.27 01: 30:00

2019.05.29 09: 33: 31.229 2019.05.27 02: 00:00 ПРЕДУПРЕЖДЕНИЕ TimeCurrent () = 2019.05.27 01: 59:59 меньше времени [0] = 2019.05.27 02: 00:00


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


 

21. MetaEditor: Исправлен переход к определению и показ информации о параметрах при использовании неюникодных символов в качестве имен функций и переменных.

Я думаю, что здесь есть ошибка в описании. Должно быть "при работе с не-Ascii символами". Поскольку я не знаю, что такое «не-Unicode» персонаж.

В любом случае, главное, что он еще не полностью работает:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов

Alain Verleyen, 2019.05.09 21:29

Можно ли заставить MetaEditor работать полностью с переменными, используя символ Unicode, пожалуйста.

// Go to Definition (Alt+G) NOT ok
   переменная123=6;           // Intellisense NOT oK. List Names (Ctrl+Space) Ok
   функция456(1);             // Parameter Info (Ctrl+Shift+Space) NOT ok

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void функция456(int a)
  {
//...
  }
standard characters Не работает с символами Юникода.
Например, если идентификатор, использующий символы юникода, является объектом, и вы вводите точку '.', Он не дает список членов / методов.
 
Предложение по ME. Иногда список функций по ALT+M настолько большой, что не помещается на экран. Чтобы выбрать нужную, приходится мотать либо клавишами курсора, либо нажимая на соответствующие стрелки. Предлагаю сделать возможность скроллинг списка функций через колесико мыши.
 
fxsaber:
Предложение по ME. Иногда список функций по ALT+M настолько большой, что не помещается на экран. Чтобы выбрать нужную, приходится мотать либо клавишами курсора, либо нажимая на соответствующие стрелки. Предлагаю сделать возможность скроллинг списка функций через колесико мыши.

Может проще купить качественную мышь? У меня скролится колёсиком без проблем.

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