Апрель 29th, 2014

Язык программирования для алготрейдера

, Must-read, by Алексей Ван.

 

 Языки

Рис. 1 Классная ворованная у Яндекс картинка, после изучения которой можно дальше не читать

    Как программисту, начавшего с C# и использующего его в своих проектах, мне довольно просто набросать список преимуществ этого языка перед остальными. Однако многие из этих преимуществ являются спорными и не один год вызывают холивар среди программистов. Поэтому призываю не воспринимать всё как чистую монету. Читайте, учитесь, составляйте своё мнение. А вот моё:

Итак, сначала о том, какие true языки программирования применяются для создания роботов, в порядке увеличения популярности:

  • Delphi;
  • VBA;
  • C++;
  • C#.

 

Delphi, он же Objective Pascal   язык, попытка угнаться за мощностью подходов к программированию С++, обеспечив при этом более высокую отказоустойчивость и читаемость. Изначально разрабатывался специально как вводный язык для начинающих программистов. Поэтому был одним из самых простых в освоении и популярным до появления C#. Которым ныне почти совсем вытеснен из ниши простых и мощных. Самый редкий выбор для программиста МТС.

VBA   встроенный язык офисных приложений от Microsoft. Простой в освоении. Медленный и печальный. Выбор VBA обусловлен возможностью стандартного вывода данных о торгах из Quik в Excel, который в свою очередь и поддерживает этот самый язык. Такое положение вещей вызывает у начинающего алготрейдера уверенность в том, что дописав пару скриптов в Excel он получит готового робота. Возможно, так и есть, но здесь надо знать о том что «Чудо» на VBA не напишешь. Ну и скорости данной технологии поражают воображение (в плохом смысле). Свежих бенчмарков гугл не предоставил, но вот википедия подтверждает: http://ru.wikipedia.org/wiki/Visual_Basic

    C++   быстрый и сложный.

Язык не является лидером по популярности среди алготрейдеров, потому как сложен при освоении и является избыточным для программирования МТС.

Несмотря на то, что он действительно быстрее своих конкурентов, необходимо понимать, что основные задержки доступа к торгам появляются на стороне брокера и интернет провайдера, не зависимо от того какой язык использовать. Поэтому прирост производительности в 10 — 30 % разменянный на 500 — 1000 часов дополнительно времени на обучение не всегда оправдан.

С каждым годом С++ теряет своё преимущество в скорости перед C#. Это связано с агрессивным развитием платформы  .net, которая год от года становиться быстрее.

Программирование на С++ входит в обязательную дисциплину HFT арбитражеров \ фронтраннеров. Ну и размещая МТС на сервере биржи, рассчитывая потягаться с условным Фишманом (собирательный образ злого HFT алготрейдера) необходимо задуматься над тем, что неплохо бы было иметь соответствующее ПО.

Но опять же, ходят слухи) что для многих стратегий внутри минуты скорость не является главным фактором прибыли. Надо ещё ВНЕЗАПНО! знать в какую сторону пойдёт рынок.

 

С#  структурированный и упрошённый наследник С++.

Самый распространённый язык для программирования торговых роботов и программного обеспечения для трейдинга в России.

Вот некоторые причины его популярности:

  1. Низкий порог входа. Незамысловатая ООП архитектура и пакет «all inclusive» поставляемый вместе с VS;
  2. Абсолютное спокойствие Microsoft по поводу пиратов и соответственно мгновенное появление Visual Studio Ultimate (это такая программа для создания других программ) на файлообменниках в годном виде и самой последней версии.
  3. Наличие хорошей учебной литературы по теме и отличной поддержкой со стороны интернет сообщества. Тут вообще интересная штука. Пока учился в институте не раз замечал что по C# любую информацию найти гораздо проще чем по С++, хотя первый появился много позже;
  4. Наличие библиотек для трейдинга на C#. Сток Шарп например.

Некоторые причины его ненавидеть:

  1. .net. Т.е. пожизненная привязка к Windows со всеми вытекающими.
  2. Платность. Хотя в России это не актуально, думается, что вероятность прекращения ада в этой стране не равна нулю и быть может выучив сейчас С# через пять лет придётся платить деньги, за то чтобы на нём писать.

 

Back Top

Comments are closed.