Обсуждение статьи "Пользовательские символы: основы применения на практике" - страница 4

 
Andrey Khatimlianskii #:

Тоже наткнулся на "HistoryCache: container header read error [0]" и следующий за ним "HistoryBase: invalid container (1970.01.01) found".

При этом, из истории пользовательского инструмента удаляется история за январь 2022, получается гэп с 31 декабря по сегодня.

Проявляется только на 2х компьютерах, ресурсов достаточно.

@Slava, какие нужны детали для воспроизведения?

Еще раз случилось. При переходе через полночь, похоже:

FK      3       23:59:27.790    HistoryCache    'BTCUSDT.bnf' container header read error [0]
PR      3       23:59:27.790    HistoryBase     'BTCUSDT.bnf' invalid container (1970.01.01) found (off: 3144282240, size: 86589, file: 1925419658)
HQ      3       23:59:28.071    HistoryCache    'LUNAUSDT.bnf' container header read error [0]
HD      3       23:59:28.071    HistoryBase     'LUNAUSDT.bnf' invalid container (1970.01.01) found (off: 3144242580, size: 86589, file: 1925434658)
RK      3       23:59:28.344    HistoryCache    'MANAUSDT.bnf' container header read error [0]
EJ      3       23:59:28.344    HistoryBase     'MANAUSDT.bnf' invalid container (1970.01.01) found (off: 3144247980, size: 86589, file: 1925447087)
CD      3       23:59:28.633    HistoryCache    'ATOMUSDT.bnf' container header read error [0]
KQ      3       23:59:28.633    HistoryBase     'ATOMUSDT.bnf' invalid container (1970.01.01) found (off: 3144177171, size: 86589, file: 1925399738)
HN      0       00:14:15.224    Terminal        MetaTrader 5 x64 build 3210 started for MetaQuotes Software Corp.
NS      0       00:14:15.225    Terminal        Windows 10 build 17763, 20 x Intel Xeon  E5-2650 v3 @ 2.30GHz, 12 / 15 Gb memory, 53 / 111 Gb disk, admin, GMT+3

В какую сторону копать?

 

Может быть где-нибудь есть новая версия EqualVolumeBars? При использовании этого эксперта обнаружил 2 проблемы:

1. При компиляции EqualVolumeBars появляется 1 предупреждение (легко исправляется в Symbol.mqh заменой time на _time например):

declaration of 'time' hides global variable	Symbol.mqh	28	47

2. Исчезают бары. Как я понял, это происходит тогда, когда в терминале наступил новый день. Например дата в TimeCurrent() 2023.06.03 (BTCUSD тикает по выходным), а последний range бар открыт 2023.06.02. Исчезнут все бары за 2023.06.02.

Воспроизвести эту проблему можно всего в несколько этапов:

  • Закомментить линию 360 в EqualVolumeBars (чтобы график не обновился сам):
//ChartSetSymbolPeriod(id,symbolName,PERIOD_M1);
  • Добавить EqualVolumeBars на график EURAUD со следующими параметрами:

Получится такой график:

  • Нажать правой кнопкой мыши по графику и нажать обновить (Refresh). Результат:


 
Andrei Iakovlev #:

Может быть где-нибудь есть новая версия EqualVolumeBars? При использовании этого эксперта обнаружил 2 проблемы:

1. При компиляции EqualVolumeBars появляется 1 предупреждение (легко исправляется в Symbol.mqh заменой time на _time например):

2. Исчезают бары. Как я понял, это происходит тогда, когда в терминале наступил новый день. Например дата в TimeCurrent() 2023.06.03 (BTCUSD тикает по выходным), а последний range бар открыт 2023.06.02. Исчезнут все бары за 2023.06.02.

Воспроизвести эту проблему можно всего в несколько этапов:

  • Закомментить линию 360 в EqualVolumeBars (чтобы график не обновился сам):
  • Добавить EqualVolumeBars на график EURAUD со следующими параметрами:

Получится такой график:

  • Нажать правой кнопкой мыши по графику и нажать обновить (Refresh). Результат:


Новой версии нет.

В реализации кастом символов в терминале есть баги, о которых я где-то писал, но они не особо исправляются.

В данном случае можете посмотреть по коду - существующий символ перезаполняется полностью при старте эксперта, так что если что-то остается лишнее или наоборот исчезает начало дня - так работает MQL5 API.

Так как исходник открыт, можете предложить исправление, чтобы вылечить проблему.

 

А как сделать онлайн график со средней ценой по формуле (bid+ask)/2?

 
Denerage #:

А как сделать онлайн график со средней ценой по формуле (bid+ask)/2?

Для таких простых целей посмотрите синтетические инструменты.

Пользовательские финансовые инструменты - Для продвинутых пользователей - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа позволяет создавать собственные финансовые инструменты. По ним можно просматривать графики и проводить технический анализ , их...