Коллеги, интересует вопрос, сколько стоила бы «заготовка» робота на c#+квик+SQL?
Технические требования :
— получение котировок (тиков) из квика и хранение их некоторое время (15 минут) в памяти (массиве), потом сброс, например, на SQL сервер
— реализация взаимодействия c api квика: выставление, перевыставление, снятие ордеров, стоп-ордеров
— расчет индикаторов по тикам, реализация моего простейшего индикатора как пример
— реализация моего тэйк-профита как пример
— реализация моего стоп-лосса как пример
— реализация моего трейлинга как пример
— возможность отслеживать и торговать произвольное кол-во инструментов произвольным количеством алгоритмов на вход и выход (т.е. количество торговых систем в боте не ограничено, ну или ограничено только скоростью обработки данных и реакции на результат обработки)
Пример
— реализация поддержки сделок инициированных человеком (подхват и ведение)
— отслеживание позиций в разрезе торговых систем (возможно SQL сервер)
— риск-менеджмент простейший, отключить ТС при достижении предельного убытка
— блокирование кросс-сделок
— запись жизненного цикла сделок в СУБД
— блок визуализации статистики торгов и жизненного цикла сделок
пример
Интересно как альтернатива будет ли выигрыш по скорости работы к текущей реализации через СУБД за счет переноса основной логики в оперативную память. Плюс на c# потренироваться. Но с 0 это уж слишком, нужен каркас…
— сейчас у меня каждый лот каждой системы отдельно отслеживается и может иметь свой тэйк, стоп и трэйл, логику на выход. Желательно повторить.
— и входы в определенном диапазоне должны быть размазанными.
https://github.com/StockSharp/StockSharp
У них есть FIX сервер, через него QUIK работает. Изолируй БД, вынеси логику на C#, и задача с 3 лет до полугода сокращается при написании по вечерам.
но думаю, что на смартлабике можно сговориться тыщ на 15 и растянуться месяца на 4-5
Давайте прикинем. Джуниор разработчик на C# на рынке сегодня стоит примерно 45 тысяч рублей в месяц. Предположим даже что джуниор справится с вышеозначенной задачей, хотя мы то прекрасно знаем что не справится. Ну да бог с ним. За 15 тысяч рублей мы можем нанять джуниора на 7 рабочих дней.
Даже не морща особо мозг мы прекрасно понимаем что за 7 дней вышеозначенная задача не решается никак… ну совсем никак… Соответственно либо 15 тысяч рублей пропали, либо нашему джуниору придется работать эээ… несколько больше, чем 7 рабочих дней. Соответственно нанимателю придется заплатить некие дополнительные деньги.
гитхаб https://github.com/AlexWan/OsEngine
* Я не программист, писать программы не умею, с, lua, sql не знаю и никогда на заказ ничего не писал.
Будет выигрыш. Самая затратная процедура — это процедура установки соединения с базой, поэтому ее лучше сделать 1 раз, обращаться к базе только в случае явной необходимости, при этом все обращения организовывать через ранее открытое соединение и переоткрывать только в случае, если оно по каким-либо причинам отвалилось. После открытия соединения скорость на SSD, HDD или Ram-диске уже не имеет значительных отличий по времени (проверял ради интереса, отклонения в сотых долях секунды), но опять же проверял для задач выставления заявок минимум на минутках, если Вам нужно будет торговать на тиках, то уже время доступа будет иметь значение
Ваша задача довольно непростая, как это может показаться на первый взгляд, каждое предложение будет в реальности обозначать приличный объем кода, поэтому и цены такие. Почему бы просто не воспользоваться уже готовыми решения типа ТСЛаб, где 90% из того, что Вам нужно (кроме выгрузки во внешнюю базу, что написать не долго) уже изобретено и работает, и стоит все удовольствие 3500 в мес.
В качестве бесплатного варианта можно рассмотреть OSA, о которой выше упомянули уже, там только C# к сожалению, то есть надо будет начинать разбираться в коде. В ТсЛаб достаточно выучить несколько десятков кубиков и можно делать то же самое.
В общем, выбор есть и писать свое с нуля имхо — не самый лучший вариант. На Ваших скринах кто-то заморочился всем этим делом в MS Access, очередной раз доказывая, что Acs можно использовать не только для для обучения школьников. Интересно, насколько стабильно все это дело работает
Вывод у меня получился такой примерно — ОСА — это еще один терминал, с возможностью алгоритмической торговли, но на мой субъективный взгляд она ничем не отличается от того же скажем Ай-Ти-Инвестовского-Капиталовского SmartCom-а. Там тоже есть терминал и есть коннектор, пишите себе роботов используя коннектор, а терминал будет вам рисовать и визуализировать все это. Зачем еще один визуализатор писать?
1. Сборщик мусора и большое кол-во мелких объектов. Та еще проблема для языков со сборщиком.
2. На си# не получится написать на lua api.
Еще можно писать на Rust.
В лучшем случае, лет через 5 он выгорит и забросит это дело, понимая что 1825 вечеров он потратил на что-то, что не работает и вряд ли в следующие ближайшие 5 лет заработает.