NEW! Datafeed QUIK и MySQL через ODBC ver. 1.5.0

30Окт07

Представляю новую версию моего плагина

Что новенького?
Работает со всеми инструментами (акции, фьючи, облиг, индексы)
OHLC бары строятся на основе всех сделок => исключена потеря данных
Добавлена новая опция в настройки BarsToLoad, позволяющая загружать не последний бар, а N баров из БД (исключает баг с потерей данных)

Системные требования
Quik 5.08 — в нем скорость работы с ODBC БД увеличена на порядки!
MySQL 5.0.45
AmiBroker 4.80.0+

Структура базы данных
Таблица quik_ticks — в нее экспортируются таблица всех сделок квика (обязательные поля в Квике: Номер, Время, Кодбумаги, Цена,Кол-во, Объем, Операция) КодБумаги = название инструмента в Ами
Таблица quotations — в эту таблицу формируются OHLC бары, из нее читает данные Ami

По умолчанию формируются пятиминутки, кто хочет минутки пусть ищут строчку в приложенном .sql файле «Select timestamp(curdate(),maketime(hour(new.T),(minute(new.T) div 5)*5,00)) into ts;», «div 5)*5» заменить на «div 1)*1», или на нужный тайм фрейм.

Краткая инструкция по установке

1. Скачивается архив с плагином и sql файлом.
2. Плагин dll копируется в папку Амиброкера plugins.
3. В MySQL загружается архивированная БД (ODBC Quik feed FIX.sql) — это можно сделать с помошью MySQL Administrator — пункт RESTORE.
4. Ами настраивается, для кушания odbc котировок. Подробные инструкции здесь . Имя таблицы с котировками — quotations. ODBC плугин переписан так, чтобы забирать только N последних котировок из БД.
5. Настраивает экспорт из Квика таблицы всех сделок, настраиваемые ОБЯЗАТЕЛЬНЫЕ поля (Код инструмента, Цена сделки, Количество, Время и Объем сделки (тот что в рублях) )

Подробные инструкции, консультации и обновления в этой ветке. (нужна регистрация)

Плагин для Амиброкера

.sql файл предпочтительно использовать приложенный ниже(тот что идет вместе с плагином можно удалить)
База данных (последняя версия)



32 Responses to “NEW! Datafeed QUIK и MySQL через ODBC ver. 1.5.0”

  1. 1 PanVovan

    Здравствуйте.
    Скажите, пожалуйста, MySQL должен быть обязательно версии не ниже 5.0.45 ?
    У меня установлен сервер версии 5.0.41, таблица quik_ticks заполняется, а размер таблицы quotations остается нулевой (видно в MySQL Administrator). Не могу разобраться в чем проблема.

  2. 2 MiD

    настроил — пропадают бары периодически

  3. MiD, это особенность Амиброкера.
    1. Для того чтобы получать стабильно информацию по всем инструментам их надо постоянно обновлять. Поясню: амиброкер получает данные только по тому инструменту который выбран в текущем окне, данные по остальным не получаются! Чтобы это исправить надо либо часто менять или обновлять инструменты, либо запускать Scan с интервалом например 5 сек.
    2. В конце дня или перед закрытием Ами, все данные нужно обязательно сохранить.

    p.s. Подождите, уже не долго осталось, в данный момент происходить тестирование нового экспорта из квика уже ОФИЦИАЛЬНОГО! В версии 5.09 пляски с бубном и MySQL будут уже не актуальны. Выйдет он скорее всего до НГ.

  4. 4 MiD

    ок, спасибо. Все понял

  5. 5 MiD

    да — вышел новый квик — все работает напрямую

  6. 6 ANDSIB

    Вышел. Работает напрямую, но… трет при выводе ранее накопленную базу. Как я понял, скоро исправить этот минус разработчики не обещают. Т.е. вопрос с ODBC и SQL актуальность не потерял. Не говоря уже вообще о полезности иметь БД котировок.

  7. 7 IGOR

    Добрый день! Подскажите, почему не настраивается соответствие полей «Код бумаги» и «Symbol» (при настройке вывода по ODBC из таблицы всех сделок)? Удивлен. Все остальные — нормально.

  8. Не совсем понял, можете описать Вашу проблему подробнее?

  9. 9 IGOR

    Еще раз здравствуйте! Установил MySQL, загрузил архивированную БД (я не программист, извините, если что не так назову). В квике сделал таблицу всех сделок и все необходимые поля. Теперь для вывода по ODBC, надо настроить соответствие ее полей и полей quik_ticks (таблица из базы MySQL (последняя версия). Щелкаю правой мышью на окне->Вывод по ODBC, открывается «Экспорт в базу данных». В нем после «присоединится» и выбора quikauto.quik_ticks я «cпоткнулся»:
    В выпадающем списке «Поле, соответствующие параметру»
    для «номера» есть «id», для «цены» — «price», для «времени» — «T» [TIME] и т.д., а для «кода бумаги» и «операции» нет ничего, хотя в списке полей таблицы (справа) все есть:(. В выпадающем же списке нету, а нету — значит нельзя выбрать, значит нельзя настроить вывод. Вот вроде бы и вся проблема, но для меня нерешаемая:(. Спасибо за помощь. Удачи.

  10. Добрый день.
    Во-первых, чем Вас не устраивает «родной» экспорт в Ами от Квика?

    Во-вторых, если чем-то не устраивает:
    попробуйте
    1. Переустановить MySQL и БД (скачанную по ссылке База данных (последняя версия)!!!) выше
    2. В MySQL Administrator — откройте свойства таблицы и посмотрите есть ли в действительности эти поля.
    3. Попробуйте процедуру снова.

    з.ы. Мне сложно давать консультации сейчас, т.к. я перешел на MS SQL сервер. Попробуйте задать вопросы в ветке на forex.kbpauk.ru

  11. 11 IGOR

    Спасибо. «Родной экспорт» теряет данные.

  12. 12 pithon

    Игорь, была та же проблема —
    http://quik.ru/user/forum/iwr/25017/25017/

  13. 13 IGOR

    Спасибо, — думал только у меня так. Позор квиковцам, однако.

  14. 14 IGOR

    Здравствуйте!
    Настраиваю экспорт в ДБ из квика, нажимаю «начать вывод», тот выдает ошибку:
    [MySQL][ODBC 3.51Driver][mysqld-5.5.51b-communiti-nt]incorrect time value: ’18:32:10am’ for columne ‘T’ at row 1
    SQLSTATE=S1000
    Код ошибки=1292
    Полагаю, что это связано с форматом времени 00:00:00am, которого вроде как раньше не было (00:00:00), а появился после очередного обновления версии квика. Может и ошибаюсь, не знаю. Подскажите, — что делать?.
    С уважением.

  15. Да дело в формате времени, у меня квик 5.10.68 такого не наблюдается. Попробуйте посмотреть в Панели управления — Региональные настройки и языки — скорее всего неверный формат даты задан там.

  16. 16 IGOR

    Добрый день. Не помогает. Думаю, проблема в этом:

    CREATE TABLE `quotations` (
    `Symbol` varchar(12) character set cp1251 NOT NULL,
    `DT` timestamp NOT NULL default ‘0000-00-00 00:00:00’,

    в архивированной датабазе. Как дальше быть, не знаю.

  17. Попробуйте на форуме квика спросить почему у Вас такой специфический формат вывода данных.

  18. 18 IGOR

    Добрый день. Исправилась проблема. Квиковцы убрали «am».
    Всего доброго. Спасибо.

  19. 19 IGOR

    Снова добрый день:).
    Cделал таблицу в Вашей базе данных.
    В квике такую же (в смысле столбцы или поля):
    номер, код бумаги, цена, количество, объем, время, операция.
    Для тикового графика в амиброкере.
    Настроил вывод данных. Все нормально. А как настроить амиброкер, не знаю:
    Делаю новую базу данных, нажимаю «Configure» и надо заполнять поля:
    Open, High, Low, Close, но данные-то не в барах идут. Как быть?
    Дайте совет. Спасибо заранее.

  20. 1. В Ами необходимо выбрать таблицу *_quotes, а в *_ticks сделать экспорт из квика.
    2. Зайдите через MySQL Administrator, откройте табличку *_quotes там будут 5минутки или тики?
    3. Какую таблицу экспортируете из Квика?

  21. 21 IGOR

    Экспорт в _ticks из квиковской таблицы всех сделок.
    В табличке _quotes идут 1минутки (я поменял таймфрейм при установке).
    А надо тики. Тиковый график в ами просто необходим (есть идея для интрадея).
    Хотя, вроде как в ами только 5секундное обновление:(.

  22. 22 IGOR

    Все, разобрался. Спасибо. Все идет. Удачи.

  23. К сожалению, регистрация не проходит (может упростить нафиг регистрацию эту, на пустом месте траходром часовой) и подробные инструкции по выплевыванию из Quik по ODBC не вижу. В частности, Инструмент* не выплевывается в Symbol
    Может какой то простенький doc по подходу (те что в какие поля выливать) выложите. Спасибо заранее

  24. Нереально на сайт попасть, а жаль. Проблема в том, что MySQL ODBC Connector 5+ в Quik глючит на cp1251 именах, наверное как то можно поправить, но я пошел варварским методом и использовал 3.51 где можно явно сказать «set names cp1251» в Initial, короче проблема решилось.

    До вашего красивого и правильного решения не судьба добраццо. Просто СССР какой-то, зачем такая вымороченная регистрация

  25. А можно опубликовать точное соответствие полей quik к именам в quik_ticks? Тк иначе приходится гадать .. что такое номер например?

  26. >К сожалению, регистрация не проходит
    На пауке? Мыло с цифрами? — Если да, то все мыла с цифрами банятся.

    Лучше всего использовать коннектор 3.51, потому что с 5 были проблемы.

    Номер — id
    Дата — D
    Время — T
    КодБумаги — Symbol
    Цена — Price
    Количество — vol
    Объем — TurnOver
    Операция — Operation
    ——
    p.s. От использования MySQL ушел, сейчас на MS SQL, поэтому не могу в полной мере оказывать поддержку.

  27. 28 NoName

    Добрый день Angel’s death !
    Возникла потребность в использовании «родного» (не переписанного) ODBC.dll
    но там засада с периодичностью считывания данных — раз в 5 секунд .
    Не могли бы Вы «научить» его считывать данные гораздо чаще , например 0.3-0.5 с ?

    • Добрый день.
      Вам нужно перекомпилировать исходники, в файле plugin.cpp найти строчку SetTimer( g_oData.m_hAmiBrokerWnd, MY_TIMER_ID, 5000, TimerFunc );

      5000 — число в миллисекундах, заменить на нужное.

      • 30 NoName

        Спасибо большое за помощь , всё зарабатало как нужно , только в настройках правда так и осталась 5секунд , но считывает как и положенно .

  28. Выложил пока предварительную версию плагина для закачки котировок с ММВБ.

    MarketGrid® (RU) data Plug-In for AmiBroker v1.0.0 Beta

    http://code.google.com/p/amibroker/wiki/MarketGridRU

    Закачивает список ценных бумаг и дневные котировки с ММВБ (Акции и ПИФы). Позже добавлю внутредневные данны и другие рынки.

  29. Fine each and every of your respective permission enable me to have your feed to remain up-to-date with
    forthcoming publish. With thanks many and you should continue the rewarding work.


Оставьте комментарий