Germany | Finland | Saint Petersburg | Drive

Котировки с сервера брокера

4.7/5 оценка (31 голосов)
  • Размер: 212.85 KB
  • Версия: 2.0
  • Просм: 8308
  • Добавлено: 06.02.15
  • Скачано: 1970
  • Изменено: 23.07.19

Этот скрипт позволяет накопить историю котировок и параметров торговых инструментов, используя базу, находящуюся на сервера брокера QUIK.

Подробнее в этой статье.

Установка:

  1. Архив содержит файлы демонстрационной и полной версий. Файлы демонстрационной версии доступны без пароля. Для распаковки файлов полной версии потребуется пароль. Распакуйте файлы архива в любую папку на ваш вкус. Если вы не знаете пароль к файлам полной версии, игнорируйте их.
  2. Укажите все необходимые вам инструменты и параметры в файле Export.ini. Описание синтаксиса находится в самом этом файле. 
  3. Запускайте скрипт обычным способом (меню терминала "Доступные скрипты")

Никаких графиков и таблиц открывать не нужно.

Кроме текущих свечей, скрипт выводит в файл также всю доступную на текущий момент историю. Демонстрационная версия каждые 10 минут будет просить нажать кнопку на клавиатуре. Подробнее о скрипте здесь.


Полную версию можно получить, исполнив перевод на карту

 

Сумма перевода не регламентируется - на ваше усмотрение.

 

История версий:

  • 1.0 Начальная версия
  • 1.1 Небольшие оптимизации
  • 1.2 Убрано возникающее при некоторых условиях повторение строк в csv файле
  • 1.3 Разделитель CSV формата теперь можно не указывать. Будет использоваться системная настройка Windows
  • 1.4 Обнаружены недокументированные особенности встроенных qlua функций table.s*, препятствующие нормальной работе скрипта в условиях пиковой нагрузки. Функции переписаны, теперь проблем с работой под критической нагрузкой нет.
  • 1.5 Добавлен параметр, управляющий буферизацией записи в CSV файл. При включенной буферизации строки файла собираются в памяти и сбрасываются на диск время от времени одной операцией, что ускоряет работу скрипта. Однако при этом последние строки попадают на диск с задержкой.
  • 1.6 Исправлена досадная ошибка с заданием буферизации CSV файла.
  • 1.7 Адаптировано к новым версиям терминала. Исправлены мелкие неточности
  • 1.8 Полностью убран тиковый экспорт из-за особенности терминала, не позволяющей его исполнить корректно во всех возможных вариантах задания параметров.
  • 2.0 Адаптировано для работы с терминалом версии 8

Комментарии   

# Optimus1 13.09.2015 20:55
А как можно приобрести полную версию ?
Ответить | Ответить с цитатой | Цитировать
# admin 13.09.2015 21:47
Ответил почтой
Ответить | Ответить с цитатой | Цитировать
# moto38 15.09.2015 06:29
ДД, Хочу приобрести полную версию скрипта.
Ответить | Ответить с цитатой | Цитировать
# admin 15.09.2015 08:16
Я отправил вам реквизиты
Ответить | Ответить с цитатой | Цитировать
# Yawol 20.11.2015 17:28
можно тоже реквизиты, кроме вебмани
Ответить | Ответить с цитатой | Цитировать
# admin 20.11.2015 17:47
Да,конечно. Выслал.
Ответить | Ответить с цитатой | Цитировать
# genom 30.12.2015 15:39
Здравствуйте. Прошу Вас выслать реквизиты, - !не вебмани!.
А возможно ли шапку файла делать самому?
Ответить | Ответить с цитатой | Цитировать
# admin 30.12.2015 16:29
Здравствуйте.

Реквизиты отправил.

Касаемо формирования шапки. А зачем вам нужно в ней что-то менять, с какой целью?
Ответить | Ответить с цитатой | Цитировать
# genom 30.12.2015 16:35
Например, для уменьшения веса фалов (при наборе тиковых данных на нескольких десятках инструментов). И как вариант при загоне данных в систему теханализа - меньше прописывать полей надо. Но если нет, то я и не настаиваю.
Ответить | Ответить с цитатой | Цитировать
# admin 30.12.2015 19:00
Я записал себе это, добавлю.
Ответить | Ответить с цитатой | Цитировать
# genom 31.12.2015 08:57
Михаил, добрый день и с наступающим Вас! Было бы просто чудесно, если бы Вы сделали скрипт для автоматического загона созданных файлов истории в Amibroker :-) Но это как пожелания.
Ответить | Ответить с цитатой | Цитировать
# admin 31.12.2015 09:53
И вас с праздником!

По поводу амиброкера.
Чем не устраивает адаптер квик-Амиброкер? С его помощью можно экспортировать даные в амиброкер из квика.в автоматическом режиме.
Ответить | Ответить с цитатой | Цитировать
# genom 01.01.2016 02:25
Доброго времени суток и с первым днем Нового года! Если Вы про стандартный плагин, то ИМХО через Ваш скрипт куда приятней собирать котировки нежели через ту же Гидру от S# или мучатся с экспортом напрямую в ами (иногда бывают сбои по непонятным причинам самого плагина). Да и копить историю вне Амиброкера универсальней, т.к. можно всегда при необходимости засунуть данные и в другой софт для тестов. Может не убедительно, но это навеяно у меня мыслями о возможности создания стороннего способа подкачки данных из самого Ами из опыта работы с подобными примочками к амиброкеру, но правда все они из инета тянут данные, а тут бы из своей базы.
Ответить | Ответить с цитатой | Цитировать
# Neosan 01.06.2016 14:16
ДД, я так понимаю Тиковые данные возможны только для текущего дня + вечер предыдущего или возможен вариант получения нескольких последних дней?
Ответить | Ответить с цитатой | Цитировать
# admin 01.06.2016 14:30
Здравствуйте.

Здесь все зависит от количества тиковых сделок, которые хранятся и доступны.

На ликвидных инструментах все именно так, как вы написали. На неликвидных период времени может достигать и нескольких дней.
Ответить | Ответить с цитатой | Цитировать
# Neosan 01.06.2016 14:38
Скорость записи в CSV через lua-скрипт (реагирования на новые данные) примерно =DDE или быстрей?

Также интересует данный скрипт может писать напрямую в SQL SERVER ч/з ODBC?
Ответить | Ответить с цитатой | Цитировать
# admin 01.06.2016 15:24
1. Трудно сказать. Не измерял. Особой разницы быть не должно

2. А как насчет попробовать самому? ))
Ответить | Ответить с цитатой | Цитировать
# Andy 22.06.2016 14:36
Добрый день!
А котировки опционов можно собирать?
Ответить | Ответить с цитатой | Цитировать
# admin 22.06.2016 15:26
Здравствуйте.

Котировки опционов ничем не отличаются от котировок других инструментов.
Ответить | Ответить с цитатой | Цитировать
# Z1gi 02.07.2016 22:14
Добрый день!

Прошу дать реквизиты для оплаты.
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2016 01:16
Здравствуйте!

Так номер карты же на картинке в статье, разве нет?
Ответить | Ответить с цитатой | Цитировать
# Bo$$ 25.10.2016 16:26
Здравствуйте! Сколько стоит полная версия ?
Ответить | Ответить с цитатой | Цитировать
# admin 25.10.2016 17:02
Здравствуйте.

В статье есть эта информация. Что-либо добавить к ней мне сложно. Исходите из собственного понимания справедливости, полезности скрипта для вас, удобства его использования и ценников в магазинах.
Ответить | Ответить с цитатой | Цитировать
# Bo$$ 25.10.2016 19:00
Оплатил за скрипт!
Ответить | Ответить с цитатой | Цитировать
# admin 25.10.2016 19:25
А я вам в почте написал пароль
Ответить | Ответить с цитатой | Цитировать
# Илья_+ 29.11.2016 22:19
Добрый,
перевел.
от **** 9846
Ответить | Ответить с цитатой | Цитировать
# admin 29.11.2016 22:26
Добрый. Пароль отправлен вам почтой
Ответить | Ответить с цитатой | Цитировать
# Алексей М 04.12.2016 10:11
Добрый день.
Оплатил только что через сбербанк он лайн.
Естественно, хочется получить полную версию побыстрее - ибо программировать могу только по выходным.
В случае если надо указать сумму или что то ещё - просьба сообщить об этом в почту.
Спасибо за помощь и классный скрипт!
Ответить | Ответить с цитатой | Цитировать
# Алексей М 08.12.2016 00:04
к сожалению ничего не получил.
Возможно, надо было указать номер моей карты - **** 7238,
сумма. была переведена в прошедшее воскресенье.
Пожалуйста, пришлите пароль.
Ответить | Ответить с цитатой | Цитировать
# admin 08.12.2016 07:53
Вероятно, письмо попало в папку спам или что-то в этом роде. Отправил еще раз.
Ответить | Ответить с цитатой | Цитировать
# Алексей М 13.12.2016 20:11
получил, спасибо!
Ответить | Ответить с цитатой | Цитировать
# Bootman 05.12.2016 10:41
Добрый день. Недавно работаю с Quik. Установил демо-версию вашего скрипта. Работает правильно (горит зеленая стрелочка). А гду именно сохраняются файлы с экспортируемыми данными? В какой папке их увидеть?
Ответить | Ответить с цитатой | Цитировать
# admin 05.12.2016 12:04
Здравствуйте.

Настройка всех параметров, в том числе и создаваемых файлов, производится в файле export.ini
Ответить | Ответить с цитатой | Цитировать
# Bootman 05.12.2016 12:20
На сколько понимаю новые файлы с котировками должны появляться в той же папке, где лежит export.ini ? А с какого момента?
Ответить | Ответить с цитатой | Цитировать
# admin 05.12.2016 13:07
Чтобы не гадать, достаточно последовать моему совету и все-таки заглянуть в файл export.ini. Так есть все ответы на ваши вопросы, если читать внимательно.

вот пример описания задачи из этого файла

[VTBR]
CLASSCODE = TQBR // Класс инструмента
TIMEFRAME = W1 // Таймфрейм в секундах. Можно использовать константы TICK,M1,M2,M3,M 4,M5 и др.
PARAMETER = // Параметр инструмента. Если не указан, подразумевается цена/объём
FILE = VTBR-W // Имя csv файла. Если имя не указано, робот сгенерирует его сам
SECCODE = VTBR

Вы можете не указывать имя файла, тогда робот его создаст сам. Вы можете его указать - и робот будет использовать его. Вы можете указать имя файла с путем, диском, сетевым именем и так далее - и файл будет создаваться там, где вы указали.

Файл появляется тогда, когда в него есть что записать
Ответить | Ответить с цитатой | Цитировать
# Константин Меснянкин 26.01.2017 08:54
Доброе утро. Скинул с тинькофской ****0425 на пиво, ну или на кофе кому что больше нравится.
Ответить | Ответить с цитатой | Цитировать
# admin 26.01.2017 09:52
Пароль вам отправлен. Удачи!
Ответить | Ответить с цитатой | Цитировать
# niktul 02.02.2017 06:17
А как можно приобрести полную версию1
Ответить | Ответить с цитатой | Цитировать
# admin 02.02.2017 09:20
В статье есть ответ на ваш вопрос.
Ответить | Ответить с цитатой | Цитировать
# fonto 14.02.2017 20:32
привет! спасибо за скрипт. давно искал =).
перевёл с ****0901.
Ответить | Ответить с цитатой | Цитировать
# Игорь Нестеренок 22.02.2017 20:18
Как получить полную версию, и сколько подскажите.
Ответить | Ответить с цитатой | Цитировать
# admin 22.02.2017 22:49
Игорь, вся информация об этом в статье. Что-либо добавить к ней мне затруднительно.
Ответить | Ответить с цитатой | Цитировать
# Юрий77 13.04.2017 09:48
Михаил - вопрос - может ли этот скрипт сохранять историю для ваших скриптов - Cumulative Volume Delta и Индикатор объёмов с разделением на покупки и продажи .
А то день вот так пропустишь не включишь комп и на гафике индикатора пробел?
Если нет - можно его доработать?
Ответить | Ответить с цитатой | Цитировать
# admin 13.04.2017 10:19
Нет, не может.
Ответить | Ответить с цитатой | Цитировать
# СергейФ 08.07.2017 04:34
Добрый день, Михаил,

Загрузил Демо.

Выскочило:
bad argument #1 to 'setvbuf' (invalid option 'yes'),

т.е. команда CSV_BUFFERED = Yes
не принимается.

Также, данные в файл не попадают, пока не открыт соответствующий график.

Брокер - Открытие.

Вопрос 1 - возможно ли оcуществлять запись таймфрэйма непрерывно - заполняя периоды отсутствия торгов нулями?
Вопрос 2 - какова сумма за мои хотелки?

С уважением, Сергей.
Ответить | Ответить с цитатой | Цитировать
# admin 08.07.2017 10:55
Сергей, спасибо за сообщение об ошибке. Исправил, версия 1.6

Насчет необходимости открытия графиков для вывода информации в файл. Измените настройки в меню "Заказ данных" - "Поток котировок". Поставьте что-то из серии "Установить настройки по открытым таблицам".

Касаемо хотелок.

Да, это можно сделать и ваш бюджет это не подорвёт ) Но подробности лучше обсуждать скайпом mikemsk или электронной почтой.
Ответить | Ответить с цитатой | Цитировать
# Игорь777 22.09.2017 17:29
Как добавить Tiker и Per через запятую в таблицу, они ведь указываются в файле Export?
Ответить | Ответить с цитатой | Цитировать
# Андрей701 13.01.2019 02:08
Можно ли сделать в файле csv разделитель целой и дробной части числа не точку, а запятую как это принято в региональных настройках Excel и Windows для России?
Ответить | Ответить с цитатой | Цитировать
# admin 13.01.2019 09:48
Нет, эта возможность не предусмотрена.

Но для удобства вы можете сменить в региональных настройках виндовс разделитель дробной части с запятой на точку и все сразу станет хорошо )
Ответить | Ответить с цитатой | Цитировать
# Андрей701 24.01.2019 16:46
Как ограничить глубину скачиваемых данных ?(например - начиная с такой-то даты)
Ответить | Ответить с цитатой | Цитировать
# admin 24.01.2019 17:34
Никак.

А зачем?
Ответить | Ответить с цитатой | Цитировать
# Андрей701 25.01.2019 09:25
Цитирую admin:
Никак.

А зачем?

Мне нужно отслеживать динамику инструментов в моем портфеле которому всего пол-года. Излишние данные мне не нужны - перегружают вычисления в Excel.
Ответить | Ответить с цитатой | Цитировать
# Андрей701 25.01.2019 09:29
Цитирую admin:
Никак.

А зачем?

Хотя решение уже нашлось - делаю импорт в Excel не всех данных из файла csv, а начиная с нужной строки.
Ответить | Ответить с цитатой | Цитировать
# Катерина 08.04.2019 21:03
Добрый день! Скачала скрипт, внесла все данные в файл export.ini по инструкции, запустила скрипт в Квике, горит зеленая стрелочка, никаких ошибок нет. Файлы создались там, где я указала, с нужными названиями, только вот они пустые, есть только заголовки колонок и все. Брокер Промсвязьбанк. Сделала все уже после закрытия торгов, но терминал к серверу подключен, я так понимаю, данные идут с сервера. Подскажите, пожалуйста, в чем может быть причина? Связано ли это с тем, что делаю после закрытия торгов? Извиняюсь, если туплю, я первый раз))
Ответить | Ответить с цитатой | Цитировать
# Катерина 08.04.2019 21:10
Появился файл в котором такие данные по всем таблицам:
20:39:35 Подключено к ОАО Промсвязьбанк (91.223.63.92:15101)
20:39:35 [OGKB] Не определён разделитель полей CSV. Используем системную настройку
20:39:35 [OGKB] Файл данных C:\QuikСкрипт\С крипт-2\Экспорт \OGKB-D1.csv не существует. Создаём
20:39:35 [OGKB] Доступно 0 свечей
Ответить | Ответить с цитатой | Цитировать
# admin 08.04.2019 22:35
Здравствуйте.

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

Терминал получил 0 свечей, то есть нисколько..
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 09:52
Прописывала вот так:
[MRKC]
CLASSCODE = TQBR
TIMEFRAME = D1
PARAMETER = valtoday
FILE = C:\QuikСкрипт\С крипт-2\Экспорт \MRKC-D1
SECCODE = MRKC


[LKOH]
CLASSCODE = TQBR
TIMEFRAME = D1
PARAMETER = valtoday
FILE = C:\QuikСкрипт\С крипт-2\Экспорт \LKOH-D1
SECCODE = LKOH
Вроде все по инструкции. По этим инструментам у меня поток котировок в Квике идет, графики работают. А в таблицах все равно пусто. Может какую-то настройку нужно включить или выключить в Квике? Или может Брокер запрещает это действие?
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 10:16
Заметила, что он сейчас стал сначала разрывать соединение, а потом загружать, так же быть не должно?
Экспорт котировок www.bot4sale.ru 1.70
Сборка 19.12.2017 20:43:13 www.bot4sale.ru
Рабочее место QUIK 7.27.2.1
09-Апр-2019 Вторник RTZ 2 (зима) +0300
09:45:00 Подключение разорвано
09:45:00 [OGKB] Не определён разделитель полей CSV. Используем системную настройку
09:45:00 [OGKB] Доступно 0 свечей
09:45:00 [SBERP] Не определён разделитель полей CSV. Используем системную настройку
09:45:00 [SBERP] Доступно 0 свечей
09:45:00 [MRKC] Не определён разделитель полей CSV. Используем системную настройку
09:45:00 [MRKC] Доступно 0 свечей
09:45:00 [SBER] Не определён разделитель полей CSV. Используем системную настройку
09:45:00 [SBER] Доступно 0 свечей
09:45:00 [NLMK] Не определён разделитель полей CSV. Используем системную настройку
09:45:00 [NLMK] Доступно 0 свечей
09:45:00 [LKOH] Не определён разделитель полей CSV. Используем системную настройку
09:45:00 [LKOH] Доступно 0 свечей
09:45:17 Подключено к ОАО Промсвязьбанк (193.200.10.92: 15100)
10:13:04 Подключение разорвано
10:13:28 Подключено к ОАО Промсвязьбанк (193.200.10.92: 15100)
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 10:19
Если я правильно понимаю, он пытается загрузить данные после разрыва соединения, а после подключения почему-то ничего не делает. Но возможно, я не так понимаю)))
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 10:54
Позвонила брокеру, они сказали, что все данные открыты, никаких ограничений нет. Уже не знаю, что сделать, чтобы заработало(((
Ответить | Ответить с цитатой | Цитировать
# admin 09.04.2019 13:31
Катерина,

09:45:00 Подключение разорвано
09:45:00 [OGKB] Не определён разделитель полей CSV. Используем системную настройку
09:45:00 [OGKB] Доступно 0 свечей


Без подключения к брокеру как можно получить от него данные?
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 13:48
А зачем скрипт запрашивает данные сразу после отключения, а после подключения напротив, их не запрашивает? В данный момент у меня терминал подключен и работает, а скрипт данные не запрашивает. Что не так?
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 13:51
Более того, при подключенном соединении, если отключить скрипт и снова его включить, то он начнет запрашивать данные (при подключенном соединении!!!), но результат все равно нулевой.
Экспорт котировок www.bot4sale.ru 1.70
Сборка 19.12.2017 20:43:13 www.bot4sale.ru
Рабочее место QUIK 7.27.2.1
09-Апр-2019 Вторник RTZ 2 (зима) +0300
10:32:45 Подключено к ОАО Промсвязьбанк (193.200.10.92:15100)
10:32:45 [OGKB] Не определён разделитель полей CSV. Используем системную настройку
10:32:45 [OGKB] Доступно 0 свечей
10:32:45 [SBERP] Не определён разделитель полей CSV. Используем системную настройку
10:32:45 [SBERP] Доступно 0 свечей
10:32:45 [MRKC] Не определён разделитель полей CSV. Используем системную настройку
10:32:45 [MRKC] Доступно 0 свечей
10:32:45 [SBER] Не определён разделитель полей CSV. Используем системную настройку
10:32:45 [SBER] Доступно 0 свечей
10:32:45 [NLMK] Не определён разделитель полей CSV. Используем системную настройку
10:32:45 [NLMK] Доступно 0 свечей
10:32:45 [LKOH] Не определён разделитель полей CSV. Используем системную настройку
10:32:45 [LKOH] Доступно 0 свечей
11:05:48 Выполнение прервано
11:06:54 --------------- --------------- --------------- --------
Ответить | Ответить с цитатой | Цитировать
# admin 09.04.2019 14:19
А подождать пробовали после соединения с брокером?

Сервер отдает данные не моментально - его возможности и возможности вашего интернет канала не безграничны.
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 17:53
Сутки уже почти прошли... Скрипт включен постоянно. Но судя по информации в лог файле, действия происходят только в момент разрыва или подключения соединения. В другое время работы терминала - ничего. А сколько времени примерно может занять загрузка данных? Бывает, что несколько суток?
Ответить | Ответить с цитатой | Цитировать
# admin 09.04.2019 19:21
Я понял, в чем дело.

Вы хотите получить данные по параметру valtoday на дневном таймфрейме.

Этот параметр хранится на сервере только одни сутки.

Поэтому за предыдущие дни получить его историю невозможно (ее нет на сервере), а сегодня еще не кончилось и конце сегодняшней дневной свечи информации еще тоже нет))

Попробуйте сменить таймфрейм на более мелкий, например на 1 минуту - и вы получите сегодняшнюю историю на этом таймфрейме.
Ответить | Ответить с цитатой | Цитировать
# Катерина 09.04.2019 22:55
Так как мне нужен дневной таймфрейм, я просто убрала этот параметр вообще, и о да!!! Все заработало!!! Спасибо вам огромное!)))
Ответить | Ответить с цитатой | Цитировать
# yalin2019 19.05.2019 16:53
Цитирую Катерина:
Так как мне нужен дневной таймфрейм, я просто убрала этот параметр вообще, и о да!!! Все заработало!!! Спасибо вам огромное!)))

А как сделать, как Катерина? Какой параметр убрать?
Ответить | Ответить с цитатой | Цитировать
# Finmod 28.04.2019 13:55
Добрый день!
Перевел из Qiwi
Ответить | Ответить с цитатой | Цитировать
# admin 28.04.2019 15:08
Добрый!

Пароль у вас в почте.
Ответить | Ответить с цитатой | Цитировать
# yalin2019 18.05.2019 20:17
Здравствуйте! Скачал версию, а архив не открывается. Пишет -повреждён.
Ответить | Ответить с цитатой | Цитировать
# yalin2019 19.05.2019 06:11
архиватор заменил и открылось.
Ответить | Ответить с цитатой | Цитировать
# yalin2019 19.05.2019 16:54
Цитирую yalin2019:
Цитирую Катерина:
Так как мне нужен дневной таймфрейм, я просто убрала этот параметр вообще, и о да!!! Все заработало!!! Спасибо вам огромное!)))

А как сделать, как Катерина? Какой параметр убрать?
Ответить | Ответить с цитатой | Цитировать
# yalin2019 19.05.2019 17:00
файл Export.ini помещать в папку LuaIndicators?
Ответить | Ответить с цитатой | Цитировать
# admin 19.05.2019 18:06
Процедура установки описана в этой статье, прочтите ее.

Про LuaIndicators там нет ни слова.
Ответить | Ответить с цитатой | Цитировать
# yalin2019 19.05.2019 17:58
Всего сколько можно получить свечей у меня 172 дневных свечи, я хотел получить данные с 2016 года, как это сделать?
Ответить | Ответить с цитатой | Цитировать
# admin 19.05.2019 18:07
При первом запуске скрипта вы получите ровно столько свечей инструмента, сколько их хранит ваш брокер.
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить