В этой статье будет показано, как вывести свечи из 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 хоть чуть — чуть. К чему я был совершенно не готов.
Четыре года спустя...© у меня в платформе давно реализован генератор скриптов и я хочу им поделиться.
Скачиваем со страницы:
sib-algo.ru/?p=162
Что в архиве:
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:
Скрипт создаёт таблицы свечей с таймфреймом максимум часовым. К сожалению мне выше таймфреймы не нужны и я особо не парился по этому поводу. Если у кого-то есть скрипт для выгрузки дней/недель, будьте добры дайте ссылку, родина вас не забудет.
Цимес роботов в екселе это когда бары не нужны, работа с ттп по большому числу инструментов например.
Поэтому если нужна 100% точность свечей, лучше самому качать таблицу сделок по DDE и строить свечи с помощью того же vBA.