Представляю вашему вниманию библиотеку для работы с 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, так как это слишком специфично для Квика.
почему нет? — есть.
и что за дурь делать из говна конфету?
Идея хорошая. С удовольствием забрал бы в свои проекты по готовности.
Но чесно, не совсем понял зачем тестировать инструкцию по скриптовому языку и переносить функционал ЛУА в .Net. Просто набить руку… Ну или я не так понял просто.
Для олд скул программистов нет нормального и бесплатного Api к Quik. Всё из костылей…
Если бы ты сделал хорошее Api, вроде SmartCom (без косяков только))), с простыми вызовами базовых функций свойственных для Api к бирже(а не какого-то непонятного скриптового языка) тебя бы на руках носили лет десять.
Вот описание Смарт Ком: www.itinvest.ru/software/smartcom/ как стандарт.
Да, и что такое GPL3 — можно будет в коммерческих проектах такую штуку применять или только за бесплатно всё должно быть?