если речь идет о докачке истории, то вот пример https://www.mql5.com/ru/code/10472 (FastMethod = TRUE)
если речь идет о кастомном символе, то только перезапись файла, не припомню, чтобы можно было к файлам получить произвольный доступ, только последовательный знаю - считал файл, установил FileSeek() и потом записываем новые значения и затем старые данные
на сколько я понимаю если мы даже и каким то образом сможем найти координату самого первого бара в истории в байтах и поставим туда указатель для записи
добавить в стандартный PeriodConverter вывод файлового указателя после создания заголовка, примерно так:
FileWriteArray(ExtHandle,i_unused,0,13); //--- write history file Print("Write file header, FileTell = ",FileTell(ExtHandle));
и Вы узнаете сколько байт занимает history file header потом можете это значение использовать при открытии файла HST с помощью FileSeek()
- www.mql5.com
если речь идет о докачке истории, то вот пример https://www.mql5.com/ru/code/10472 (FastMethod = TRUE)
если речь идет о кастомном символе, то только перезапись файла, не припомню, чтобы можно было к файлам получить произвольный доступ, только последовательный знаю - считал файл, установил FileSeek() и потом записываем новые значения и затем старые данные
добавить в стандартный PeriodConverter вывод файлового указателя после создания заголовка, примерно так:
и Вы узнаете сколько байт занимает history file header потом можете это значение использовать при открытии файла HST с помощью FileSeek()
благодарю )))) да, кастомный , ладно будем обновлять
Если у нас есть файл истории HST и предположим есть история с 01.11.2018
но есть необходимость загрузить историю с 2015 года, можно ли как то перезаписать данный файл так чтобы не затирать историю старую а просто дописать данные до 01.11.2018.
на сколько я понимаю если мы даже и каким то образом сможем найти координату самого первого бара в истории в байтах и поставим туда указатель для записи, то данные что пойдут далее просто перезапишут свои данные поверх старых, и в итоге проще просто файл сформировать заново с нуля, ведь я что то не обнаружил никаких ключей при открытии файлов которые бы не давали затирать старые данные
в теории можно конечно сначала выгрузить имеющуюся историю в массивы , потом начать писать новые данные до 01.11.2018, а в конце выгрузить то что сохранили из старого файла с 01.11.2018 до того что есть, но по сути это почти тоже что и перезапись файла заново, просто без запроса данной истории которая у нас уже есть
Без проблем дописывается все, куда угодно, хоть в начало, хоть в конец, хоть в середину. Скрипт ConvertTicksFiles.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Если у нас есть файл истории HST и предположим есть история с 01.11.2018
но есть необходимость загрузить историю с 2015 года, можно ли как то перезаписать данный файл так чтобы не затирать историю старую а просто дописать данные до 01.11.2018.
на сколько я понимаю если мы даже и каким то образом сможем найти координату самого первого бара в истории в байтах и поставим туда указатель для записи, то данные что пойдут далее просто перезапишут свои данные поверх старых, и в итоге проще просто файл сформировать заново с нуля, ведь я что то не обнаружил никаких ключей при открытии файлов которые бы не давали затирать старые данные
в теории можно конечно сначала выгрузить имеющуюся историю в массивы , потом начать писать новые данные до 01.11.2018, а в конце выгрузить то что сохранили из старого файла с 01.11.2018 до того что есть, но по сути это почти тоже что и перезапись файла заново, просто без запроса данной истории которая у нас уже есть