Решил написать серию постов о том, как освоить Си Шарп и как начать писать роботов на Си Шарп. С какой стороны подходить. Что это даст. Проспект по написанию роботов на C# от специалиста. Полезно это будет в первую очередь начинающим программистам и всем тем, кто хочет перейти из ручной торговли в алго. Т.е. почти всем.
Несколько лет занимаюсь разработкой торговых роботов, для себя и на заказ. Пишу в основном на своей библиотеке. Само собой в ней я пишу роботов на Си Шарп. Иногда пишу на СтокШарп, если просят. Подключал: Квик, Транзак, СмартКом, Плазу. Весной 2015 клиент попросил перенести стратегии из ВелсЛаба. И его освоил.
В общем. Серия статей будет интересная.
Поехали!
Первая статья о том, какой язык программирования выбрать и чем они отличаются. Слегка переработанная и дополненная моя же статья написанная год назад. В ней мы поговорим о том, почему предпочтительнее писать роботов на Си шарп.
Классная ворованная у Яндекс говорящая картинка.
Итак, сначала о том, какие true языки программирования применяются для создания роботов, в порядке убывания популярности:
Начну с конца:
Delphi, он же Objective Pascal
попытка угнаться за мощностью подходов к программированию С++, обеспечив при этом более высокую отказоустойчивость и читаемость. Изначально разрабатывался специально как вводный язык для начинающих программистов. Поэтому был одним из самых простых в освоении и популярным до появления C#. Которым ныне почти совсем вытеснен из ниши простых и мощных. Самый редкий выбор для программиста МТС.
VBA - встроенный язык офисных приложений от Microsoft. Простой в освоении. Медленный и печальный. Выбор VBA обусловлен возможностью стандартного вывода данных о торгах из Quik в Excel, который в свою очередь и поддерживает этот самый язык. Такое положение вещей вызывает у начинающего алготрейдера уверенность в том, что дописав пару скриптов в Excel он получит готового робота. Возможно, так и есть, но здесь надо знать о том что "Чудо" на VBA не напишешь. Ну и скорости данной технологии поражают воображение (в плохом смысле). Свежих бенчмарков гугл не предоставил, но вот википедия подтверждает: http://ru.wikipedia.org/wiki/Visual_Basic
C++
быстрый и сложный.
Язык не является лидером по популярности среди алготрейдеров, потому как сложен при освоении и является избыточным для программирования МТС.
Несмотря на то, что он действительно быстрее своих конкурентов, необходимо понимать, что основные задержки доступа к торгам появляются на стороне брокера и интернет провайдера, не зависимо от того какой язык использовать.
С каждым годом С++ теряет своё преимущество в скорости перед C#. Это связано с агрессивным развитием платформы .net, которая год от года становиться быстрее.
Программирование на С++ входит в обязательную дисциплину HFT арбитражеров \ фронтраннеров. Ну и размещая МТС на сервере биржи, рассчитывая потягаться с условным Фишманом (собирательный образ злого HFT алготрейдера) необходимо задуматься над тем, что неплохо бы было иметь соответствующее ПО.
Но опять же, ходят слухи) что для многих стратегий внутри минуты скорость не является главным фактором прибыли. Надо ещё ВНЕЗАПНО! знать в какую сторону пойдёт рынок.
Роботы на С#
структурированный и упрошённый наследник С++.
Пишут роботов на C# повсеместно. Это самый распространённый язык для программирования торговых роботов и программного обеспечения для трейдинга в России.
Вот некоторые причины его популярности:
Некоторые причины его ненавидеть:
В этой статье мы с Вами рассмотрели true языки программирования и выделили плюсы и минусы каждого.
Ещё раз отмечу, что писать можно на чём угодно. Если вы писали на VBA, или Delphi - надо писать на этих языках. Но если стоит задача войти в алготрейдинг по взрослому с нуля - надо однозначно учить Си Шарп.
Си Шарп - явный лидер по плюсам для написания роботов, с какой стороны не посмотри.
Торговые роботы на СиШарп - это хорошо!
Удачных алгоритмов!
P.S.
Обсуждаем в телеграмме: https://t.me/o_s_a_chat
Канал проекта: https://t.me/bad_quant
7 комментариев
Платформа новая, только недавно разобрался как уведомления о комментариях получать.
Ответ:
Не помню. Писал статью давно sib-algo.ru/must-read/язык-программирования-алготрейдера.html.
Для полноты картины действительно надо обязательно добавить про Java. Записал себе.
Понятное дело сейчас бы я пожесче написал.
Ну нету торговых платформ на Питоне популярных. Только С++ и C#. Всё остальное можно сказать игрушки.
Роботы — очень ресурсоёмкие и архитектурно-сложные штуки.
Кроссплатформенность здесь не может быть в принципе. Только в узкой какой-то теме. Ибо в большинстве своём именно коннекторы заточены только под Windows. У нас сейчас 14 штук, и из них на Linux не запуститься и половина.
Вторая часть: o-s-a.net/posts/25-si-sharp-algo-chast2-karta-znanii.html
Третья часть: o-s-a.net/posts/32-si-sharp-algo-chast-3-samoe-glavnoe-o-programmistah.html
Четвертая часть: o-s-a.net/posts/47-si-sharp-algo-chast-4-interfeisy-sozdanija-robotov.html