buybackoff

QUIKSharp 1.0 feedback

Товарищи, всем привет! 

Кажется в течение последнего года не было серьезных вопросов к функционалу QUIKSharp, и мы собираемся наконец объявить его стабильным (версия 1.0, была бэтой очень долго) и доступным через NuGet, без необходимости клонировать проект с ГитХаба и строить его самим.

Очень важно, что цель проекта: «повторить API QLUA в C# максимально точно и качественно». Ничего больше, но не меньше.

Тут обсуждение: https://github.com/finsight/QUIKSharp/issues/195

Кто уже пользуется библиотекой и кого всё устраивает, просто поставьте +1 на ГитХабе (и может оставьте пожелания для версии 2.0). Кто пользуется, но испытывает неудобства, опишите их пожалуйста по ссылке.

Кто видит этот проект впервые и умеет прогать в C# — попробуйте, пожалуйста! Там есть пример с графической оболочкой и много отвеченных вопросов по тэгу question: https://github.com/finsight/QUIKSharp/labels/question, плюс readme на русском:  https://github.com/finsight/QUIKSharp/blob/master/README.RU.md. Если что-то не будет работать — отпишитесь по той же ссылке, но только если таких вопросов и решений уже не было по тэту question.

Кто прогает на Python/Node.js(JavaScript/TypeScript): скажите — вам оно нужно!? Если да, то присоединяйтесть к разработке JSON-RPC интерфейса (отпишитесь по той же ссылке).

Удачной всем торговли!

P.S. Тут я скопирую кое-что для ARQA, не знаю как до них достучаться:
А если у кого-то есть выход на ARQA или кто-то из ARQA это читает — скажите им, что они очень нехорошие люди, раз еще не сделали сами JSON-RPC интерфейс. У них всё для этого есть, и я не могу понять, почему они этого не делают — это решение привязывает пользователей к Квику, а отсутствие такого решения в конечном счете быстрее толкает пользователей в сторону Плазы и т.п.
  • обсудить на форуме:
  • QUIK
★17
32 комментария
Помню как вы его начинали делать, надо же, не забросили. Молодцы
avatar
Андрей К, я много раз повторю цель: «повторить API QLUA», а не сделать еще один XXX, так что это не так сложно, и оказалось нужно тем, кто сами предпочитает прогать. Молодцы в бОльшей мере контрибьютеры!
avatar
Молодцы, конечно, что что-то фигачите и делитесь, но по-моему цель проекта несколько сомнительна. Она с одной стороны подразумевает, что API QLUA достаточно хорош сам по себе, а с другой — хорош для C#. Не спец в C#, но есть подозрение, что стиль написания кода и интерфейсов на нём всё-таки отличается от LUA. Собственно, поэтому у вас и возникают баги вроде #7.
avatar
Максим, вы явно не разобрались — #7 не баг, а «особенное» поведение Квика. Lua язык для написания коротких сриптов, но никак не приложений. Язык никак не связан с #7.
avatar
buybackoff, кроме последнего предложения, с остальным согласны? Попробуйте ради эксперимента новый проект, где C# API будет такое, какое вы считаете правильным и не завязанным на «особенности» Квика.
Навскиду, по-моему, нормальное нативное апи не должно заставлять своих пользователей дёргать ToDecimal, ToInt32 и прочее. Т.е. чем меньше одинакового кода в ваших же примерах (Tool.cs), тем лучше.

Можно ещё блумберговское апи посмотреть, но то на любителя. bloomberg.github.io/blpapi-docs/dotnet/3.8/html/N_Bloomberglp_Blpapi.htm
avatar
 Касательно PS, на просьбы такого типа арковцы обычно отвечают, что у них есть FIX и отвалите.
avatar
Максим, а у них есть FIX для частников? Давно?
avatar
ch5oh, как давно он появился — не в курсе, пару лет назад первый раз про него услышал. Вроде за отдельный прайс, если брокер даёт - https://arqatech.com/ru/products/quik/modules/integration-solutions/fix-software-interfaces/ или поиском «FIX» по их форуму (выдаёт кучу мусора).
Вот пример их ответа forum.quik.ru/messages/forum16/message29802/topic3431/#message29802
avatar
Максим, FIX — это явно не для частников. Достаточно прочитать системные требования:
Оборудование Программное обеспечение

Процессор не хуже Intel Xeon E5504,

Оперативная память не менее 2 ГБ,

10 ГБ свободного места на жестком диске.

Операционная система Windows Server 2008/2012/2016 (x64).

avatar
Prophetic, что из этого списка недоступно частнику? Ну и я как бы не топлю за это решение от арки, просто ссылаюсь на их ответы.
avatar
Максим, 
Теоретически, частник конечно же может купить Xeon (со всеми вытекающими), вот только для 99% частников это совершенно нерентабельно.
Если я правильно понял описание FIX — это в первую очередь для брокеров или специализированных компаний, которые хотят предоставлять интерфейс доступа к серверам через себя. Вот только брокерам это нах не нужно, когда есть плаза. Во всяком случае я не припомню ни одного брокера, который предлагал бы такой интерфейс подключения к серверам.
avatar
Prophetic, это, кстати, очень слабые требования.
avatar
ch5oh, Все относительно. 
Относительно обычных затрат организации (например брокера) которая могла бы запустить у себя такой сервис — да, это требования небольшие, и малозатратные.
А вот для 99% обычных пользователей сборка такой системы — это разика эдак в три дороже обычного хорошего системного блока. И это если самому собирать. А если покупать готовый, то лучше даже не начинать.
avatar

Им надо делать нормальное апи с прямым подключением к их серверам.

Работать через Квик (по любому протоколу) изначально мертворожденная идея.

avatar
ch5oh, а «им» — это кому?
Если речь о частных роботописателях, то для прямого подключения есть плаза, но там нужен определенный уровень знаний, и такое подключение несет в себе дополнительные ежемесячные затраты.
Для тех, кто не является высококлассным специалистом в области программирования, и не имеет готовых гарантированно прибыльных алгоритмов, способных заведомо отбить затраты на прямое подключение — QUIKSharp очень достойная альтернатива.
avatar

Prophetic, «им» — это Арке.


Плаза стоит 10 тыр/мес и это дорого полюбе. Учитывая, что величина геморроя на самом деле вовсе не обнуляется как можно было бы предположить.

 

Чем сильны Финам, АйтиИнвест, Алор? Тем, что у них разработан свой протокол доступа. Он намного быстрее и стабильней Квик, но при этом все еще бесплатный. Этим полностью закрываются потребности «среднего класса».

avatar
ch5oh, Ну, вот тут-то и проблема. Судя по всему, они по каким-то своим причинам (нам непонятным), считают, что ихний FIX — это то, что всем так сильно не хватало, а следовательно все что нужно, они уже сделали. Я с Вами полностью согласен, нормально апи нужно, но пока его нет я с большим удовольствие использую QUIKSharp. HFT — это не для меня, а для всего остального данного коннектора хватает за глаза.
avatar

Prophetic, Чисто наблюдения из жизни. Плаза — не про ХФТ. Плаза — это просто, чтобы «работало и не отваливалось в самый неподходящий момент». Пожалуйста, пользуйтесь на здоровье Квик. Если Вас все устраивает, кто может возразить? =)

avatar
ch5oh, Я, наверное, не очень корректно выразился. Я не имел в виду  плазу как апи для хфт. Скорее можно сказать так: бесплатной альтернативы квикшарпу я на сегодняшний день не наблюдаю. Или я ошибаюсь?
avatar

Prophetic, зависит от Вашего брокера.

Айти дает SmartCOM.

Финам — Транзак.

Алор — у них тоже есть свой протокол.

 

Скачиваете соответствующую либу для своего брокера и кодите своих роботов на здоровье.


Если Вы берете КвикШарп — Вам все равно придется кодить. Но вопрос в другом. Если кодить самому, то зачем втыкать в середину такую ненадежную и тормозную штуку, как Квик?

 

Если Ваш брокер тупой и отсталый и дает только Квик или Плазу, ну… сочувствую. =)

avatar
ch5oh, Наверное таково стечение обстоятельств.
Начинал торговать через квик. Понял, что руками нереально и надо торговать роботами. Первый опыт — QPILE --> QLua. Дальше уперся в ряд ограничений и жуткие тормоза. у брокера кроме квика и плазы ничего не было. Первые поиски найти что-то бесплатное (или недорогое) и удобоваримое, для написания роботов на C#, ни к чему не привели (C# я тогда только-только начинал изучать). Потом случайно наткнулся на QUIKSharp, вот тогда-то дело и пошло. Потом появился еще один брокер и снова собственного апи у него вроде бы нет.
Да, квик не самая стабильная програмулина, но для моих задач, с приемлемым уровнем рисков, пока хватает. :)
avatar
ch5oh, Можно вопрос дилетанта.
А почему нет возможности к серверу quik подключатся и говорить что я квик?
В принципе это убирает клиент квика.
Ведь клиент квик просто точнотакже оборачивает вызовы как вы вызовык нему.
на клиенте же ничего не происходит, кроме показа, это терминал.
все, все равно, проверяется на сервере.

и обертка в принципе такая-же получается. потому что вызовы луа это обертка над серверным ари.
не думаю что в процессе меняются параметры и имена функций.
avatar
Антон Б, потому что Арка (производитель Квик) не желает предоставлять такую возможность никому. Протокол взаимодействия Сервер <--> Квик закрыт. А за попытку взлома гарантированно прилетит по голове кошельку.
avatar
ch5oh, 

Им надо делать нормальное апи с прямым подключением к их серверам. Работать через Квик (по любому протоколу) изначально мертворожденная идея.


Прямое подключение нужно только, если критична скорость. Если задержка в 0,5-1 сек не важны, то можно работать как угодно, да хоть и через квик, если для роботописателя — это проще в освоении.

avatar
Megasum, это в теории. А на практике вдруг Квик отказывается работать ровно в тот момент, когда Ваш робот на часовиках должен исполнять стоп-лосс или заходить в сделку века.
avatar
Megasum, 
рямое подключение нужно только, если критична скорость
и если надо отвязаьтся от терминала и не влететь на рисках отказа серверов того же квика
avatar
ch5oh, это как VBA в Экселе — да, на R/Python «правильнее» работать с данными, на статических языках быстрее… Но есть целая куча сценариев, когда руками уже не возможно и нужна автоматизация, но даже R/Python перебор, так как данные легко помещаются в Эксель. Так и с Квиком, часто это просто более удобно и не нужно ничего больше, чем базовая автоматизация. Но Луа в Квике еще хуже, чем VBA в Экселе.
avatar
Хочу добавить, что простейших роботов, работающих через QUIK, с использованием данного коннектора, смогут создать даже те, кто только начинает освоение C#. Примеры не сложны в понимании. А разобравшись в том как работает робот из примера — написать своего робота уже не так сложно.
avatar
если кому нужна связка квика с питоном, есть PyQUIK. Обёртка для квиковской TRANS2QUIK.dll

Сам ещё не щупал.

Обещают следующее: 

Быстрое создание и проверка торговых стратегий на языке Python

Встроенный DDE сервер

Асинхронная отправка транзакций trans2quik.dll и отслеживание исполнения

Интерфейс с библиотекой технического анализа ta-lib.org (более 150 функций и индикаторов)

Тестирование стратегий на исторических данных finam

Оптимизация параметров стратегии генетическим алгоритмом

Мониторинг через WEB интерфейс

avatar
Автор, как оно по надежности? может он по месяцу-два, полгода данные сосать? я вот данные из lua в dll пихаю себе, и оно у меня за год глючило только два раза… да и то там не по lua части, а в самом QUIK чето съезжало и он начинал фигню выдавать...

а у вас как?
Бабёр-Енот, 
а у вас как?
они уже около пяти лет делают, перевели в stable. Наверное уже отлично
avatar
Андрей К, 
они уже около пяти лет делают,
Пять лет никто конечно каждый день код не вылизывал, там просто нет столько в принципе, но люди пользуются и стабильно вносили исправления/добавления.
https://github.com/finsight/QUIKSharp/graphs/contributors
avatar

теги блога buybackoff

....все тэги



UPDONW
Новый дизайн