Сентябрь 9th, 2014

Экспорт котировок из Quik в Excel. БЕСПЛАТНЫЙ и ОТКРЫТЫЙ Генератор Qple скриптов для создания таблицы свечей и инструкция по их экспорту в Excel

, Open Source, by Алексей Ван.

В этой статье будет показано, как за несколько часов вывести свечи из 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, вот так:

СозданиеТаблицыПараметров1

 

И назначить ей следующие поля и источники данных:

СозданиеТаблицыПараметров2

В поле «Заголовки столбцов» должны быть поля как на рисунке. В поле «Заголовки строк» необходимо поместить те инструменты, которые планируется выводить по DDE.

Выглядеть всё должно вот так:

СозданиеТаблицыПараметров3

 

Далее создаём в Quik график того инструмента, который будем выводить по DDE. Именно с тем таймфреймом, который требуется. Это нужно чтобы Quik начал заказывать с сервера брокера соответствующие данные. В нашем случае это будет Сбербанк обыкновенный:

 

Свечной график Сбербанка тф: 1мин

Свечной график Сбербанка тф: 1мин

 

Далее открываем генератор скриптов и переносим в него необходимые данные, смотря на нашу таблицу текущих параметров:

Генератор1

Процесс генерации скрипта

Параметр 1 — это префикс к файлу со скриптом, который нужно придумать самому. Это также будущее имя скрипта внутри Quik. Т.ч. не стоит называть два скрипта одним именем…

Параметры 2,3,5 — переносим из таблицы текущих параметров

Параметр 4 — таймфрейм инструмента.

Нажав на кнопку «Указать», отмеченную цифрой 6, надо указать Exeшник Quik, вот так:

Указываем Quik .exe

Указываем Quik .exe

После чего можно нажимать кнопку создать:

Генератор3

Если всё нормально, то в этот момент в папке с Quik будет создан файл скрипта и появиться окошко с подтверждением операции:

Скрипт успешно создан

Скрипт успешно создан

 

Далее надо снова зайти в Quik и пройти по меню вот сюда:

Создаём портфель1

В появившемся меню надо найти в корне Quik наш скрипт и выбрать его:

Создаём портфель2

В следующем меню выбираем наш скрипт в таблице «Доступные портфели» и нажимаем «Загрузить локально»:

Создаём портфель33

 

После чего закрываем окно.

Далее идём по главному меню Quik вот сюда:

Создаём портфель4

Появится окно:

Создаём портфель5

1) выбираем в таблице «Доступные портфели» наш портфель;

2) Нажимаем на кнопку «Добавить всё».

3) Нажимаем кнопку «Да».

 

И наконец-то можем наблюдать таблицу с нужными нам данными:

Создаём портфель6

 

3 Выводим таблицу из Quik в Excel

1. Создаём файл Excel в корне Quik (можно где угодно, но мне так удобнее):

Export

 

1) Я создал файл ExportTest в корне Quik

2) Переименовал один из его листов в ListSber

3) Сохранил изменения.

 

Идём опять в Quik и тыкаем нашу таблицу правой кнопкой мыши:

Export2

Во всплывающем меню выбираем «Вывод через DDE сервер».

Появиться следующее меню:

Export3

1) Жмём на кнопку «…» и находим в меню наш файл Excel, который мы недавно создали. В нашем случае это «ExportTest».

2) Вводим вкладку, на которую будут транслироваться данные. В нашем случае это «ListSber».

3) Проверяем чтобы стояла галочка «Запускать приложение DDE сервера автоматически»

4) Нажимаем «Начать вывод»

Окошко должно выглядеть следующим образом:

Export35

Теперь смотрим в наш файл Excel И…

Export4

Наблюдаем за таблицей свечей.

 

Самое главное в этом процессе, это спокойствие и чёткое соблюдение инструкции. Если что-то не получилось, нужно расслабиться и прочитать ещё раз список действий. Повторюсь:

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

Back Top

Responses to “Экспорт котировок из Quik в Excel. БЕСПЛАТНЫЙ и ОТКРЫТЫЙ Генератор Qple скриптов для создания таблицы свечей и инструкция по их экспорту в Excel”

  1. просто о..етительно, спасибо большое!

  2. С чем может быть связана следующая проблема? В скрипте прописывается определенное количество свечей, например 3000. Один день экспортируется скажем 2690 свечей, в другой 960 и т.д. То есть нет фиксированного количества которое экспортировалось стабильно. В связи с этим возникают лаги в пересчете формул.

    • Здравствуйте.
      Есть такая проблема. Это связанно со способом выгрузки данных при помощи этого скрипта.
      Посмотрю что с этим можно сделать.

      Алексей Ван at Ответить
  3. Добрый день, Алексей.
    В текущей таблице параметров по RIH5 точность 0.
    В вашем скрипте нет такого варианта — минимально значение «1».
    В связи с этим не загружается таблица Портфель1.

    Александр at Ответить
    • Точность, это кол-во знаков после запятой, которые резервируются для бумаги в портфеле. Если этот параметр больше чем нужно, то всё нормально. Проблемы начинаются если параметр меньше чем необходимо для бумаги.
      Вероятно проблема в другом. Попробуйте выгрузить другой инструмент, проверить, всё ли правильно делается в принципе.
      Новую версию судя по всему всё равно делать. В следующей добавлю нолик в форму. Но ещё раз повторюсь, это не должно влиять на создание таблицы.

      Алексей Ван at Ответить
  4. Спасибо, Алексей!
    Все прекрасно работает и с «1».

    Александр at Ответить
  5. Добрый день, Алексей. Спасибо за проделанную работу и предоставленную возможность использовать скрипт!
    Замечено, что при экспорте данных с малоликвидных инструментов скрипт пропускает периоды без сделок. Можно ли их заменять последними известными значениями при объёме, равном 0?

  6. Алексей, добрый день!
    Как создать скрипт , на вывод данных с графика 2 часа?

    • Павел, здравствуйте.
      Прошу прощения за долгий ответ.
      Стандартно, насколько я помню, генератор скриптов не поддерживает двух часовой ТФ.
      Т.е. сейчас никак.
      Варианта дальше два:
      1) набраться терпения и ждать несколько месяцев. 2 — 4. В планах есть обновить скрипт и подлечить несколько проблемных мест в нём.
      2) заказать за деньги обновление скрипта сейчас. Чтобы программист QPLE всё побросал и сделал это прямо сейчас. Цена вопроса: 5 тыс. руб.
      Не поймите как вымогательство денег) Программист Квик занят на коммерческом проекте сейчас. Не представляю как иначе его заинтересовать заняться этим софтом в данный момент.

      Алексей Ван at Ответить
  7. Алексей , спасибо за ответ.
    Придётся подождать.Буду ждать .

  8. Я в эксель пробовал комплектовать свечи 2час из свечей 20мин .Не получается , потому что не удаётся привязаться к постоянной величине , это столбец время , допустим 140000.Эксель не видит эту цифру. Этот вариант можно как-нибудь продумать?

    • Можно в Excel точно обработать и часовые и минутные свечи самому. Схлопнуть их при помощи формул.
      Но у нас нет специалиста по Excel или VBA. Т.ч. врятли мы сможем по этому пути пойти.
      Проще уже в рамках Квик вытащить в таблицу нужные свечки из скрипта.

      Алексей Ван at Ответить
  9. Добрый день.
    Пыталась поменять в скрипте вывод информации по другому параметру, параметр с Цены на Открытый интерес путем замены в файле скрипта значения с Price на biddeptht.Но эксперимент не удался((Можно поменять в данном скрипте значение выводимого параметра?

    • Боюсь так просто не получиться поменять параметр. Скорее всего надо создавать дополнительный столбец в таблице и складывать значение ОИ в него. Это точно не одна строчка и это должен делать программист.
      Записал Вашу просьбу. В следующем обновлении постараемся добавить ОИ в таблицу.

      Алексей Ван at Ответить
  10. Алексей, здравствуйте!
    На этапе создания скрипта вышла ошибка System.UnauthorizedAccessException, было отказано в доступе по пути (и был указан путь скрипта)
    В чем может быть проблема?

    • Приветствую.
      Виндовс не даёт создать скрипт.
      Связано это может быть с разными вещами.
      Возможно не хватает прав в системе.
      Возможно просто надо запустить программу от имени администратора.
      Как вариант, антивирус или брэндмауэр виндовс могут считать подобную деятельность подозрительной. Попробуйте отключить на время.

      Алексей Ван at Ответить
  11. Как можно в экспортируемую в Эксель таблицу со свечами добавить колонку Volume (объем за минуту) и BidVolume (сумма объемов со значением «покупка» из таблицы всех сделок)? Спасибо.

  12. Здравствуйте.
    Можно ли с помощью этого генератора скриптов выводить в Эксель показатели индикаторов, осцилляторов?
    Спасибо.

  13. Всем привет. Прошло обновление генератора скрипта. На нашем новом сайте Вы можете его скачать. Вот здесь
    Теперь можно выкачивать индикаторы. Ура!

    Алексей Ван at Ответить

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

Ваш e-mail не будет опубликован.