Почти неделю в Москве. Попал сюда в пургу на чёрной машине. Сквозь туман, снег, гололёд и приключения. Как доктор хренпойми каких наук из низкобюджетного фильма, вызванный в пентагон, чтобы спасти вселенную.
Заканчиваю интеграцию робота арбитражника для фьючей на коммодитиз (Москва/Китай) для очень крупной компании экспортёра в РФ.
И вот, значит, вечер. Я и Топ менеджер, только что вернувшийся с выступления Путина. Стоим и смотрим на Москву сверху вниз, из его нескромного офиса.
– ты когда уедешь, может посоветуешь мне программиста на поддержку?
— эээ. Давай лучше я буду поддерживать пока. Посоветовать мне некого.
Большой алготрейдинг — это тебе не питонирование.
Чтобы участвовать в чём-то таком, знания Метатрейдера, ТсЛаб или Питона недостаточно и даже бессмысленно (вредно). Подключая вторую ногу из Китая, пришлось написать 2 тыщи строк кода на С++. Сделать сервер на С++ и связать его с клиентами на СиШарп. Всё это очень сложно и может быть сделано только настоящими программистами. Т.ч. учите СиШарп и то, как делать к OsEngine коннекторы. Иначе в Москва-сити не попасть.
В этой статье поговорим о том, как правильно создавать переменные внутри коннектора. А вернее про то, как это делать не нужно, чтобы не генерировать баги.
Запрет на создание полей и свойств для объектов во время создания объекта.
Рис. 1. Как не надо создавать переменные.
Подобный способ создания класса приведёт к следующим проблемам:
1) В случае перехвата ошибки отладчик не будет указывать на строку проблемы.
2) В случае пошаговой отладки невозможно будет определить быстро, в каком месте какая переменная откуда берётся, и где кроется ошибка.
3) В данном конкретном примере также возникнут проблемы с выбором некоторых перечислений, т.к. вариантов несколько, а использовать адекватно IF с отладкой не выйдет.
Девятого числа, в субботу собирается наше сообщество. Встречаемся в офисе АЛОР. Продолжаем в баре на Шаболовке. Подробности можно прочитать здесь: https://smart-lab.ru/company/os_engine/blog/965467.php
Билеты за 2.5 т.р. закончились в течении суток. Мне жаль, но полноформатную конференцию мне организовывать в данный момент некогда. Не раньше следующего лета. Надеюсь на понимание.
Остались следующие виды билетов:
- 4 благотворительных за 20 т.р. С которых 85% суммы будут переданы в «Динской социально-реабилитационный центр для несовершеннолетних»
— 1 мегаблаготворительный билет за 100 т.р., 97 % от цены которого будут переданы в «Динской социально-реабилитационный центр для несовершеннолетних»
Появилось ещё одно внезапное правило: На входе, придётся подписать договор о неразглашении информации.
Правило это касается в том числе и моей поездки. В теме моего выступления номер два и три. Мне в любом случае придётся этого коснуться, и мне бы не хотелось, чтобы информация о текущем нашем заказчике куда-то попала в паблик.
Сегодня поговорим про месторасположение конечной логики коннектора. То место, где надо написать 98% кода, когда делаешь новый коннектор. Это класс ServerRealization.
Вновь возвращаемся к упрощённой схеме работы с конечной реализацией сервера:
Первое, что надо создать в конструкторе любого коннектора, это IServerRealization. Класс с конечной логикой коннектора:
Сегодня поговорим про разницу между IServer (интерфейс) и AServer (абстрактный класс) внутри Os Engine. Зачем они в проекте и как появились?
Это часть серии постов «Коннекторы к OsEngine», в которой мы с нашими читателями учимся быть не просто алготрейдерами, но и настоящими программистами, а многие из них станут ими, навсегда, изменив свою жизнь к лучшему. Пролетарии СмартЛаба, присоединяйтесь!
Упрощённая схема работы с конечной реализацией сервера из любого робота в OsEngine:
1 IServer.
IServer – интерфейс для доступа к реализациям серверов почти во всём проекте. Нужен для того, чтобы унифицировать методы и свойства, нужные для роботов и OsData.
Вот уже больше квартала наша команды выкладывает здесь бесплатных торговых роботов на различных индикаторах. На сегодняшний момент на СмартЛаб выложено больше 15 индикаторов и около 50 роботов. К следующему лету будет больше 100. В данной статье будет оглавление, чтобы можно было удобно делиться данной информацией.
Также мы проводим тестирование на некотором наборе данных в первом приближении. Представляем Вам формулы и трейдинговые смыслы данных индикаторов.
Данная статья – обновляемый сборник по данной серии статей.
https://smart-lab.ru/company/os_engine/blog/941598.php
https://smart-lab.ru/company/os_engine/blog/943737.php
https://smart-lab.ru/company/os_engine/blog/944342.php
https://smart-lab.ru/company/os_engine/blog/945086.php
https://smart-lab.ru/company/os_engine/blog/946027.php
Сегодня рассмотрим историю появления индикатора Fractal.
Также к данной статье будут прикреплены готовые скрипты роботов на этом индикаторе с возможностью торговать на нашей платформе OsEngine.
1. История появления индикатора Fractal.
2. Как проводятся расчеты индикатора Fractal.
3. Какие сигналы может подавать индикатор Fractal.
4. Роботы для OsEngine на индикаторе Fractal.
4.1. Стратегия на индикаторах Fractal и CCI.
4.2. Стратегия на пробой Fractals с индикатором ATR.
4.3. Стратегия на пробой Fractal, Parabolic и Stochastic Oscillator.
5. Общая таблица результатов тестирования.
Индикатор Fractal был разработан Биллом Вильямсом – американским трейдером и автором книг о торговле на финансовых рынках.
Имя «Fractal» было выбрано Вильямсом из-за взаимосвязи индикатора с математической концепцией фрактала. Фрактал — это структурный элемент, который повторяется в разных масштабах и имеет характерные свойства. Вильямс обратил внимание, что на финансовых рынках существуют аналогичные повторяющиеся структуры, и решил использовать эту идею для создания индикатора.