Здравствуйте я хотел бы представить вам обзор сервиса от наших заокеанских коллег. Данный сервис называется
Quantconnect. Он предназначен для аглотрейдеров которые хотят протестировать, оптимизировать и запустить в автоматическую торговлю свой алгоритм.
Quantconnect использует совершенно новый подход при создании программного обеспечения для трейдеров, благодаря данному сервису
алготрейдинг уходит в облака.
Это означает, что вы
больше не столкнётесь с недостатком вычислительных ресурсов при разработке торговой системы. Вы сможете взять столько вычислительной мощности из
облака, сколько вам потребуется! И так, давайте приступим, к рассмотрению основного функционала данного сервиса.
Прежде всего у кода выполняемого на
Quantconnect есть два режима работы, это параллельный и последовательный режим исполнения торговой системы. Давайте рассмотрим их более подробно.
- При работе в параллельном режиме, ваш код работает как будто бы, каждый день для него первый. То есть нет связи между днями, данный режим работы, подойдёт для построения интрадейных высокочастотных стратегий, где используются тиковые или секундные данные. Так как позволяет распараллелить вычисления по многим узлам облака.
- Если же вы хотите построить систему, в которой необходимо переносить данные через ночь, то тогда для вас подойдёт последовательный режим. При использовании данного режима все ранее сохранённые данные остаются в памяти и вы сможете оперировать ими на всём протяжении жизни стратегии. Данный режим подходит для построения стратегий основным таймфреймом которых, является минутки и выше. Но к сожалению, у данного режима есть один большой недостаток, в данном режиме вы существенно проигрываете в скорости расчётов. Так как из-за особенности алгоритма невозможно распараллелить задачу между узлами облака.
Для выбора режима работы, вам достаточно воспользоваться командой SetRunMode.
После того как мы разобрались с основными режимами работы, давайте посмотрим, как можно создать торговую систему.
Для этого перейдём в
File->New->New Algorithm и в открывшемся окне выберем базовый шаблон.
После этого, нам нужно установить
основные параметры стратегии, это делается в методе Initialize().
К основным параметрам стратегии, можно отнести, начальный капитал который задаётся методом SetCash(decimal cash). Начальная и конечная дата для анализа SetStartDate() и SetEndDate(), таймфрейм и саму ценную бумагу.
Логику торговой стратегии следует помещать в методы OnTradeBar(), или OnTick() всё зависит от выбранного вами режима торговой стратегии.
Таким образом, код стратегии, будет выглядеть примерно так.
to be continued.
Зачем отдавать алгоритм сервису, который может его украсть?
1. Речь шла об аренде вычислительных ресурсов, которые обычному пользователю купить дороговато.
Облачные сервисы дают таковую возможность(Xeon Phi и прочее).
2. Современные системы теханализа и моделирования чудесно параллелят расчёты по ядрам. И делают они это уж точно не хуже, чем сервис, появившийся в 2012.
www.multicharts.com/multicharts/tech-specs/
Цитирую для особо ленивых: «MultiCharts is a multi-threaded application. This means that the more CPU cores your computer has, the faster backtesting and optimization in MultiCharts will work. With modern multi-core processors we can now meet traders’ rapidly growing demands for speed and efficiency in trading platforms.»
3. В большинстве случаев не нужен никакой огород из S#.API, потому как системы типа Multicharts, Wealth Lab и прочие уже имеют готовые интерфейсы к западным терминалам и датафидам.
Где написал, там же протестил и запустил в торговлю.
We offer compiled algorithms — upload code with GIT, or compile algorithm locally, and upload DLL.
I would love to work with S#! Perhaps we can collaborate?
Сервис классный. Можно использовать для обкатки первоначальной идей. Если она стоящая, то не факт что выдает хорошие показатели, и ее никто не заметит. Но ее можно будет уже закодить в своем удобном инструменте. Например S#.API =)
We offer compiled algorithms for people worried about intellectual property. We don't want to steal your code and charge a subscription.
I am a quant just like you, who spent a year gathering data, and building a backtester. It was a waste of time that we like to save you in QuantConnect :)
Thanks!
PS: Fixed that bug — thanks for that :)
Possible that proportion effort\income is much higher than in trading.
The Effort-Income depends on the capital you manage — so a larger cash base can make the effort worthwhile.
We built QuantConnect to enable 100x faster iterations, which decreases the time you're working on the design. You can test back-tests on tick/second data (4TB data), which would normally take 12 hours on an i7 intel within 2-3 minutes.