Обсуждение статьи "Создание и тестирование пользовательских символов в MetaTrader 5" - страница 5

 
fxsaber:

Там другая функция по названию. Заменять ее Replace-функцией - не совсем понимать, для чего TicksAdd нужна: пробрасывание соответствующих Tick-событий.


У меня интелесценс не видит TicksAdd, я думаю что изначально была TicksAdd, но после по аналогии с RatesUpdate (которая как добавляет, так и удаляет данные) ее переименовали, что бы разнобоя не было и правильно сделали.

Заменяю ее реплейсом так как функция Update - не работает (если скрипт выполните, то тоже самое увидите, файлы в Common/Files будут.) 
  

Файлы:
 
AndreyKrivcov:

У меня интелесценс не видит TicksAdd

Обновитесь на 1700 build.

 
AndreyKrivcov:

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

Она не предназначена для записи.

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

Бета-версия платформы MetaTrader 5 build 1700: Проекты в MetaEditor и синтетические инструменты

MetaQuotes Software Corp., 2017.12.05 14:22

  1. Terminal: Добавлена возможность вбрасывать котировки для пользовательских инструментов в режиме реального времени. Теперь на MQL5 можно написать эксперта, который будет вбрасывать любые котировки по заданному пользовательскому инструменту. Для этого используется новая функция CustomTicksAdd.
    int  CustomTicksAdd(
       const string           symbol,       // имя символа
       const MqlTick&         ticks[]       // массив с тиковыми данными, которые необходимо применить к пользовательскому инструменту
       );
    Функция CustomTicksAdd позволяет транслировать тики так, как если бы они приходили от сервера брокера. Данные записываются не напрямую в базу тиков, а отправляются в окно "Обзор рынка". И уже из него терминал сохраняет тики в своей базе. При большом объеме данных, передаваемых за один вызов, функция меняет свое поведение для экономии ресурсов. Если передается более 256 тиков, данные делятся на две части. Первая часть (большая) сразу напрямую записывается в базу тиков (как это делает CustomTicksReplace). Вторая часть, состоящая из последних 128 тиков, передается в окно "Обзор рынка" и после этого сохраняется терминалом в базе.
 
fxsaber:

Она не предназначена для записи.


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

 
AndreyKrivcov:

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

Для этого и создана Replace.

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

Товарищи, а что нажать чтобы терминал из тиковой истории сформировал минутную?

 

Доброго дня.

Прошу Вашей помощи:

Раз в сутки пишу пользовательских символов в CSV ("за позавчера" продолжительностью 24 часа).

Затем удаляю соответствующий отрезок в историю (удаляю "за позавчера" продолжительностью 24 часа) через CustomRatesDelete.

Затем перерисовываю график через ChartRedraw.

В итоге ожидаю увидеть файл истории ***.hcc меньшего габарита, чем он был до удаления части истории.

Однако, он продолжает расти.

Перезагрузка терминала тоже не даёт эффекта.

Каким образом образом можно экономить место на данных истории, добиться соответствия их данных в графике?

 
vestrub:

В итоге ожидаю увидеть файл истории ***.hcc меньшего габарита, чем он был до удаления части истории.

Однако, он продолжает расти.

Рост *.tkc и *hcc - давняя фича. Возможно, в новом билде поправят.

 
fxsaber:

Рост *.tkc и *hcc - давняя фича. Возможно, в новом билде поправят.

Правильно ли я понимаю, что единственным вариантом экономии дискового пространства будет:

1. сохранить всю историю в SCV.

2. затем удалить *hcc и перезапуск терминала, чтобы он начал писАть историю с нуля.

?

 
vestrub:

Правильно ли я понимаю, что единственным вариантом экономии дискового пространства будет:

1. сохранить всю историю в SCV.

2. затем удалить *hcc и перезапуск терминала, чтобы он начал писАть историю с нуля.

?

Это не экономия. CSV за день занимает больше месте, чем hcc  - за неделю.

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