Парный трейдинг: описание стратегии на Python

Стратегия парного🎏 трейдинга очень популярна на рынке. Она основана на чистой статистике📊, что делает ее привлекательной для алгоритмической🤖 торговли. Общий смысл сводится к нескольким шагам: найти пару, проверить ее поведение, определить границы входа в позицию и направление (лонг/шорт).

Пары ищут с помощью корреляции, но корреляция в чистом виде может сослужить плохую службу. Спред пар должен быть стационарным и обладать коинтегрированностью. Весь представленный код на Python🐍.

В статье рассмотрены:

  • Введение в корреляцию/коинтеграцию на простом примере.
  • Корреляция без коинтеграции.
  • Коинтеграция без корреляции.

Читать далее «Парный трейдинг: описание стратегии на Python»

EIS (Elder’s Impuse System) с помощью Python и C

EIS — Ипульсная Система Элдера была представлена и объяснена в книгах А. Элдера. Система показывает импульс движения цены и может принимать три цветовых значения:

  • красный — разрешен шорт, запрещен лонг;
  • синий — разрешены оба направления;
  • зеленый — запрещен шорт, разрешен лонг.

Ниже подробные пояснения и примеры кода.

Читать далее «EIS (Elder’s Impuse System) с помощью Python и C»

Собираем Python 3.5 с новым OpenSSL на Ubuntu 12.04

Установка Python 3.5 дело не сложное, да вот установится он на Ubuntu 12.04 скомпилированный на OpenSSL 1.0.1, а для поддержки современных протоколов TLS необходима версия не ниже 1.0.2+.

Проблема: При подключении из Python 3.5 используя TLS, получаем ошибку:
[code]SSLError: [SSL: TLSV1_UNRECOGNIZED_NAME] unknown error (_ssl.c:###)[/code]

Читать далее «Собираем Python 3.5 с новым OpenSSL на Ubuntu 12.04»

Поиск графиков по шаблону через корреляцию

Рассмотрен примитивный метод поиска похожих графиков с помощью корреляции. Все происходит под Linux с помощью Python 3.5. (Windows может добавить геморроя.)

Основная идея: когда нравится движение цены на графике в определенный момент времени, я хочу легко находить похожие движения на рынке на сегодняшний день.

Читать далее «Поиск графиков по шаблону через корреляцию»

Библиотеки для 2D рисования на C/C++

Ниже рассмотрены библиотеки на C/C++, которые могут быть использованы в основе разработки библиотеки для генерации 2D финансовых графиков и индикаторов технического анализа.

Основными требованиями являются:

  • Наличие C/C++ API.
  • Наличие адекватной документации с примерами.
  • Наличие Python-пакета для экспериментов.
  • Относительно высокая скорость работы Python-пакета при рисовании >30000 линий.
  • Правильная работа со шрифтами, поддержка пиксельных шрифтов и возможность отключения сглаживания.

Читать далее «Библиотеки для 2D рисования на C/C++»

Использование Numpy C api в C-расширении для Python

Ниже рассмотрен пример использования Numpy C api при написании расширения для Python на языке C. Расширение будет подключаться с помощью distutils. В примере умножаются поэлементно два массива.

Читать далее «Использование Numpy C api в C-расширении для Python»

Подключение C-кода в Python с помощью Distutils

В предыдущих постах описаны примеры использования С-библиотек в Python с помощью Cython. Там все было здорово, все работало быстро и без проблем. Единственное, в том случае требуется установить Cython и изучить дополнительно его документацию.

Для быстрого достижения цели, Cython прекрасно себя проявил. Но что делать, если хочется вызывать C-код без установки дополнительных пакетов? Для этого есть несколько возможностей и одна из них, использование distutils — стандартная Python-утилита для сборки и установки пакетов.

Читать далее «Подключение C-кода в Python с помощью Distutils»

Конвертируем Hg в Git на Bitbucket

Простая пошаговая инструкция по переносу проекта из Hg-репозитория в Git-репозиторий. Все делается на Bitbucket под Linux Ubuntu. Предварительно настроена ssh-авторизация.

Читать далее «Конвертируем Hg в Git на Bitbucket»

IPython: вызов библиотеки C из Python с помощью Cython

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

Однако в этот раз мне необходимо использовать библиотеку написанную на языке C. А хочу я все это делать в IPython. Конечно, кроме написания C-кода.

Читать далее «IPython: вызов библиотеки C из Python с помощью Cython»