Добрый день! Мы не случайно решили рассказать о двух продуктах нашей компании, входящих в состав базового софта от S#. Наш выбор был сделан на основе мнений наших пользователей, которым интересно узнать немного подробнее о назначении программ, работе и применении их в торговле. Надо отметить, что S#.Shell и S#.API – комплексное решение для создания торговых роботов на языке C#. Однако, использования этих программ не ограничивается созданием торговых роботов. Итак, для начала разберем, что такое S#.API. Термин API, согласно Википедии, означает: Программный Интерфейс Приложения (API с английского application programming interface) - описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой. Обычно входит в описание какого-либо интернет-протокола, программного каркаса (фреймворка) или стандарта вызовов функций операционной системы. Часто реализуется отдельной программной библиотекой или сервисом операционной системы. Используется программистами при написании всевозможных приложений. S#.API – абсолютно бесплатная библиотека, которая позволяет начинающим и опытным трейдерам, обладающим даже начальными знаниями программирования использовать ее для создания своих собственных торговых систем в области алготрейдинга. Библиотека основана на языке C#, с возможностью использования ее в среде программирования Visual Studio. Библиотека рассчитана на то, что пользователь может создать свои уникальные торговые системы: от позиционных стратегий с длительным таймфреймом до высокочастотных стратегий (HFT), которые используют прямой доступ (DMA) к биржевым торгам. Уникальность данного продукта в том, что на его основе построена работа всех базовых продуктов компании StockSharp, таких как: S#.Designer, S#.Data, а так же адаптер S#.MatLab. trade-terminal-system.png Так например использования элементов библиотеки находит широкое применение применение для создания уникальных кубиков в программе Designer, фактически пользователь берет готовый компонент представленный программным кодом, комбинирует его с другими компонентами или модифицирует его и применяет его в конструкторе торговых роботов Designer, помещая в собственные кубики. source-code-designer.jpg Механизм S#.API основан на использовании сообщений. Данный механизм состоит из трех элементов: - сообщение Message, - адаптер сообщений MessageAdapter - транспортный канал IMessageChannel. Сообщение выполняет роль агента, передающего информацию. Сообщения могут быть исходящими и входящими. - Исходящие сообщения - сообщения, которые посылаются во внешнюю систему. Обычно это команды, которые генерирует программа, например, сообщение ConnectMessage - команда, запрашивающая соединение с сервером. - Входящие сообщения - сообщения поступающие из внешней системы. Это сообщения передающие информацию о рыночных данных, транзакциях, портфелях, событиях соединения и т.п. Shell-Title-frimework-api.png Такой механизм позволяет унифицировать работу по разработке адаптеров, в то же время позволяет пользователю создать свои собственные подключения к различным торговым системам. Давайте рассмотрим основные преимущества применения библиотек S#.API: - Независимость созданного пользователем торгового робота от API используемого брокера или биржи, фактически созданный торговый робот может работать с любым подключением. Так пользователь может легко подключать своего торгового робота например к Quik, Transaq, или FOREX, не меняя программного кода. - Сегодня библиотека S#.API поддерживает более 70 подключений ( Коннекторы (Россия), Коннекторы (Америка), Коннекторы Forex, Коннекторы Криптовалют). - Универсальность библиотеки позволяет использовать ее как частным трейдерам, небольшим командам разработчиков, а так же крупным инвестиционным компаниям и банкам. - Важным показателем является большая производительность, позволяющая одновременно исполнять сотни стратегий по любым инструментам. - Высокая скорость обработки заявок в S#.API позволяет снизить время обработки до нескольких микросекунд. - Библиотека может использовать прямое к торговле, такое как: Plaza II, Micex Bridge, а также поддерживает FIX протокол, что позволяет сокращать время обработки заявок. - Определение реального проскальзывания добивается за счет реалистичного тестирования, которое проводится с применением тиков и стаканов. Это позволяет пользователю снизить до минимума риск возможных потерь и более гибко и точно настроить свою торговую стратегию. - Широкая распространённость языка C#, применимого в создании библиотеки и среды Visual Studio, упрощает работу пользователя, за счет избыточной информации о их возможностях. Для удобства работы S#.API разделена на блоки, что позволяет пользователю без особых усилий найти тот раздел, который его интересует. Простота установки на компьютер, распространённость языка программирования и среды использования делают библиотеку S#.API универсальным способом для разработки торговых роботов. Пользователю достаточно однажды создать торгового робота, которого он может подключать к любой выбранной торговой площадке или брокеру. Так же знание работы с библиотекой позволяет развивать навыки программирования пользователя. Мы рассмотрели основной элемент – библиотеку S#.API, на базе которой строятся все базовые программные продукты StockSharp. Отлично, теперь понятно, что с применением библиотеки S#.API пользователь может создавать своих торговых роботов и применять их в торговле. Однако использования среды разработки Visual Studio, не совсем удобно для работы созданными торговыми системами, не говоря уже о тестировании торговых систем. Для удобства и простоты работы, компания StockSharp разработала готовый графический каркас с возможностью оперативного изменения под нужды пользователя-трейдера, при этом с открытым кодом, созданный на языке C# - S#.Shell. Давайте рассмотрим основные преимущества данного графического каркаса: - Главным преимуществом продукта является открытый исходный код. Что это дает пользователю? gui-shell-source-code.jpg Открытый исходный код программы позволяет пользователю использовать все возможности продукта, дополняя его своими собственными надстройками. Пользователь может настроить свои собственные панели управления, использую уже готовые элементы или создать свои собственные. Простота настройки увеличивает скорость подготовки программы к запуску. Доступность модуляций S#.Shell, позволяет создать пользователю удобную среду пользования, понятную ему. Shell-Title-frimework.png Таким образом, применение открытого исходного кода не просто позволяет пользователю создавать удобный индивидуальный интерфейс, но идеален для создания торговых роботов на заказ, а это расширяет сферу применения знаний пользователя, открывая ресурс для дополнительного заработка. - Следующим неоспоримым преимуществом S#.Shell является поддержка более 70 различных подключений к мировым биржам (Коннекторы (Россия), Коннекторы (Америка), Коннекторы Forex, Коннекторы Криптовалют, Общие). gui-shell-connector-exchange.jpg - S#.Shell позволяет пользователю полностью протестировать свои торговые системы, прежде чем заходить на реальные торги. Удобная статистика, кривые Эквити, и подробнейший отчет о ходе тестирования, позволяют пользователю на стадии разработки и тестирования учесть возможные риски и внести изменяя в код торгового робота. gui-shell-equti-exchange.png - Так же пользователь имеет возможность сохранять резервные копии своих торговых роботов, восстанавливать настройки и сравнивать изменения с первоначальным кодом торгового робота. - Очень важной и удобной функцией S#.Shell является одновременный запуск стратегий. Что это дает? Пользователь теперь не ограничен одной площадкой для работы и так же может применять комплекс из нескольких стратегий, которые могут действовать раздельно друг от друга, или могут быть применены как комплекс из стратегий. Такие комплексы позволяют компенсировать или подстраховывать друг друга, проводить политику хеджирования и арбитража. При этом пользователь получает подробнейшую информацию о ходе торговли, получая информацию об ордерах, сделках, позициях, прибыли, логах и другую информацию, вывод которой он может настроить в программе. Так же пользователь может настроить запуск стратегии по расписанию, установив четкий график работы каждой из запускаемых торговых стратегий. S#.Shell – это удобное и многофункциональное программное решение, настраиваемое под пользователя. Подводя итог можно сказать следующее, что использования комплекса из библиотеки S#.API и оболочки S#.Shell, позволяет пользователю получить полностью настраиваемый под его нужды торговый комплекс. Пользователь получает не просто оболочку для торговли, он получает решение для тестирования, торговли, комплексного взаимодействия своих созданных стратегий с различными рынками одновременно или в отдельности. Удобство использования очевидно, оно не только сокращает время на подготовку и торговлю, но и позволяет пользователю заниматься разработкой решений на продажу, что увеличивает доход. Удобный курс обучения от StockSharp позволяет быстро освоить обе программы, научиться программировать и зарабатывать. Уже включенный в стоимость исходный код S#.Shell и дополнительные торговые системы, сокращают затраты пользователя и дают возможность начать торговать безотлагательно.
Stop-Loss - тип ордера, задача которого установить ограничения на возможные торговые потери. Такой ордер используется в автоматическом режиме с применением автоматизированных систем торговли, о которых мы скажем позже. Суть очень проста, при помощи механизма Stop-Loss, при достижении установленного уровня цены купленного актива (инструмента), происходит закрытие позиции. Фактически Stop-Loss страхует трейдера от незапланированного падения цены. Такой механизм ограничения является широко применяемым для трейдеров. Им пользуются опытные участники финансового рынка, однако, начинающие трейдеры, зачастую пренебрегают данным механизмом, хотя для них Stop-loss является практически главным методом сохранения своих средств, в положительном балансе. stop-loss-order.jpg Stop-loss (Стоп–Лосс), с технической точки зрения – обычный отложенный ордер, который имеет механизм активации при достижении установленного уровня цены актива. Отличие двух типов отложенных ордеров в том, что при использовании обычного отложенного ордера происходит открытие новой сделки, при Стоп–Лоссе – закрытие уже имеющейся. Как было сказано ранее важным плюсом Стоп-Лосса является автоматизированность процесса, что исключает необходимость отслеживать изменения цены и принимать решение вручную. Безусловно, это сокращает потери при торговле, и время, которое являются основополагающим при высокочастотной алгоритмической торговле (HFT). Так, например, в программе для создания торговых роботов Designer, осуществлена возможность использования механизма Stop-Loss, за счет применения кубика защита позиции, который можно настроить и использовать как надежный инструмент снижения потерь. stop-loss-protection.png Применение механизма отложенного ордера Stop-Loss широко применяется с целью снижения издержек торговли, вызванных потерями. Как следствие, это ведет к увеличению прибыли, не только за счет увеличения объема успешных операций, а снижению объема убыточных. Применение этого инструмента в торговых стратегиях находит сегодня все большее применение, так как это снижает потери, увеличивая объем прибыли при неизменном (регулируемом) объеме затрат на сделку. Пример торговой стратегии выполненной в программе Designer. Stop-Loss-trade-strategy.png Итак, основные плюсы, которые присуще отложенному ордеру Stop-Loss: - Применение с торговых стратегиях отложенного ордера Stop-Loss позволяет ограничить убытки на одной сделки, путем установки уровня убытка, который закладывается самим трейдером, что делает торговую стратегию более гибкой, менее рисковой. - Применение данного отложенного ордера застраховывает трейдера от непредсказуемой ситуации на рынке, при которой может произойти обвал стоимости актива, тем самым предохраняет пользователя торговой стратегии от потери капитала. - Регулирование возможных потерь так же благоприятно сказывается на состоянии эмоциональном состоянии трейдера, сохраняя его нервы и психологическое здоровье. Причин на рынке, которые могут вызвать убыток достаточно много, и периодичность их возникновения непредсказуема. Но, применение Стоп-Лосса позволяет обезопасить себя, сделать торговлю удобнее, ограничить риск, максимизировать прибыль, сократить время на работу с торговой стратегией, снизить риск эмоциональному здоровью. Важным моментом для работы с отложенным ордером Stop-Loss является расчет верного уровня ордера. При установке ордера необходимо знать следующее: - Прежде всего, заявка по Stop-Loss – условная заявка, исполняющаяся при достижении установленного уровня цены. - Заявка состоит из двух частей: заявка и условие ее выполнения (условия, редактируемые трейдером, и при установке нового условия, старые условия аннулируются). - Заявка, находится на сервере брокера, через которого идет торговля, а отправляется только по достижению необходимого условия. Рассмотрим наиболее известные методы работы со Стоп-Лоссом: - Фиксированный Stop-Loss: Трейдер устанавливает в настройках инструмента значение равное количеству пунктов от первоначальный цены актива, что бы ордер открылся. - Гибкий Stop-Loss: Более гибкий способ, берущий за основу при установке значения цены открытия результат анализа рынка (минимума и максимума цен на актив за период, графики изменения цены и другие инструменты анализа). Является более сложным, но более надежным способ, нежели чем предыдущий. - Безубыточная торговля: Достаточно сложный способ, направленный на динамическое изменение установленного уровня Stop-Loss, выносом установленного значения из области просадки в область гарантированной прибыли в тот момент, когда цена уже сильно изменилась в установленном направлении. - Трейлинг стоп: Более усовершенствованный способ предыдущего метода, который подразумевает автоматические средства переноса уровня Stop-Loss. - Тренд: Данному методу мы посвятим отдельную статью и разберем его позже. Добавим еще несколько слов и расскажем о Take Profit. Take Profit – буквально с английского «Взять Прибыль». Так же как и Stop-Loss, Take Profit – это отложенный ордер, направленный на фиксирование прибыли. При достижении цены актива установленной трейдером цены, ордер исполняется, и закрывая позицию трейдер получает прибыль. Уровень исполнения Take Profit устанавливается самим трейдером, и как в случае с Stop-Loss, зачастую используется с применением автоматизированных систем торговли, торговых роботов и торговых систем. Этот вид ордера - лимитный, выполняется только тогда, когда цена актива достигает установленного уровня. Существует два типа «входа в позицию» - начало торговых операций: - Длинная позиция (лонг, long, buy) - заявка на покупку; - Короткая позиция (шорт, short, sell) - заявка на продажу. Если мы начинаем торговлю с покупки, то уровень исполнения ордера Take Profit выставляем выше цены покупки актива. take-profit-buy-order.jpg Если мы начинаем торговлю с продажи, то уровень исполнения ордера Take Profit выставляем ниже цены продажи актива. take-profit-sell-order.jpg В заключении стоит сказать о соотношении рассмотренных ордеров. Использование обоих ордеров, ведет к снижению риска убытка и повышает прибыль. Применение обоих этих ордеров в каждой из торговых ситуаций сугубо индивидуально, нельзя сказать однозначно, что наиболее применимо, что наименее. Уровень использования отложенных ордеров определяет трейдер, применительно к каждой ситуации и торговой стратегии отдельно. Однако, совокупность приемов с применяем отложенных ордеров и торговых роботов, дает возможность облегчить работу трейдера, дает возможность сконцентрироваться на анализе, сокращая время на отслеживание ситуации на биржевом рынке.