Custom HST-файлы: iClose() возвращает новейшие данные

 

У меня есть скрипт, который создает файлы hst, и я хочу использовать данные графика из файлов hst для некоторых индикаторов, но я вижу, что при использовании функции iClose() последняя цена закрытия возвращается правильно только тогда, когда я открываю автономный график из файла hst, и когда я обновляю этот автономный график, тогда я вижу, что функция iClose() также возвращает обновленную цену, но когда я не открываю автономный график из файла hst, тогда функция iClose() не дает новейшую цену. Таким образом, это выглядит как специальное поведение MetaTrader.

Я ищу решение этой проблемы. Я не могу открывать автономный график и обновлять его для каждого файла hst, потому что у MetaTrader также есть ограничения, и это не является хорошим решением. Если кто-то знает, как решить эту проблему другим способом, дайте мне знать. Я также могу заплатить за решение.

 

График называется "автономный" не случайно. Именно поэтому его обязательно нужно строить программно. Сам он никак не построится. Другое дело, что сам график не обязательно открывать, если Вы имеете именно это в виду. Достаточно, чтобы на каком-то графике был скрипт Period_converter или специально разработанный индикатор, что лучше, т. к. на один график можно навесить несколько индикаторов, а скрипт только один.

Для примера посмотрите индикатор Сборщик тиков. Он может создавать сразу несколько автономных графиков и не требует того, чтобы каждый из них был открыт.

Ticks collector - Сборщик тиков
Ticks collector - Сборщик тиков
  • www.mql5.com
Сбор тиков с записью данных в файл и формирование нестандартных графиков.
 

помниться был вызов WinAPI DLL принуждающий MT4 перечитать "хвост" hst и правильно выставить iClose по нему. Для эмуляции тиков переписывалась последняя свеча в hst и  дергалась функция win api.

У кого под рукой всякие чарто-построители старого терминала точнее подскажут

 
Люди, здесь в сообществе не очень много активных пользователей. Я рад, когда русскоговорящие люди откликаются и помогают другим. Я также разместил свою проблему на этой странице: https://www.mql5.com/en/job/190345. Если кто-то может помочь, это было бы очень мило, потому что я должен использовать переводчик, чтобы общаться с вами.
Freelance service at MQL5.com: Read updated data from hst file with iClose() etc
Freelance service at MQL5.com: Read updated data from hst file with iClose() etc
  • 2023.03.03
  • www.mql5.com
I have a few hst files which are updated every second from a function but i see that metatrader does not give me the updated price which is save into the hst file, it looks like this is a special behavior from metatrader on not really a error in my code. because if i open a offline chart which belongs to one of this hst files and if i update this offline chart then i can see that the function iClose() does give me the updated price but if i dont open a offline chart then iClose() is also not
 
Email Account #:
Люди, здесь в сообществе не очень много активных пользователей. Я рад, когда русскоговорящие люди откликаются и помогают другим. Я также разместил свою проблему на этой странице: https://www.mql5.com/en/job/190345. Если кто-то может помочь, это было бы очень мило, потому что я должен использовать переводчик, чтобы общаться с вами.
Maxim Kuznetsov #:

помниться был вызов WinAPI DLL принуждающий MT4 перечитать "хвост" hst и правильно выставить iClose по нему. Для эмуляции тиков переписывалась последняя свеча в hst и  дергалась функция win api.

У кого под рукой всякие чарто-построители старого терминала точнее подскажут

see https://www.mql5.com/ru/code/7737 for sample. Concrete function RefreshWindow() in source. 

or ask author @Andrey Khatimlianskii for more details :-)

Эквиобъемные графики, Рендж-графики (EqualVolumeBars, Range Chart)
Эквиобъемные графики, Рендж-графики (EqualVolumeBars, Range Chart)
  • www.mql5.com
Эксперт создает эквиобъемные или рендж-графики из тиковой истории или из баров М1.
 
Maxim Kuznetsov #:

see https://www.mql5.com/ru/code/7737 for sample. Concrete function RefreshWindow() in source. 

or ask author @Andrey Khatimlianskii for more details :-)

PostMessageA( hwnd, WM_COMMAND, 33324, 0 );

Да, это наверняка работало 7 лет назад.

Но сейчас обновление происходит только по ChartSetSymbolPeriod(0,Symbol(), 0)?

PS.  33324 - обновления графика (эмуляция тика);

 

В МТ не обновляется цена закрытия бара, пока не откроется новый бар. Всё на тиках. 

Системная ошибка, имхенько. 

Каждая пятница - нет нулевого бара, только первый. 

ЗЫ: Компостера не поминайте всуе, он и так тут дохрена компостирует ...