Постов с тегом "Python": 221

Python


О вероятностях и Байесе.

    • 19 декабря 2019, 17:39
    • |
    • 3Qu
  • Еще
На днях был пост Оксана Разяпова  "Про вероятности". В нем предполагалось что рыночные ситуации разруливаются теоремой Байеса.
Был также ответ А.Г. -«Интересно, как Вы Баейса посчитаете, если не знаете точные значения вероятностей из Ваших же формул.» 
Ну, во первых, большинство ситуаций при анализе рыночных рядов Байесом никак не «разруливаются» — все вероятности на уровне 0.5.
И во вторых. Тем не менее при анализе ВР Байес неплохо работает при проверке статистических гипотез. Однако такие гипотезы должны быть изначально, и далеко не факт, что каждая из них при проверке даст что-либо отличное от 0.5. Но, если гипотеза окажется верной, то значения вероятностей 0.6-0.7 вполне достижимы, что вполне достаточно для практических целей. Если повезет с гипотезой, то на ней можно и реальную ТС построить.
Ну, а параметры есть откуда брать. Считается Байес в Python — пакет scikit-learn, например. И в этом пакете не только Байес, но и много других методов.
Как просто и быстро связаться с Python, и как проверяются стат гипотезы я вкратце писал в своих предыдущих топиках.



Маркет тайминг - зло.

   Я сделал попытку проанализировать, насколько удачный вход или выход из позиции может влиять на доходность. Я взял индекс РТС с 2013 года и посчитал, как изменится доход инвестора, если 1) пропустить 5 самых прибыльных дней в году, 2) пропустить 5 самых провальных дней в году, 3) ничего не делать.

   10 из 250 торговых дней всего лишь 4%. Можно предположить что результат изменится больше чем на 4%, но в реальности все гораздо радикальнее.

   Ниже графики за каждый год и кумулятивный график за 2013-2019 (на момент 17 декабря).
Маркет тайминг - зло.
Маркет тайминг - зло.
Маркет тайминг - зло.
Маркет тайминг - зло.
Маркет тайминг - зло.

Маркет тайминг - зло.
Маркет тайминг - зло.
Маркет тайминг - зло.
   За 7 лет вы либо заработали >400%, либо потеряли 80% портфеля.

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





Коммуникации Quik Lua с внешним миром.

    • 14 декабря 2019, 20:42
    • |
    • 3Qu
  • Еще

Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.

Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Машинное обучение — будущее всего алготрейдинга?

Всего лишь неделю нужно для того, чтобы каждый из вас смог сам научиться программировать сверточные нейронные сети, которые торгуют не хуже этой*:
Машинное обучение — будущее всего алготрейдинга?

Основное отличие машинного обучения от традиционного программирования состоит в том, что в задачах классического программирования вы знаете некие правила и жестко программируете их в поведении программы; в задачах машинного обучения вы не знаете по каким конкретно правилам должна работать программа и позволяете моделям машинного обучения самим найти их. Если вы хотите создать торгового робота, обычно, вы сами ищете некоторые правила (например, пересечение скользяшек, MACD>80 при убывающей луне — покупаю 2 лота) и жестко задаете такое поведения в роботе, тестируете и, возможно, оптимизируете некоторые параметры, но почему бы не поручить само придумывание правил машине? Методы машинного обучения, в теории, могут сами выбрать индикаторы, разработать правила входа, выхода и оптимальный размер позиций. Да чего уж… они могут сами придумать индикаторы, паттерны, которые могут быть гораздо лучше чем то, что придумали до этого люди. Ведь так и случилось в сфере обработки изображений, нейронные сети научились выделять значимые признаки из изображений гораздо лучше, чем алгоритмы, придуманные людьми. Компьютер обыгрывает людей в шахматы — игру, знания для которой люди накапливали ни одну сотню лет. Станет ли алготрейдинг следующей сферой, где будет господствовать нейронные сети или какой другой метод машинного обучения?



( Читать дальше )

Python фреймворк для алготрейдинга (VNPY)

Перевел тут (в автоматическом режиме) питонячий китайский фреймворк для алготрейдинга.

Python фреймворк для алготрейдинга (VNPY)

Что он может:

1) Тестить и пускать в лайв страты (а-ля plug and play)
2) Есть коннекторы к крипте, каким-то китайским брокерам, IB, Alpaca
3) UI на pyQT5
4) Качать/хранить котировки

в общем все что надо для базового (и не только) алготрейдинга. все это бесплатно и под MIT лицензией

Перевод пока так себе, но лучше чем китайский оригинал. Теперь хоть что-то можно понять в интерфейсе.  Запустил пару предустановленных страт, загрузил данные, написал простенькую стратегию — все работает, багов не нашел пока. Постепенно улучшаю перевод в ручном режиме.

vnpy — лучшее из python open source для трейдинга что я видел. Понятная и логичная структура, ожидаемая архитектура, хорошо написанный UI. Часть логики коннекторов написана на C++ (поэтому гитхаб и говорит что оно С++, но это не так)



( Читать дальше )

Алготрейдинг на стероидах

Алготрейдинг на стероидах



Когда выкатил библиотечку по поиску уровней многие писали, что она на питоне и по сути бесполезна, ведь терминалы поддерживают в основном C# и Java. Что ж, я решил подкинуть идею, как все это заставить работать вместе. Запушил пример склейки питона с Multicharts.Net и TSLab. Работает все просто и красиво и легко можно посадить любой терминал и фреймворк на стероиды ML и стат моделей.  По аналогии можно приклеить любой терминал/язык с минимальным количеством кода. Суть проста: на питоне поднимаем http сервер и слушаем данные, с терминала данные пушим и читаем что насчитал питон. 

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

Юзайте короче

Телеграмчик где ничего не продаю, не рекламирую и пишу когда мне не лень.

IBridgePy для алго в Interactive Brokers кто-нибудь использовал?

Набрёл на вот такую платформу, которая типа обещает отсутствие плясок с бубнами при подключении к шлюзу IB.

www.ibridgepy.com/

Как бы ставишь и кодишь прям на Pyhon свои алго. Сейчас есть необходимость переноса на Python нескольких стратегий. Кто-нибудь сталкивался / пользовался этой софтиной для одновременно торговли большого количества тикеров 800-1000 одновременно? Какие подводные камни?

♛ БЬЕМ ДОХОДНОСТЬ SP500 еще раз

 

Есть у индексов ценных бумаг всех стран одна замечательная особенность, они имеют сезонные циклы.

Цикл роста на выходе из сезона отпусков (октябрь — рождество), цикл роста на выходе из холодов (конец зимы— лето). Цикл падения в пост рождественский месяц (январь) и цикл падения на сезоне отпусков (май — сентябрь).

Вот вам визуализация средней динамики: SP500(США), FTSE(Англия), CAC40(Франция), Nikkei225(Япония):

♛ БЬЕМ ДОХОДНОСТЬ SP500 еще раз

( Читать дальше )

....все тэги
UPDONW
Новый дизайн