Определение времени компиляции ex5-файла (индикатора) по короткому имени

 
Для журналирования изменений в сеансах торгов необходимо определить время компиляции (как замену версии) и полный путь файлов индикаторов, которые могут запускаться на графике. В документации описаны 2 ф-ии - ChartIndicatorGet() и ChartIndicatorName(), определяющие хэндл и короткое имя индикатора. Как можно определить время (создания) и путь ex5-файла индикатора по ним?
 
RVLux:
Для журналирования изменений в сеансах торгов необходимо определить время компиляции (как замену версии) и полный путь файлов индикаторов, которые могут запускаться на графике. В документации описаны 2 ф-ии - ChartIndicatorGet() и ChartIndicatorName(), определяющие хэндл и короткое имя индикатора. Как можно определить время (создания) и путь ex5-файла индикатора по ним?

если правильно понял тут все есть

https://www.mql5.com/ru/docs/constant_indices

Документация по MQL5: Список констант языка MQL5
Документация по MQL5: Список констант языка MQL5
  • www.mql5.com
Все константы MQL5 в алфавитном порядке...
 
lynxntech #:

если правильно понял тут все есть

https://www.mql5.com/ru/docs/constant_indices

Переменная __DATETIME__ выдаёт время компиляции файла, из которого производится запрос. Необходимо (за неимением прямой функции определения компиляции указанного файла) найти файл в файловой системе по его хэндлу (или короткому имени) и считать его параметры, среди которых - как раз время изменения файла.

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

 

Кстати, тип лицензии тоже было бы полезно определять для любых модулей ex5.

 

можно парсить предварительно сохранённый шаблон ( ChartSaveTemplate() ) . И пытаться соотнести с shortName  или невесть как полученным хендлом. Хотя зачем и откуда у вас хендл, если вы просто мониторите "изменений в сеансах торгов", я так и не понял

в шаблоне есть пути и параметры всего что поназапущего в чарте.

дату/время и прочие опции файлов в Experts,Indicators,Market можно получить только через WinAPI. 

 
Maxim Kuznetsov #:

можно парсить предварительно сохранённый шаблон ( ChartSaveTemplate() ) . И пытаться соотнести с shortName  или невесть как полученным хендлом. Хотя зачем и откуда у вас хендл, если вы просто мониторите "изменений в сеансах торгов", я так и не понял

в шаблоне есть пути и параметры всего что поназапущего в чарте.

дату/время и прочие опции файлов в Experts,Indicators,Market можно получить только через WinAPI. 

Из проги журналирования, которая вызывается при изменении графиков, можно получить и хэндл и короткое имя

ChartIndicatorGet

Возвращает хэндл индикатора с указанным коротким именем на указанном окне графика

ChartIndicatorName

Возвращает короткое имя индикатора по номеру в списке индикаторов на указанном окне графика.


Вы предлагаете сохранять шаблон. Но в нём путь к файлам индикаторов пустой. В папке Config Метатрейдера в файле terminal.ini тоже пути нет (пример касательно Ichimoku:

[Navigator]

SelectedName=Ichimoku Kinko Hyo

[Indicators]

Ichimoku Kinko Hyo=|<indicator>|name=Ichimoku Kinko Hyo|path=|apply=0|show_data=1|scale_inherit=0|scale_line=0|scale_line_percent=50|scale_line_value=0.000000|scale_fix_min=0|scale_fix_min_val=0.000000|scale_fix_max=0|scale_fix_max_val=0.000000|expertmode=0|fixed_height=-1||<graph>|name=|draw=128|style=0|width=1|color=255|</graph>||<graph>|name=|draw=128|style=0|width=1|color=16711680|</graph>||<graph>|name=|draw=128|style=2|width=1|shift=26|color=6333684|</graph>||<graph>|name=|draw=128|style=2|width=1|shift=26|color=14204888|</graph>||<graph>|name=|draw=128|style=0|width=1|color=65280|</graph>|tenkan=9|kijun=26|senkou=52|</indicator>|

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

Я тоже думаю, что эту связку можно получить только через WinAPI, но не знаю КАК. Я и задал вопрос с надеждой, что кто-нибудь подскажет последовательность команд API для перехода от внутреннего представления MQL5 процесса к внешнему системному определению связанного файла. Заодно может быть кто-то знает, как получить признак лицензии проги (по какому смещению в заголовке он находится), но это вторично.
 
RVLux #:
path=

для стандартных путь пустой. 

для прочих - name = Custom Indicator и path = путь_к_ex5

 
Maxim Kuznetsov #:

для стандартных путь пустой. 

для прочих - name = Custom Indicator и path = путь_к_ex5

Нет перехода от короткого имени (индикатора) к полному имени файловой системы, тем более в Examples есть подкаталоги Canvas и Panels, и нет уверенности, что не добавятся другие каталоги. А другие индикаторы могут сидеть в своих каталогах.

В общем случае - откуда запущена прога - неясно. А хотелось бы разрешить общий случай.