Финансовая Лаборатория
1.24K subscribers
47 photos
11 videos
2 files
233 links
Личные финансы, инвестиции, трейдинг
Download Telegram
Очень скоро будем работать со стандартными отклонениями в BackTrader. Поэтому, выделил код расчета кол-ва стандартных отклонений в отдельный индикатор. Формулу решил расписать построчно, чтобы всем было понятно, что откуда берется. Раз уж "топлю" за функциональное программирование, то сделал код красиво через numpy.

Обновленный код приложил к курсу "Адаптивная скользящая средняя DSMA и адаптивные осцилляторы", которой с начала этого года можно приобрести здесь >>>
Над этим курсом я работал почти 15 лет. В 2008 году я решил перевести всю свою биржевую торговлю в русло алго и автотрейдинга. Тогда же начал делиться своими идеями в ЖЖ. Один из первых комментариев был такой: Было бы классно, если все индикаторы привести к единому виду. Тогда их можно интерпретировать по единым нехитрым правилам движения. Что приводит к унификации не только торговых техник, но и самих торговых систем.

Как это сделать? Скользящие средние строятся на графике цен. Осцилляторы RSI и Stochastic нормированы в своих шкалах от 0 до 100. Моментумы и ATR, вообще, не имеют ограничений. Как все это многообразие унифицировать? Как правильно выбрать шкалу? Мне никогда не нравились "залипания" осцилляторов. Нужно ли ставить ограничения? Что, если индикатор переходит это ограничение?

Чтобы решить задачу, нужно выйти за пределы задачи. В данном случае выйти за пределы классического Технического Анализа. Когда я смоделировал рынок как розовый шум, то сразу понял, в какую сторону нужно идти. Путь был долог и труден. Я его прошел, и хочу с вами поделиться полученными знаниями, практиками и опытом в курсе "Система Игоря Чечета: Унификация индикаторов".

Курс самодостаточен. В нем я выдам вам всю необходимую теорию. Разберем все типы классических индикаторов. Будет много практики. Мы напишем код унифицированного индикатора "с нуля". Продвигаться будем шаг за шагом. Конечно, все шаги подробно разберем. В итоге, получим код унифицированного индикатора, в котором будут и моментумы, и осцилляторы, и тренды.

На основе показанных в курсе примеров вы сможете "разложить" не только любой классический индикатор, но и любой авторский индикатор от Ларри Коннорса, Джона Элерса, Игоря Чечета и др. трейдеров.

Первые 5 занятий курса ждут вас здесь >>>
image_2023-01-28_21-28-02.png
94.5 KB
Как же я сразу не догадался! "Склейка" нужна не только для фьючерсов, но и для любого тикера. Берем его историю, сохраняем в файл. Затем делаем "склейку" из этого файла и последней истории из QUIK/Alor. Истории могут пересекаться.

Так мы и запросы к QUIK/Alor сократим, и гарантированно будем запускать ТС с одной и той же даты.
Отвечу здесь на вопрос склейки фьючерсов. С т.з. BackTrader можно склеивать любые данные. Более того, можно написать обработчик склейки. Если интересно, то об этом есть в документации здесь >>>

Я задал вопрос в техподдержку Алор о том, как получить историю уже экспирированных фьючерсов, чтобы склеить их красиво через BackTrader. Пришел ответ, что у них в базе хранятся только те фьючерсы, что сейчас торгуются. Остальные удаляются.

Как можно решить вопрос. Выкачивать текущий фьючерс, сохранять его в файл (пример 04 - Bars.py из AlorPy). Как только он закончится, то брать его уже из файла истории, и делать склейку со следующим фьючерсом.
Строили мы, строили, и, наконец, построили! (Чебурашка).

Только что написал последние строки кода коннектора Alor к BackTrader. Проведу тесты, и скоро выложу новый проект на GitHub. Как обычно, полный исходный код с примерами и комментариями.

Бонусом получилось работать одновременно со всеми счетами Алора. Пришлось повозиться, но, думаю, это стоило некоторых усилий.
На этой неделе здесь будет много новостей. Просьба не злиться, все материалы очень важны для тех, кто серьезно занимается алго и авто торговлей.

Начну с того, что библиотека-обертка для Алора на Python доработана под последнюю спецификацию Alor OpenAPI и новый коннектор BackTraderAlor. Исходный код с подробными комментариями и примерами смотрите здесь >>>
В библиотеке-обертке для QUIK на Python пока немного изменений. При работе с потоками функция threading.currentThread() в будущих версиях Python использоваться не будет. Вместо нее нужно использовать threading.current_thread(). На текущий момент это не так критично. Просто не хочу, чтобы в один прекрасный момент при обновлении Python мы получили бы ошибку. Новая версия ждет вас здесь >>>

Забегу чуть вперед и скажу, что придумал как работать не только со всеми счетами, которые вам открыл брокер (покажу на примере Алора), но и со всеми брокерами, с которыми вы торгуете. Когда этим займусь, тогда QuikPy ждут большие изменения. В том числе появится конфигурационный файл по примеру AlorPy.
Изначально сценарий Rollover планировал для склейки фьючерсов в единую историю. Потом обнаружил, что после экспирации фьючерса, брокеры просто удаляют его историю из своих баз. Поэтому, особо не использовал функции склейки в BackTrader. Пока один из участников «Финансовой Лаборатории» не задал мне простой вопрос.

Суть вопроса сводилась к тому, что уже есть сформированная история в файле и базе данных. Почему бы из коннекторов к брокерам не брать только последние оперативные данные? Далее просто их объединять с историей. Действительно, склейка идеально ложится в этот сценарий.

Смотрите новые видео про склейку в Квике и Алоре здесь >>>
Опубликовал новую версию BackTraderQuik. Унифицировал код, сделал несколько оптимизаций, решил мелкие ошибки. Исходный код, описание и примеры ждут вас здесь >>>

Выкладываю долгожданный Провайдер для автоторговли в BackTrader из Alor Open API здесь >>> Пока гоняем его в тестовом режиме на демо, или минимальными лотами на реале, чтобы оперативно выявить и исправить возможные ошибки.

Над чем буду работать дальше:
1. Сделать обертку для поддержки множества брокеров
2. Сделать пример постановки заявок по разным портфелям
3. Когда получаем свободные средства/баланс, и еще не находимся в режиме Live, то не делать запросы на сервер. Все равно, не узнаем, сколько денег было год назад
4. Для Квика сделать пример постановки заявок по разным портфелям как в Алор
5. Для Квика выдавать баланс по тикерам (datas) как в Алор

Честно, сильно устал на этом проекте. Иду отдыхать. Под сегодняшними постами поставьте лайки, если они вам понравились и пришлись по душЕ.
В чате трейдеров ФинЛаба в последние 2 недели было не скучно. Идеи, тесты, разбор ошибок, доработки... На сегодняшний день все изменения сделаны.

Финальная версия доступа к Алору из Python >>>
Финальная версия коннектора Алора к BackTrader >>>

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

Берите и используйте! Открыт весь исходный код. К каждой строке комментарий на человеческом языке. Множество примеров.

Хочу поблагодарить 2-х Олегов и Надежду за проведение независимых тестов системы!
Так получилось, что у других брокеров тоже есть интерфейс взаимодействия как у Алора. Какого брокера делаем следующего для автоторговли через BackTrader?
Anonymous Poll
43%
Финам
60%
Тинькофф
Внимание! В последней версии 3.7.0 библиотеки matplotlib возникает ошибка при построении графиков. Пока решение такое. При установке matplotlib ставьте принудительно предыдущую версию 3.6.2:

pip install matplotlib==3.6.2
Закрываю Мечел. +26.4% с декабря. Неплохо...
Закрываю Сегежу. +18.39% с декабря
Для тех, кто еще не до конца разобрался как работает автоторговля, новый пост здесь >>>
Представляю вашему вниманию курс "Лаборатория Монте-Карло". В нем мы с вами с нуля создадим и реализуем алгоритм оценки сделок торговых систем.

Для чего это нам нужно? Чтобы оценить, насколько в торговой системе мы увлеклись подгонкой под историю цен.

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

Понятно, что для данных показателей одних сделок торговой системы нам будет недостаточно. Мы с вами вместе создадим альтернативные реальности торговых систем, которых, конечно, не было. Но которые позволят нам посмотреть на торговую систему как с воодушевляющим оптимизмом, так и с упадническим пессимизмом. Что из этого перевесит? Мы слишком увлеклись оптимизацией? Можно ли добавить дополнительное условие? Насколько надежна торговая система?

Ответы на все эти вопросы вы найдете в курсе "Лаборатория Монте-Карло". Первые 2 урока открыл вам здесь >>>

Я увидел, что вам больше нравится когда мы с вами начинаем с чистого листа, а затем, шаг за шагом, идем к цели. Поэтому, практически в каждом занятии мы будем обсуждать алгоритмы, и сразу их реализовывать в коде на Python. Будет даже небольшое исследование. В результате мы напишем полноценный анализатор с построением графиков для BackTrader. Кстати, советую пересмотреть видео по построению базового анализатора здесь >>> Очень пригодится при прохождении курса.
Что-то заработался в последнее время.. Что имеем на сегодняшний день:

1. Финам. Скоро выдадут новую версию API с подпиской. Тогда закончу клиента и интегрирую его с BT. Версию клиента "на посмотреть" выложил здесь: https://github.com/cia76/FinamPy

2. Тинькофф. Клиент у них уже есть, делать не нужно. Протестировал подписки. Пока не удовлетворен результатом. Отписался разработчикам.

3. Алор. Все работает, но хочу внедрить работу на множестве счетов. Например, на торговом счете и ИИС одновременно. Предупреждаю заранее, что будет обновление, которое не будет совместимо с текущей версией. Сейчас мы передаем 1 счет, а будем передавать 1 или несколько.

4. Мультиброкер. Как сделаю работу со множеством счетов на Алоре и Квике, то сделаю обертку, которая будет работать как брокер в BT, но на самом деле, в нее можно вложить все брокеры, которые пожелаете.
Сегодня с утра на сайте появилась возможность для тех, кто приобретал курсы, и входил через учетную запись, привязать учетную запись Telegram, и удобно входить в один клик. Я придумал как упростить процесс связывания учетных записей сервера и Telegram. Изменил инструкцию. Выложил ее здесь >>>

Вроде, все описал компактно, доходчиво и с картинками. Будем развивать интеграцию с Telegram дальше.
Обычно, при анонсе нового курса, я выкладываю его описание, чтобы все заинтересованные трейдеры имели возможность в него вписаться. В этот раз новый курс называется BackTrader: Мультиброкер. А вот анонса его не будет. Лучше сразу покажу через чат-бота, что вы получите в результате. Я же говорил, что будем развивать интеграцию с Telegram!

Для иллюстрации возможностей чат-бота я сделал мультиброкера по 4-м счетам 3-х брокеров.

Вот чат-бот Мультиброкер

Курс готов, приступаю к его записи. Скидки здесь тоже не будет. Получите ее у бота. Как выложу весь курс, купон на скидку отзову.
Кстати, как вам позиция в чат-боте Мультиброкера по Сбербанку? 😊