buybackoff
buybackoff личный блог
21 декабря 2014, 07:21

QuikSharp - интерфейс Quik Lua полностью в .NET

Представляю вашему вниманию библиотеку для работы с Quik из C#/F#/.NET — QuikSharp.

Последняя неделя показала, что мне нельзя торговать руками на такой волатильности, и заставила задуматься о более серьезном подходе к автоматизации. В итоге — пока нет доступа к Plaza, Fix и другим нормальным API — я набросал эту библиотеку.

Главная идея библиотеки — всё, что написано в руководстве к Луа работает из .NET без изменений интерфейса. Quik и Lua — недружественная территория по сравнению с .NET, хочется свести их использование к абсолютному минимуму.

Реализован и протестирован механизм обмена данными на основе TCP sockets. Ping/Pong roundtrip с Квиком занимает 190 микросекунд на моем компьютере. Также реализованы сервисные функции и несколько функций обратного вызова.

Установить библиотеку в свой .NET проект можно из NuGet. В проекте будет создана папка lua, из которой нужно запускать в Квике скрипт QuikSharp.lua.

Примеры использования находятся в юнит-тестах здесь.

Предлагаю всем заинтересованным присоединиться к дописыванию, тестированию и улучшению библиотеки. QuikSharp  — открытое ПО свободное для личного некоммерческого использование и всегда таким останется. Я считаю, что еще никто никто не разаботал деньги на рынке за счет более хорошего соединения с Квиком (а не с биржей), но у многих есть проблемы с базовой автоматизацией Квика.

Цель — реализовать и оттестировать 100% из функционала QLUA из руководства. Если найдутся желающие помочь дописать эту библиотеку, пишите здесь а лучше на ГитХабе в Issues.

В коде все должно быть кристально понятно — как добавить новые функции и события. Я генерирую структуры данных (таблицы) из описания QLUA документации с помощью Эксель-файла в корне проекта. Все имена в структурах данных полностью соотвествуют документации QLUA. Пример структур данных из QLUA в этой папке, пример простейших функций в этом файле, пример событий (функций обратного вызова) — здесь. Эти примеры — шаблон для других функций.

Пользуйтесь на здоровье и следите за обновлениями на ГитХабе! (+ оставляйте отзывы и предложения)

Update (v.0.1.3):

Немного подкрутил и время туда-обратно снизилось с 200 микро- до 60 микросекунд! :)
Добавил еще три простых функции и пару событий. Копипаст шаблона уверенно и легко работает для новых фукнций.

План:
1. Все функции обратного вызова
2. Функции взаимодействия скрипта Lua и Рабочего места QUIK (включая функции для работы со свечами)
3. Функции для заказа стакана (сделано)
...
Самым последним в планах — сделать Функции для работы с таблицами Рабочего места QUIK, так как это слишком специфично для Квика.

 



67 Комментариев
  • crazyFakir
    21 декабря 2014, 07:27
    >>пока нет доступа к Plaza

    почему нет? — есть.

    и что за дурь делать из говна конфету?
  • Алексей Ван <o-s-a.net>
    21 декабря 2014, 08:21
    Привет.
    Идея хорошая. С удовольствием забрал бы в свои проекты по готовности.
    Но чесно, не совсем понял зачем тестировать инструкцию по скриптовому языку и переносить функционал ЛУА в .Net. Просто набить руку… Ну или я не так понял просто.
    Для олд скул программистов нет нормального и бесплатного Api к Quik. Всё из костылей…
    Если бы ты сделал хорошее Api, вроде SmartCom (без косяков только))), с простыми вызовами базовых функций свойственных для Api к бирже(а не какого-то непонятного скриптового языка) тебя бы на руках носили лет десять.
    Вот описание Смарт Ком: www.itinvest.ru/software/smartcom/ как стандарт.

    Да, и что такое GPL3 — можно будет в коммерческих проектах такую штуку применять или только за бесплатно всё должно быть?
  • Алексей Ван <o-s-a.net>
    21 декабря 2014, 08:35
    да… и по твоей ссылке всё на не понятном иностранном языке. Что такое? Квик за пределами этой страны вроде не используют))
  • ace-fltrade
    21 декабря 2014, 10:28
    Хотел на праздниках писать коннектор к квику, похоже задача упростилась… Будем тестировать. Думаю смогу вклад в проект внести. Какой самый удобный для тебя формат обратной связи ( куда писать?)

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн