В этой статье будет показано, как за несколько часов вывести свечи из Quik в Excel. Кроме того я представлю генератор скрипта для создания таблиц свечей в Quik, с открытым кодом на C#. Он нужен чтобы не разбирать Qple, при выводе свечек из Quik. А это основной затык, в этой простейшей связке. В этой статье опишу процесс работы с QuikTableScriptGenerator (далее «генератор скриптов») и дальнейший процесс вывода свечей по DDE в Excel. Всё в картинках и очень подробно. Думается, что всё вместе это поможет хоть немного алгоритмизироваться огромному множеству трейдеров.
plan:
1) Введение;
2) Как создать таблицу со свечками в Quik при помощи «генератора скриптов»;
3) Как вывести таблицу из Quik в Excel;
4) Программисту;
5)…;
6) profit.
1 Вместо введения
Есть такой не совсем быстрый, но очень простой способ создания советников (да и роботов, но надо знать VBA), при котором данные из Quik импортируются по DDE в EXCEL и там происходит их разбор и приведение к каким-то производным. Excel с его «умными» таблицами для этого подходит очень даже хорошо. Вывод по DDE в Quik реализован прекрасно и делается всё в два клика. Простые какие-то графики с производными и прочие расчёты можно и нужно делать в Excel, если нет желания учить несколько лет C# или разбирать несколько месяцев TSLab.
Когда только думал начать писать торговых роботов, четыре года назад, думал попробовать именно с такого способа. Мне нужны были данные о приращении цен множества инструментов относительно индекса по минутам, за последний час. Тогда я думал, что это будет прорывом в моём Скальпинге. Йохохо… Однако сразу же нарвался на очень большие и на тот момент для меня не преодолимые грабли. Стандартными способами невозможно вывести свечи из Quik по DDE, потому как свечи не хранятся в программе в виде таблиц, а экспортировать можно только их (таблицы). На тот момент в сети ещё не было на каждом шагу этих скриптов преобразующих свечи в таблицы, и плюс их надо редактировать вручную, а для этого понимать Qple хоть чуть — чуть. К чему я был совершенно не готов.
Четыре года спустя…© у меня в платформе давно реализован генератор скриптов и я хочу им поделиться.
Качаем:

Что в архиве:
1) Генератор скриптов. Язык реализации C#;
2) Этот пост вместо инструкции;
3) Открытая лицензия.
2 Как создать таблицу со свечками в Quik при помощи «генератора скриптов»
Для начала нам нужно создать текущую таблицу параметров в Quik, вот так:
И назначить ей следующие поля и источники данных:
В поле «Заголовки столбцов» должны быть поля как на рисунке. В поле «Заголовки строк» необходимо поместить те инструменты, которые планируется выводить по DDE.
Выглядеть всё должно вот так:
Далее создаём в Quik график того инструмента, который будем выводить по DDE. Именно с тем таймфреймом, который требуется. Это нужно чтобы Quik начал заказывать с сервера брокера соответствующие данные. В нашем случае это будет Сбербанк обыкновенный:
Далее открываем генератор скриптов и переносим в него необходимые данные, смотря на нашу таблицу текущих параметров:
Параметр 1 — это префикс к файлу со скриптом, который нужно придумать самому. Это также будущее имя скрипта внутри Quik. Т.ч. не стоит называть два скрипта одним именем…
Параметры 2,3,5 — переносим из таблицы текущих параметров
Параметр 4 — таймфрейм инструмента.
Нажав на кнопку «Указать», отмеченную цифрой 6, надо указать Exeшник Quik, вот так:
После чего можно нажимать кнопку создать:
Если всё нормально, то в этот момент в папке с Quik будет создан файл скрипта и появиться окошко с подтверждением операции:
Далее надо снова зайти в Quik и пройти по меню вот сюда:
В появившемся меню надо найти в корне Quik наш скрипт и выбрать его:
В следующем меню выбираем наш скрипт в таблице «Доступные портфели» и нажимаем «Загрузить локально»:
После чего закрываем окно.
Далее идём по главному меню Quik вот сюда:
Появится окно:
1) выбираем в таблице «Доступные портфели» наш портфель;
2) Нажимаем на кнопку «Добавить всё».
3) Нажимаем кнопку «Да».
И наконец-то можем наблюдать таблицу с нужными нам данными:
3 Выводим таблицу из Quik в Excel
1. Создаём файл Excel в корне Quik (можно где угодно, но мне так удобнее):
1) Я создал файл ExportTest в корне Quik
2) Переименовал один из его листов в ListSber
3) Сохранил изменения.
Идём опять в Quik и тыкаем нашу таблицу правой кнопкой мыши:
Во всплывающем меню выбираем «Вывод через DDE сервер».
Появиться следующее меню:
1) Жмём на кнопку «…» и находим в меню наш файл Excel, который мы недавно создали. В нашем случае это «ExportTest».
2) Вводим вкладку, на которую будут транслироваться данные. В нашем случае это «ListSber».
3) Проверяем чтобы стояла галочка «Запускать приложение DDE сервера автоматически»
4) Нажимаем «Начать вывод»
Окошко должно выглядеть следующим образом:
Теперь смотрим в наш файл Excel И…
Наблюдаем за таблицей свечей.
Самое главное в этом процессе, это спокойствие и чёткое соблюдение инструкции. Если что-то не получилось, нужно расслабиться и прочитать ещё раз список действий. Повторюсь:
1) Создаём таблицу текущих параметров с инструментом который хотим вывести;
2) Создаём график инструмента, который планируется выводить. Таймфрейм также должен совпадать с тем, который будем выводить;
3) Загружаем генератор скрипта и аккуратно заполняем все поля. Указываем местоположение Quik и создаём скрипт;
4) Подгружаем наш скрипт/потрфель в Quik. Активизируем его для просмотра. И создаём таблицу свечей;
5) Создаём Excel файл;
6) Настраиваем вывод по DDE;
7) Радуемся жизни…
Проблемы могут возникнуть, в случае если в папку с Quik запрещена запись либо «генератор скриптов» открыт не от лица администратора. Так что, прежде всего, необходимо это дело проверить и исправить.
4 Программисту
Если ты всё ещё редактируешь скрипты вручную (ФИ!), то можно взять из представленного проекта два класса QuikScriptGenerator.cs и QuikScriptGeneratorUI.cs и, переименовав их namespace на свой, использовать их для этого. Как их использовать смотри в program.cs. Там происходит создание объекта «генератор скрипта» и вызов его меню. Всё очень и очень просто.
5 Начинающему программисту
Эти же скрипты и таблицы можно использовать для вывода свечей по DDE в свои приложения и платформы (как это у меня происходит в обёртке для Quik), для этого нужно развернуть свой DDE сервер, о чём я напишу немного позже. Поэтому тренируйся пока на Excel, сохрани ссылку на этот блог, поставь плюс статье и иди за попкорном.
UPD(30.02.2016):
Доступна новая версия генератора скриптов, которая позволяет выводить и индикаторы:
http://o-s-a.net/posts/37-poluchenie-znachenija-svechei-i-indikatorov-iz-quik-v-excel.html
просто о..етительно, спасибо большое!
С чем может быть связана следующая проблема? В скрипте прописывается определенное количество свечей, например 3000. Один день экспортируется скажем 2690 свечей, в другой 960 и т.д. То есть нет фиксированного количества которое экспортировалось стабильно. В связи с этим возникают лаги в пересчете формул.
Здравствуйте.
Есть такая проблема. Это связанно со способом выгрузки данных при помощи этого скрипта.
Посмотрю что с этим можно сделать.
Добрый день, Алексей.
В текущей таблице параметров по RIH5 точность 0.
В вашем скрипте нет такого варианта — минимально значение «1».
В связи с этим не загружается таблица Портфель1.
Точность, это кол-во знаков после запятой, которые резервируются для бумаги в портфеле. Если этот параметр больше чем нужно, то всё нормально. Проблемы начинаются если параметр меньше чем необходимо для бумаги.
Вероятно проблема в другом. Попробуйте выгрузить другой инструмент, проверить, всё ли правильно делается в принципе.
Новую версию судя по всему всё равно делать. В следующей добавлю нолик в форму. Но ещё раз повторюсь, это не должно влиять на создание таблицы.
Спасибо, Алексей!
Все прекрасно работает и с «1».
Добрый день, Алексей. Спасибо за проделанную работу и предоставленную возможность использовать скрипт!
Замечено, что при экспорте данных с малоликвидных инструментов скрипт пропускает периоды без сделок. Можно ли их заменять последними известными значениями при объёме, равном 0?
Алексей, добрый день!
Как создать скрипт , на вывод данных с графика 2 часа?
Павел, здравствуйте.
Прошу прощения за долгий ответ.
Стандартно, насколько я помню, генератор скриптов не поддерживает двух часовой ТФ.
Т.е. сейчас никак.
Варианта дальше два:
1) набраться терпения и ждать несколько месяцев. 2 — 4. В планах есть обновить скрипт и подлечить несколько проблемных мест в нём.
2) заказать за деньги обновление скрипта сейчас. Чтобы программист QPLE всё побросал и сделал это прямо сейчас. Цена вопроса: 5 тыс. руб.
Не поймите как вымогательство денег) Программист Квик занят на коммерческом проекте сейчас. Не представляю как иначе его заинтересовать заняться этим софтом в данный момент.
Алексей , спасибо за ответ.
Придётся подождать.Буду ждать .
Я в эксель пробовал комплектовать свечи 2час из свечей 20мин .Не получается , потому что не удаётся привязаться к постоянной величине , это столбец время , допустим 140000.Эксель не видит эту цифру. Этот вариант можно как-нибудь продумать?
Можно в Excel точно обработать и часовые и минутные свечи самому. Схлопнуть их при помощи формул.
Но у нас нет специалиста по Excel или VBA. Т.ч. врятли мы сможем по этому пути пойти.
Проще уже в рамках Квик вытащить в таблицу нужные свечки из скрипта.
Добрый день.
Пыталась поменять в скрипте вывод информации по другому параметру, параметр с Цены на Открытый интерес путем замены в файле скрипта значения с Price на biddeptht.Но эксперимент не удался((Можно поменять в данном скрипте значение выводимого параметра?
Боюсь так просто не получиться поменять параметр. Скорее всего надо создавать дополнительный столбец в таблице и складывать значение ОИ в него. Это точно не одна строчка и это должен делать программист.
Записал Вашу просьбу. В следующем обновлении постараемся добавить ОИ в таблицу.
Алексей, здравствуйте!
На этапе создания скрипта вышла ошибка System.UnauthorizedAccessException, было отказано в доступе по пути (и был указан путь скрипта)
В чем может быть проблема?
Приветствую.
Виндовс не даёт создать скрипт.
Связано это может быть с разными вещами.
Возможно не хватает прав в системе.
Возможно просто надо запустить программу от имени администратора.
Как вариант, антивирус или брэндмауэр виндовс могут считать подобную деятельность подозрительной. Попробуйте отключить на время.
Как можно в экспортируемую в Эксель таблицу со свечами добавить колонку Volume (объем за минуту) и BidVolume (сумма объемов со значением «покупка» из таблицы всех сделок)? Спасибо.
Здравствуйте.
Можно ли с помощью этого генератора скриптов выводить в Эксель показатели индикаторов, осцилляторов?
Спасибо.
Добрый день.
К сожалению нельзя этого сделать
Всем привет. Прошло обновление генератора скрипта. На нашем новом сайте Вы можете его скачать. Вот здесь
Теперь можно выкачивать индикаторы. Ура!