МГС  Московская Гигабитная Сеть
 www.umos.su info@umos.su  Выделенные линии Ве/б-Студия Хостинг Collocation
 Тарифы Вопросы и ответы Полезная информация Контакты

Софт >> Quik

Страниц в ветке: 1 | 2 | (все)
Spacebar
Генерал
****

Зарегистрирован: 02/07/2007
Сообщений: 1536
Нахождение: Московская область
Re: формат dat [re: ViktorSPB]
      #354664 - 24/12/2011 10:59

Как происходит DDE-обмен.

0) Вы нажимаете кнопку "Начать вывод".

1) Квик рассылает всем окнам в системе (точнее в своей workstation, но это мелочи) сообщение WM_DDE_INITIATE с именем сервера и топиком в параметрах, именно с теми именами, что Вы указали при настройке экспорта в Квике, например, сервер "excel", топик "[QUIK_1]ALL_TRADES".

2) Каждое окно может либо просто не отвечать на это сообщение, что большинство окон и сделает, либо ответить квику сообщением WM_DDE_ACK, передав в качестве параметров опять же имя сервера и топика, которые оно (окно) согласилось обрабатывать, и хэндл окна-обработчика DDE-запросов. Как только одно из окон ответит таким сообщением, квик считает, что нашел подходящий сервер. Если ни одно из окон на сообщение квика не ответило, Вы увидите окно сообщений квика с текстом "Не удалось установить DDE-соединение с сервером '<имя сервера>'. Либо не запущен '<имя рабочей книги>', либо в него не загружен лист '<имя листа>'." Отсюда, кстати, следует, что абсолютно по барабану, в каком процессе сидит окно, ждущее подключения квика*.

3) Дальше окно-обработчик получает сообщения WM_DDE_POKE с данными экспортируемой таблицы в формате XlTable. Как их парсить, отдельная тема. На каждое сообщение окно отвечает сообщением WM_DDE_ACK, а если не успеет ответить за установленный в квике таймаут, квик покажет сообщение о том, что сервер не отвечает и прекратит вывод.

4) Вы нажимаете кнопку "Остановить вывод" (или закрываете квик).

5) Квик посылает окну-обработчику сообщение WM_DDE_TERMINATE, ждет ответа в виде того же сообщения и прекращает вывод.

Это всё, что касается собственно DDE-обмена с квиком (весь остальной DDE-функционал в сервере можно не реализовывать).

----
* Например, в самом квике

Редактировано Spacebar (24/12/2011 11:16)


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
ViktorSPB

*****

Зарегистрирован: 17/05/2011
Сообщений: 256
Re: формат dat [re: Spacebar]
      #354788 - 25/12/2011 22:44

Спасибо! Буду мучить свой DDE)
Концовочка порадовала - в квике)))
Мне бы с такой мелочью как DDE разобраться) Очень уж не хочется экзелевские листы обрабатывать,чем щас и занимаюсь. Хоть и получается минус парсинг, зато висящие листы устойчивости работы не добавляют..

--------------------
Успехов.

Редактировано ViktorSPB (25/12/2011 22:44)


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: ViktorSPB]
      #378427 - 09/03/2013 15:14

Наткнулся в ftp.quik.ru/public/Archives/ на архивы с dat файлами. Не подскажете, кстати, зачем они их туда выкладывают?
Формат разобрал, он очень простой, но с сюрпризами. Типа, все таймфреймы могут подряд в одном файле идти и дата-время в забавном виде хранится (например дата в виде 32 битного числа 20130307).
На радостях, дай, думаю и alltrade.dat вскрою. Он уже посложнее, но тоже вроде основные данные выделил. Надо бы на других копиях проверить.
Пришлите (или на обменник выложите), пожалуйста, архив с файлами "alltrade.dat" и "sec.dat" с указанием версии квика. Пока есть время, могу проверить. Результаты (небольшой конвертер) смогу здесь выложить.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
untoxaМодератор
Ветеран
****

Зарегистрирован: 16/07/2007
Сообщений: 1381
Re: формат dat [re: Rejhrgle]
      #378439 - 10/03/2013 01:39

формат файлов в папке archive такой:

#pragma pack(1)
typedef struct _QUIK_ARCHIVE_HEADER
{
DWORD Version; // Always 1.
UCHAR Guid[37];
};
typedef struct _QUIK_ARCHIVE_ENTRY
{
double Open;
double High;
double Low;
double Close;
double Volume;
DWORD Date;
DWORD Time;
};

сначала идет запись _QUIK_ARCHIVE_HEADER потом до конца файла записи _QUIK_ARCHIVE_ENTRY.

читать dat-файлы смысла особого нет, их формат зависит от конкретной версии квика, вместо этого лучше сразу получать online данные, отправляемые в метасток или wld.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: untoxa]
      #378452 - 10/03/2013 15:31

Спасибо конечно, но для меня новой информации в Вашем сообщении не содержится. )
Кстати, Вы приводите формат dat файла из папки archive квика, а я писал про папку на фтп.
Я думаю, что переделаю (у себя) экспорт тиков в конце дня с получения по ДДЕ, на получение из alltrades.dat. Так, пожалуй, для меня будет удобнее.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
untoxaМодератор
Ветеран
****

Зарегистрирован: 16/07/2007
Сообщений: 1381
Re: формат dat [re: Rejhrgle]
      #378456 - 10/03/2013 16:23

я вам объясняю, что те dat-файлы, которые лежат в папке с квиком, имеют формат характерный для определенной версии квика. то есть, гарантии того, что ваш софт будет работать с очередной новой версией квика нет никакой.

dde, в отличие от квиковского экспорта в системы ТА, не дает истории.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: untoxa]
      #378462 - 10/03/2013 18:03

Ну я с Вами и не спорю.

Повторю просьбу к форумчанам: если не трудно, дайте файлы "alltrade.dat" и "sec.dat" из папки квика. Ничего персонального в этих файлах не содержится, там только все обезличенные сделки и список инструментов.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
seda
Душа форума
****

Зарегистрирован: 09/03/2007
Сообщений: 361
Нахождение: Vologda
Re: формат dat [re: Rejhrgle]
      #378465 - 10/03/2013 22:07 прикреплённые файлы (78 загрузок)

приложил, но никак не пойму в чём смысел? конвертера,
сама идея в чём если не секрет?

--------------------
"...однажды он прогнётся под нас..."


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: seda]
      #378469 - 10/03/2013 23:45

Спасибо! Файлы нормально и корректно прочитались.
Жаль, в Вашем alltrade.dat нет ни одной сделки, видимо, квик настроен на очистку после смены даты...

Идея проста: немного сократить собственные рутинные действия. Я в конце дня сохраняю все сделки из квика. Хоть и по ДДЕ, но нужно специальную конфигурацию загрузить, экспорт запустить и т.п. Если же штатный "планировщик заданий" в конце дня запустит утилитку-конвертер которая из alltrade.dat почти мгновенно вытащит и запишет все сделки, то это будет значительно удобнее.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
untoxaМодератор
Ветеран
****

Зарегистрирован: 16/07/2007
Сообщений: 1381
Re: формат dat [re: Rejhrgle]
      #378470 - 11/03/2013 00:53 прикреплённые файлы (80 загрузок)

вот sec.dat разных версий

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: untoxa]
      #378501 - 11/03/2013 19:13

Спасибо большое! Примерно на такой ответ я и надеялся. Еще бы "alltrade.dat" разных версий.

Различия между версиями sec.dat совсем незначительные: пару полей добавили.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
untoxaМодератор
Ветеран
****

Зарегистрирован: 16/07/2007
Сообщений: 1381
Re: формат dat [re: Rejhrgle]
      #378502 - 11/03/2013 19:44

выложите результат

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: untoxa]
      #378503 - 11/03/2013 20:23 прикреплённые файлы (134 загрузок)

Цель этой утилитки выдать текстовое педставление некоторых данных из файлов Quik. Сейчас она понимает следующие файлы:
* dat файлы баров/свечей из подкаталога "archive" квика;
* dat файлы баров/свечей из подкаталога "archive" с фтп сайта квика;
* список инстументов из "sec.dat" (в папке квика);
* список всех трейдов из "alltrade.dat" (в папке квика). Данные будут только если Квик настроен на их получение;
* список новостей из news.log.

Для разбора "alltrade.dat" нужен "sec.dat" в той же папке.

Полного разбора форматов я не добивался, только то что нужно.
Версия неокончательная, скорее всего я еще кое-что доделаю, но пользоваться уже можно. Для работы утилите требуется .net framework 4.0 (можно и для 2.0 сделать, но потребуется убрать значения параметров по умолчанию и перекомпилировать).
Запускать из командной строки с указанием имени исходного файла. Например:
QuikDat2Txt.exe alltrade.dat
- при успешном завершении она создаст файл alltrade.txt

Формат использования:
QuikDat2Txt.exe [/a] [/s] [/x] файл_источника [файл_результата]
Параметры:
/a[:_yyyyMMdd] - добавить к имени файла текущую дату в виде: _20130217
/s - вместе с alltrade.dat конвертировать также и sec.dat
/x - записывать инструменты и новости в xml формате
Пример:
QuikDat2Txt.exe RIH3.dat
Конвертировать двоичный файл RIH3.dat в текстовый RIH3.txt
QuikDat2Txt.exe RIH3.dat RIH3.txt
То же самое
QuikDat2Txt.exe alltrade.dat
Конвертировать двоичный файл со всеми сделками alltrade.dat в текстовый alltrade.txt
QuikDat2Txt.exe /a /s /x alltrade.dat
Записать все сделки из файла alltrade.dat в текстовый alltrade_20130227.txt и все инструменты из sec.dat в sec_20130227.xml


Исходники прикладываю. Техподдержки не обещаю, но все равно пишите.

Редактировано Rejhrgle (13/03/2013 11:41)


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
untoxaМодератор
Ветеран
****

Зарегистрирован: 16/07/2007
Сообщений: 1381
Re: формат dat [re: Rejhrgle]
      #378507 - 11/03/2013 22:26 прикреплённые файлы (103 загрузок)

получение online данных из квика, отправляемых в metastock:

нужно написать свой winros.exe и подложить его квику вместо роднго (на самом деле, достаточно создать MMF c нужным именем и запускать программу до квика). winros.exe из архива просто выводит на экран все, что пытаемся экспортировать в метасток.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
spiderman
Свой человек
****

Зарегистрирован: 09/11/2008
Сообщений: 130
Re: формат dat [re: Rejhrgle]
      #378548 - 13/03/2013 09:41

В ответ на :

Rejhrgle писал:
Цель этой утилитки выдать текстовое педставление некоторых данных из файлов Quik. Сейчас она понимает следующие файлы:
* dat файлы баров/свечей из подкаталога "archive" квика;
* dat файлы баров/свечей из подкаталога "archive" с фтп сайта квика;
* список инстументов из "sec.dat" (в папке квика);
* список всех трейдов из "alltrade.dat" (в папке квика). Данные будут только если Квик настроен на их получение.
Запускать из командной строки с указанием имени исходного файла. Например:
QuikDat2Txt.exe alltrade.dat
- при успешном завершении она создаст файл alltrade.txt





Кстати отличная идея. Я обычно записываю все сделки, для этого коннект к квику делаю, экспорт по ДДЕ и потом в конце он все записывает в нужный формат. Но ваша утилитка делает все проще.
Можно выложить вариант чтобы он ещё код бумаги (GAZP, RIH3) записывал и имя файла содержало дату (чтобы банально утилита не затирала предыдущий файл, к примеру alltrade_2013_03_08.)? Я сам не программист поэтому в коде сходу так не разобрался.

Редактировано spiderman (13/03/2013 09:42)


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: spiderman]
      #378553 - 13/03/2013 11:43

Так и было задумано.
Добавил обновленную версию в свое предыдущее сообщение.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
spiderman
Свой человек
****

Зарегистрирован: 09/11/2008
Сообщений: 130
Re: формат dat [re: Rejhrgle]
      #378562 - 13/03/2013 14:24

Спасибо, я там уже кое что под себя переиначиваю.
А amount (объем в денежном выражении) сделки есть? Обычно его тоже записывают.
http://forex.kbpauk.ru/showflat.php/Cat/0/Number/176279/an/0/page/0#Post176339
Про имя файла я имел ввиду следующее, чтобы утилитка сама автоматически вносила дату в имя файла. Чтобы ненадо было её вручную вводить. Но это просто вопрос. Нет так нет.
Ещё раз спасибо.

Редактировано spiderman (13/03/2013 14:28)


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: spiderman]
      #378563 - 13/03/2013 16:15

Текущая версия умеет сохранять и код бумаги/контракта (GAZP, RIH3) в файле и текущую дату в имени файла. Пример использования:
QuikDat2Txt.exe /a alltrade.dat
Запишет все сделки из файла alltrade.dat в текстовый alltrade_20130313.txt

QuikDat2Txt.exe /a:_yyyy_MM_dd alltrade.dat
... alltrade_2013_03_13.txt

В ответ на :


20130311,100003,SPBFUT,SiH3,30829,62,704870618,B
20130311,100003,SPBFUT,SiH3,30830,1,704870619,B
20130311,100003,SPBFUT,RIH3,154010,1,704870620,S
20130311,100004,EQNE,GAZP,135.01,2,2046047875,S
20130311,100004,EQBR,LKOH,2029.9,1,2046047876,B





Небольшое описание программы см. в сообщении #378503 - 11/03/2013 19:23

Объем в деньгах утилита не пишет, я не нашел такого поля в исх. файле, попробую еще раз, специально, его поискать.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Rejhrgle
Гость
***

Зарегистрирован: 12/12/2010
Сообщений: 22
Re: формат dat [re: Rejhrgle]
      #378598 - 14/03/2013 19:41 прикреплённые файлы (122 загрузок)

Новая версия конвертера. Добавил запись объема сделок в деньгах. В прошлый раз меня сбило с толку то, что похожее число было в 100 раз больше ожидавшегося. То что этот объем указан в копейках, мне почему-то не пришло в голову. )
Все, пожалуй, вряд ли я еще что-то в этом конвертере менять буду.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
spiderman
Свой человек
****

Зарегистрирован: 09/11/2008
Сообщений: 130
Re: формат dat [re: Rejhrgle]
      #378599 - 14/03/2013 20:21

Да, это оно, все верно. Спасибо

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
spiderman
Свой человек
****

Зарегистрирован: 09/11/2008
Сообщений: 130
Re: формат dat [re: spiderman]
      #378749 - 20/03/2013 09:48

Кстати, во всех сделках полученных через ДДЕ, бывают редко но бывают пропуски. Например, сегодня пропущено было примерно 100 сделок. В начале марта был такой случай примерно 400 сделок. До этого правда в последний раз было это очень давно. Даже не знаю с чем это связано, подозреваю что иногда Квик теряет коннект ненадолго, может быть с этим.

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
untoxaМодератор
Ветеран
****

Зарегистрирован: 16/07/2007
Сообщений: 1381
Re: формат dat [re: spiderman]
      #378762 - 20/03/2013 15:44

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

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
dohin
Гость


Зарегистрирован: 24/12/2007
Сообщений: 1
Re: формат dat [re: untoxa]
      #394712 - 25/07/2017 23:04

Кто-нибудь копит dat-файлы? Хотелось бы организовать обмен, на случай если файлы не были закачены в какой-то день.

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
SocolМодератор
Профессор
****

Зарегистрирован: 16/04/2003
Сообщений: 2376
Нахождение: Пермь
Re: формат dat [re: dohin]
      #395505 - 06/09/2017 19:54

Имхо, гораздо практичнее копить ТВС в СУБД.

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Страниц в ветке: 1 | 2 | (все)



Дополнительная информация
0 зарегистрированных и 2 незарегистрированных пользователей просматривает форум.

Модератор:  podval, EVM, x4x, 000, Akelo, Apprentice, shkolnik, TradingS, konkop, SGN, Socol, TopGuy, untoxa, VovaM, Igonter 

Распечатать тему

Доступ и ограничения:
      Вы не можете начать новую тему
      Вы не можете отвечать на тему
      HTML выключен
      UBBCode включён

Рейтинг: **
Тема прочитана: 18908

Рейтинг темы

Перейти на

Send letter to Poul | Предупреждение Poul Trade Forum

Powered by UBB.threads™ 6.5.4

Generated in 0.032 seconds in which 0.006 seconds were spent on a total of 13 queries. Zlib compression enabled.