С Международным женским днем!
1 0
3 138 посетителей

Блог пользователя algolaba

Алготрейдинг

Алгоритмическая торговля на финансовых рынках
1 – 2 из 21
algolaba 14.04.2013, 14:19

Создание торговых роботов. QPILE / WealthLab / TSLab / StockSharp

Причины, по которым чаще всего трейдер задумываться о создании торговых роботов следующие:

  • Желание ускорить и улучшить качество исполнения сигналов торговой стратегии
  • Получить больше свободного времени на другие занятия не связанные с «рутинным» отслеживанием возникающих сигналов в реальном времени.

Идея и её тестирование

В основе каждого торгового робота лежит некая идея, на базе которой и происходит совершение сделок. Идеи в свою очередь могут базироваться на совершенно разнообразных принципах: от пересечения двух скользящих средних до смены лунных циклов и т.п. Главное, чтобы идея была «рабочая». А вот понять это помогает тестирование стратегии на исторических данных. Тестирование на истории представляет собой «прогонку» сигналов стратегии в ретроспективе, т.е. каждая удачная и неудачная сделка на заданном временном интервале заносится в статистику, которая становится доступной пользователю для анализа. На базе этой статистики вы можете сделать вывод о перспективности той или иной идеи. Соответственно, если на истории стратегия показала отрицательный результат – создание торгового робота на ее основе не имеет абсолютно никакого смысла, и наоборот.

Для тестирования на истории трейдеры пользуются специальными программами: Wealth-Lab, TSLab, Multicharts, Metastock и др. Некоторые трейдеры для проверки простых вещей пользуются Microsoft Excel. Только после исторических «стресс-тестов» имеет смысл начинать создание торгового робота. Далее мы предлагаем обзор самых распространенных вариантов автоматизации торговой стратегии, которые в настоящий момент наиболее часто встречаются на российском фондовом рынке.

Создание торговых роботов для Quik.

Самая распространенная система для интернет-трейдинга в России позволяет создавать торговых роботов в собственной среде с помощью встроенного скриптового языка qpile, а в версиях QUIK старше 6.4.0 , появилась возможность использования языка QLua. Данный вариант является бесплатным и относительно простым, но обладает рядом недостатков. Описание встроеных языков QUIK для создания торговых роботов, интересная и обширная тема, её не поместить в один абзац. Более подробно мы раскрыли эту тему в статье «Торговые роботы для QUIK. QPILE и QLua».

Связка: Quik + коннектор + Amibroker/ Wealth-lab/ Multicharts/ Metastock.

В данном случае для создания торгового робота используется сразу три программы. Начинается все в платформе для технического анализа (Amibroker/Wealth-lab/MC/Metastock), где происходит первичная генерация сигнала на открытие позиции. Затем, с помощью программы-коннектора сигналы считываются и передаются непосредственно в терминал Quik, в котором и происходит окончательное исполнение сгенерированных заявок.

Преимуществом данного варианта является то, что протестированную стратегию можно сразу запустить в реальную торговлю. Кроме того пользователь может выбрать наиболее близкий ему язык для написания робота. Например, в платформу Multicharts интегрирован один из самых простейших и функциональных «трейдинговых» языков Power language, с которым будет просто разобраться. А Wealth-lab дает возможность собирать алгоритм из набора встроенных торговых правил, что позволяет создавать торгового робота без знания какого-либо из языков программирования. Недостатком данной «связки» является низкая отказоустойчивость – сбой хотя бы в одном элементе цепочки приведет к поломке всего торгового робота. Еще одним недостатком является финансовая составляющая: к примеру, лицензионная версия Wealth-lab обойдется пользователю в $800, а цена программы-коннектора варируется в зависимости от автора от нескольких тысяч рублей до нескольких сотен долларов.

TSLab.

В TSLab имеются хорошие возможности как для тестирования алгоритма, так и для его запуска в реальную торговлю. Разработчиками реализован простой и интуитивно понятный визуальный конструктор торговых роботов, где можно за короткое время своими силами собрать из отдельных блоков вашу стратегию. Для более продвинутых пользователей реализована возможность программирования роботов на универсальном языке C# через TSLab API.

В настоящий момент у пользователей существует возможность запускать роботов напрямую через TSLab, обслуживаясь у брокеров: Финам, Алор, АйТи Инвест, Риком Траст. А также у любого другого брокера, если работать в связке с системой Quik. Разработчики платформы очень внимательно относятся к пользователям, обеспечивая хорошую техническую поддержку своего продукта, а также постоянно повышая его функциональность. В качестве платформы для исторического тестирования TSLab распространяется бесплатно, что является существенным плюсом платформы. Стоимость подключения к серверу брокера для реальной торговли составит от 850 до 3600 рублей в месяц (в зависимости от брокера и типа подключения).

StockSharp.

Проект «Стокшарп» создавался профессиональными программистами для профессионалов и представляет собой библиотеку для создания торговых роботов на языке C#. Робот на базе библиотеки StockSharp способен работать практически с любым российским терминалом для интернет-трейдинга, также есть возможность реализовать подключение и к западным площадкам. В отличие от TSLab данный вариант автоматизации позволяет создавать более сложные стратегии (в том числе HFT-алгоритмы), а также осуществлять тестирование на тиковых и «стаканных» данных. С другой стороны он менее лоялен к непрофессиональным пользователям без навыков программирования. StockStock - условно бесплатный проект для физических лиц, т.е. распространяется и используется свободно, но в случае возникновения каких-то проблем, вероятно, придется воспользоваться услугами платной технической поддержки. Для юридических лиц стоимость годовой лицензии составляет порядка 100 т.р. В целом, вариант создания торговых роботов с помощью StockSharp придется по вкусу профессиональным программистам для реализации технически сложных решений.

Итог

В статье обозначены далеко не все возможные варианты создания торговых роботов, но именно они являются наиболее распространенными среди отечественных трейдеров. Как видно, в настоящее время создание торговых роботов – процесс далеко уже не такой сложный как раньше. Сейчас он доступен каждому пользователю, даже без наличия специализированных навыков программирования. Тем не менее, для создания более сложных алгоритмов, вероятно, потребуются определенные знания в программировании, либо, как вариант, можно будет воспользоваться услугой "торговые роботы на заказ".

0 0
Оставить комментарий
algolaba 02.03.2013, 20:03

Как повысить эффективность алготрейдинга

Как повысить эффективность алготрейдинга или размещение свободных остатков в безрисковых активах.

В сети доступно достаточно много полезных информационных статей из области управления рисками, мани-менеджмента, эффективного управления капиталом, построения торговых систем и т.п. Однако, вопросам эффективного использования рабочего капитала (особенно когда дело касается размещения свободных остатков) внимание фактически не уделяется. Хотя именно отдел управления ликвидностью и свободными денежными остатками (в миру называемый казначейством) является ключевым звеном во всех банковских и финансовых организациях. Даже известная всем объединенная «Московская биржа» более половины своей прибыли зарабатывает за счет депонирования свободных средств клиентов, и лишь порядка 40% - за счет «комиссионных» со сделок. Таким образом, при правильном подходе любой биржевой трейдер способен повысить «отдачу» от своего рабочего капитала, не неся при этом никаких дополнительных расходов и неудобств. Ключевым моментом в данном случае является используемая торговая площадка. Важно понимать, что для эффективного управления свободными остатками необходимым условием является наличие этих самым остатков. Например, в случае торговли акциями в фондовой секции ММВБ - невозможно купить ценных бумаг на 1 млн. рублей, имея на счете меньшую сумму («плечо» в расчет не берем, т.к. за него брокер берет дополнительную плату), если же проводить сделки в срочной секции биржи, то для покупки фьючерсов на те же ценные бумаги на сумму 1 млн. рублей по факту будет достаточно всего 100 000 рублей (что составляет величину т.н. «гарантийного обеспечения»), а 900 000 рублей будут для нас теми самыми свободными остатками, которые можно прибыльно разместить в безрисковых активах.

Для частного трейдера сейчас доступны два основных вида безрисковых инструментов: внебиржевой - банковский депозит и биржевой - облигации. С нюансами вложения денег на банковский депозит знаком, пожалуй, каждый. Напомним лишь основные моменты: суммы до 700 000 рублей застрахованы государством, НДФЛ с процентного дохода не выплачивается, максимальные ставки банк предлагает по срочным вкладам длиной от 1 года (при досрочном снятии денег практически весь доход теряется). С облигациями ситуация интереснее: более широкий набор эмитентов и предлагаемых доходностей (от государственных бумаг до ООО «Рога и Копыта»), а также больше возможностей для маневра, что называется «в процессе». При этом государство никак не страхует вложения в облигации от неисполнения эмитентом своих обязательств, кроме того НДФЛ с прибыли в обязательном порядке будет удержан брокером. Облигации будут оптимальным выбором для человека с крупным инвестиционным счетом (несколько млн. долларов), которому непосредственно интересны все происходящие на долговом рынке процессы. При правильном подходе и определенном уровне удачи облигационный портфель способен в разы обгонять доходность среднестатистического банковского депозита. Если же трейдер обладает не очень крупным счетом (несколько млн. рублей) и его интересует только конечная цифра доходности без всяких «неожиданностей» в процессе - идеальным вариантом будет банковский депозит. Также многое зависит и от текущей рыночной конъюнктуры: процентные ставки, также как и цены на облигации, имеют свойство динамически изменяться во времени.

Для полного понимания всей пользы эффективного управления свободными остатками рассмотрим практический пример. Перенесемся в начало 2012 года. Вводные данные - на счете 1 млн. рублей, и существует огромное желание выгодно его инвестировать. В качестве инструмента будем использовать одну из наших стратегий - робот «Ficus» (хотя данная методика вполне подойдет и для любого другого формализованного и оттестированного алгоритма). Теперь произведем простой расчет объема позиций исходя из принимаемого инвестором уровня риска и максимальной исторической просадки алгоритма. Максимальная историческая просадка наблюдалась в конце 2009 года и составляла - 23 535 пунктов на 1 контракт (в рублях около 14 000 рублей). Но с учетом того, что просадка имеет свойство обновляться со временем даже у устойчивых алгоритмов высокого качества, задел по просадке будем использовать в полтора раза выше тестовой, т.е. 14 000 * 1,5 = 21 000 рублей. Теперь устанавливаем лимит возможных потерь от первоначального счета в 1 млн. рублей - он составит 20% или 200 000 рублей. Терять больше этой суммы мы не готовым, даже при самом неблагоприятном раскладе. Далее исходя из общего лимита потерь и максимальной просадки нашего алгоритма рассчитываем рабочий объем: 200 000 / 21 000 = 9,52. Округляем до целого: 9 контрактов. Таким образом, с высокой долей вероятности нам удалось выяснить, что торгую по выбранному алгоритму 9 контрактов фьючерса на индекс РТС, просадка не превысит 20% (200 000 рублей) от начального уровня. Следующим шагом станет расчет величины эффективного рабочего капитала исходя из уровня гарантийного обеспечения (ГО) фьючерса на индекс РТС. Соответственно, все что останется за пределами этой величины и будет являться «свободными остатками». В среднем ГО составляет 11 000 рублей на контракт, а значит для торговли нашим объемом в 9 контрактов вполне достаточно резерва в 99 000 рублей (округлим до 100 000 рублей). Прибавляя к найденной величине задел на возможную просадку (200 000 рублей), получим итоговую величину эффективного рабочего капитала в 300 000 рублей. Этой суммы будет вполне достаточно, чтобы без проблем торговать 9 контрактов по заданному алгоритму и выдержать просадку в 1.5 раза превышающую максимальную историческую. Оставшиеся от первоначальной суммы 700 000 рублей и будут являться свободными остатками, которые можно разместить в безрисковые инструменты. В качестве подобного инструмента выберем банковский депозит (тем более сумма как раз «вписывается» в страховку государства) под 10% на 12 месяцев с ежемесячной выплатой процентов. На рисунке видна динамика доходности в двух случаях: простая торговля по алгоритму и торговля по алгоритму + размещение остатков на депозите.

По итогам года разница в доходностях составила 7% (253 969 рублей или 25,4% против 323 969 рублей или 32,4%), а фактическая просадка в течение года снизилась с 4,36% до 3,19%. Согласитесь, неплохая премия, особенно учитывая тот факт, что каких-либо дополнительных трудозатрат прилагать для этого не пришлось. Аналогичные вычисления можно провести для любого алгоритма, зная максимальную историческую просадку стратегии и фактический лимит средств, который вы готовы потерять в случае неблагоприятного расклада.

0 0
Оставить комментарий
1 – 2 из 21