Здравствуйте! Можно ознакомиться со структурой двоичных файлов, в которых хранятся данные графиков, полученные терминалом с сервера (файлы archive\*.dat)? Хочется обрабатывать данные из них без помощи средств, предоставляемых самим терминалом.
sam063rus, спасибо за подсказку. Скачал сейчас... В теории полезная программа. Особенно интересна функция вывода в текстовые файлы информации сразу по всем инструментам. Если бы еще была возможность импортировать из текстовых файлов эту информацию обратно в двоичные базы данных - цены бы ей не было. Но, к сожалению, на практике она у меня показала ужасно глючные результаты вывода в текстовый файл. И вдобавок после нескольких попыток такого вывода начинает аварийно завершаться с какой-то ошибкой.
средствами LUA вы не получите доступ ко всем архивным значениям, например, к минутным графикам годовалой давности. вы получите доступ лишь к тому объёму информации, которая умещается в размер кеша графиков. также средствами LUA вы не получите доступ к значениям фьючерсов и опционов прошлой экспирации. Однако, всё это может быть доступно из папки "Archive" в квике, зная формат хранения .dat-файлов. На самом деле, формат - не сложный. Имея hex workshop - можно его распотрошить "на раз" за неделю. Поэтому, если будет стабильный спрос - готов выложить свой "велосипед"
sam063rus, согласен, в *.dat - файлах может храниться больше информации, чем выводится на графике. Кстати, а сколько максимум свечей там может помещаться, по Вашим наблюдениям? У меня сложилось ощущение, что не больше 6000 (если судить по размеру этих файлов, когда информация туда постоянно накапливается каждый день и они не удаляются). К сожалению, утилита от ARQA QMinEditor.exe у меня работает плохо, возможно потому что устарела. Думаю, Ваш "велосипед" многим пригодился бы.
С минутками годовалой давности вряд ли получится, т.к. этих данных нет на самом сервере Quik - из-за ограничения в 3000 свечек в любом интервале .
Пока-что остаётся непонятным, зачем нужно анализировать dat-файлы - данные в них не засекречены, просто они записаны в двоичном коде потому, что так с ними удобно и быстро работать на уровне терминала.
Например, для доступа к этим файлам графиков есть интерфейс, который можно скачать тут: http://www.quik.ru/depot/QMinEditor.rar Этой утилитой файлы открываются, редактируются, экспортируются и.т.п.
Но, если уж заговорили о Lua, гораздо проще экспортировать данные с графиков из самого терминала и складывать их уже в файл, в БД и в любой другой удобный формат и там уже обрабатывать.
Если нужно работать со старыми фьючерсами, а также более старыми минутками - данные нужно накапливать у себя в хранилище.
Александр Шумилин, а Вы уверены, что QMinEditor по-прежнему корректно работает с этими файлами? Программа обновлялась последний раз 25.02.10, а qchart.dll, который идет с ней в комплекте - 23.10.08 (для сравнения - в терминале он уже от 10.10.14, но QMinEditor со свежей версией этой библиотеки не работает). У меня при попытке экспортировать с помощью QMinEditor данные в текстовые файлы зачастую выводятся совершенно неадекватные данные - либо всего одна строка, либо все данные и плюс еще столько же строк с белибердой. А сама программа при экспорте частенько аварийно завершается.
с минутками годовалой давности ещё как получится, если, как вы правильно заметили их до этого стабильно копить. они у меня накоплены с 2012 года и проблем с их выводом никаких нет.
насчёт qchart.dll - он не отвечает за конвертацию и экспорт данных. это просто dll-компонент визуализации графиков. в нём также, правда, встроены основные технические индикаторы (т.е. те которые жёстко вшиты в квик), есть функция сохранения картинки графика в файл, больше там особо ничего другого нет. что мне в нём нравится - наверно единственно хорошо написанный плагин.
to разработчикам, давно бы уже открыли бы API к нему в общий доступ, а также сделали бы доступ к API нативных контролов, глядишь у народа бы с визуализацией и с многопоточностью проблем поубавилось, а то кругом - одни "велосипеды": vclua и т. п.
sam063rus пишет: с минутками годовалой давности ещё как получится, если, как вы правильно заметили их до этого стабильно копить. они у меня накоплены с 2012 года и проблем с их выводом никаких нет.
Поделитесь секретом - как Вам удается столько накопить в одном файле? У меня почему-то эти файлы не разрастаются больше 180 кб (при этом новый файл, созданный с нуля, обычно не больше 100 кб), несмотря на то, что я их не удаляю и вся информация должна туда добавляться. Соответственно, у меня в этих файлах минуток может накапливаться не больше, чем за 2 недели. Я так понял, что терминал сам удаляет из этих файлов старые свечки, чтобы файл не слишком разрастался. Почему у Вас этого не происходит - для меня загадка. Может Вы используете какую-то старую версию терминала? Я свой обновляю регулярно.
никогда не нажимайте "волшебную" кнопку от Арки "Перезаказать архив графиков". В противном случае, старая история будет безвозвратно похе..ена. Я бы вообще им советовал убрать 3 кнопки из меню "связь": вышеупомянутую, очистить всё и начать новый сеанс и перезаказать данные, а сделать одну нормальную. Синхронизировать историю с кешем на диске. Ну или, что-то типа этого.
ну в общем, готовый "костыль" с экспортом в "популярные форматы": mySQL, XML, TXT, CSV, "да всё, что угодно" => 5000руб (за какой-нибудь на выбор). Всё вместе - 10тыр. За меньшее не работаю.
Александр Шумилин пишет: Пока-что остаётся непонятным, зачем нужно анализировать dat-файлы
Например, для того, чтобы конвертировать из текстового файла, в случае, когда инструмент уже не торгуется, а брокер не предоставляет данные по архивным инструментам.
Надо делать так, как надо. А как не надо - делать не надо.
Если необходима информация в текстовом формате по графикам, то можно использовать экспорт котировок. Воспользовавшись сторонними средствами в интернете.
Вообще странно отсылать пользователей к неизвестному софту из Интернета, ведь не факт, что его писали люди, хорошо знающие внутренний формат этих файлов. Другое дело, если бы разработчики его предварительно сами опубликовали. А так, кто его знает - может там есть какие-то скрытые нюансы, не очевидные на первый взгляд. Как можно доверять любому софту из инета, если даже родная утилита от ARQA QMinEditor работает с ошибками?
Покупайте у меня тогда описание формата за 4000руб. В нём нет ни непонятных dll, ни exe, никаких вирусов. Просто описание структуры с полями и типами данных. Всё открыто. Если Вы умеете немного программировать - то, можете сами написать экспортёр. Оплата через Сбербанк-Онлайн. Получение на любой удобный для Вас адрес. Переписка через вконтакте, чтоб не засорять форум.
Последний раз проверял формат на актуальность - сегодня. Если Вы хотите протестировать - можете мне коротенький файл отправить - я вам его расшифрую.
sam063rus пишет: он сказал, что можно пользоваться софтом из интернета, а не готовым описанием их формата. пусть скажет прямо - тогда вопросов нет.
Внесу ясность. Имелся ввиду не софт, я не правильно выразился, а ресурс. Т.е не программа, не утилита - а ресурс. На данном ресурсе можно получить данные по инструментам в текстовом формате, они просто выгружаются с сайта и сохраняются в формате txt или cvs.
Программа для просмотра dat файлов у нас есть, это QminEditor, с ее некорректной работой сейчас разбираемся. При помощи нее можно экспортировать также данные в текстовый формат. Я выше писал к тому, что если нужны данные в текстовом формате, то помимо QminEditora и Lua скриптов можно воспользоваться сторонними ресурсами.
Так, а что касается самого формата dat-файла. Разработчики так и не сказали, раскрываете вы формат или оставляете это на совести пользователей - копаться в его структуре?
Надо делать так, как надо. А как не надо - делать не надо.
Формат двоичных файлов нам пригодился бы, так как QminEditor не умеет преобразовывать текстовый формат обратно в двоичный. А если кому-то понадобится текстовые файлы преобразовать в тот формат, который сможет прочитать терминал, чтобы строить в нем графики и анализировать их?
Дмитрий пишет: А если кому-то понадобится текстовые файлы преобразовать в тот формат, который сможет прочитать терминал, чтобы строить в нем графики и анализировать их?
а это мысль, надо бы допилить свой костыль под это дело:))) заодно и фьючерс склеивать можно будет:)))
А если кому-то понадобится текстовые файлы преобразовать в тот формат, который сможет прочитать терминал, чтобы строить в нем графики и анализировать их?
Не изобретайте велосипед. Используйте Амиброкер, Велс-Лаб или что-то подобное для построения своих графиков и их анализа. Квик не по этой части.
s_mike@rambler.ru, QUIK и QLUA на сегодняшний день предоставляют широкие возможности для анализа данных, построения и тестирования своих стратегий. В QLUA можно реализовать то, что нельзя сделать в системах технического анализа (за Амиброкер не скажу - не пользовался). Правда, зачастую это требует и больших усилий.
Надо делать так, как надо. А как не надо - делать не надо.
Серж пишет: s_mike@rambler.ru , QUIK и QLUA на сегодняшний день предоставляют широкие возможности для анализа данных, построения и тестирования своих стратегий. В QLUA можно реализовать то, что нельзя сделать в системах технического анализа (за Амиброкер не скажу - не пользовался). Правда, зачастую это требует и больших усилий.
s_mike@rambler.ru, я не пользуюсь другими системами и пока не планирую. Смысл загонять графики из текста в базу данных квика может быть например в том, чтобы на исторических данных посмотреть, какие сигналы будут подавать используемые в квике индикаторы, как встроенные, так и собственные, написанные на QLua.
Серж пишет: to разработчикам , было бы удобно, если бы в QUIK добавили тот функционал, что есть в QMinEditor, в частности: открытие графика из архива локальной БД.
Сергей, из локально БД, где хранятся данные в текстовом формате или dat файлы?
Так или иначе мы не рекомендуем Вам настраиваться на работу с данным файлом напрямую.
Во-первых, есть способы решить задачу другим способом, об этом писали выше.
Во-вторых, с нашей помощью или без неё можно попробовать его-таки "читать" - но на этом пути могут подстерегать другие неприятности. Как например есть ненулевая вероятность , что внутренний формат dat-файла может быть изменён в очередной версии программы, в целях оптимизации, например. И узнаете Вы об этом в тот момент, когда Ваш алгоритм перестанет работать. Другой момент - мы предполагаем, что с файлами программы Quik будем работать только сама программа, и если параллельно ей с графиками в файлах будет работать другой процесс, это может иметь последствия для работы самого терминала.
Александр Шумилин пишет: Так или иначе мы не рекомендуем Вам настраиваться на работу с данным файлом напрямую. Во-первых, есть способы решить задачу другим способом, об этом писали выше.
А как можно решить задачу преобразования данных из текстового формата в формат dat-файла? Ваша фирменная утилита этого делать не умеет. Предположим, у кого-то отсутствует архив этих dat-файлов за нужный период, но есть добытый другим путем текстовый файл с нужными данными. И хочется в итоге увидеть их на графике в квике, подцепить к нему свой индикатор, написанный на Lua, и протестировать таким образом его работу на исторических данных.
Насчет опасности внезапной смены формата двоичного файла - я думаю, все ее осознают и вряд ли кто-то будет работать с этими файлами напрямую в процессе торговли. Это скорей средство для предварительного тестирования торговых стратегий и своих скриптов на исторических данных. По этой же причине можно не беспокоиться по поводу того, что параллельно терминалу Quik с графиками в файлах будет работать другой процесс.
Так или иначе, при необходимости желающие все равно найдут способ обрабатывать эти файлы напрямую, просто им придется потратить больше времени на самостоятельное изучение формата и значительно возрастет вероятность ошибок в работе их программ.
тут такой момент еще: если доступны данные с сервера - то в график скорей всего выведутся эти данные, а не кешированные в .dat-файлах и, параллельно обновится кеш. поэтому, если, что-то шаманить с графиками и .dat-файлами - то, только OFFLINE. Честно говоря, специально этот вопрос не прорабатывал но, судя по наблюдениям - выходит, что0то такое.
Серж пишет: to разработчикам , было бы удобно, если бы в QUIK добавили тот функционал, что есть в QMinEditor, в частности: открытие графика из архива локальной БД.
А что касается пожелания. Зарегистрируете его?
Надо делать так, как надо. А как не надо - делать не надо.