Простой бот для IB

В этот раз напишем на Python простого бота для торговли через платформу Interactive Brokers TWS. Торговать будем внутри дня на американском фондовом рынке акциями и ETF. Наш код сможет работать в среде Jupyter Notebook вместе с пакетом IB.API. Для примера, реализуем стратегию на основе пересечений SMA (простых скользящих средних).

Стратегия очень проста. Используем комбинацию скользящих средних (SMA) разных периодов. Например, 26-периодной (длинная) и 9-периодной (короткая). Когда короткая средняя выше длинной, это показатель восходящего тренда. Если короткая средняя пересекает длинную сверху вниз, считаем это сигналом на продажу и наоборот, если короткая пересекает длинную снизу вверх, сигнал на покупку. На основании пересечений алгоритм будет давать сигнал терминалу TWS от Interactive Brokers на покупку или продажу актива.

Читать далее «Простой бот для IB»

Установим и запустим бэктестеры для криптовалюты

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

Итак, место встречи: VirtualBox.
Действующие лица: отважный трейдер, свежеустановленный и обновленный дистрибутив Lubuntu (минимальная установка), “афтор”.
Боевая задача: установить и проверить работу двух бэктестеров: cryptocurrency.backtester и catalyst.
В этот раз меньше слов и больше дела. Поехали!

Читать далее «Установим и запустим бэктестеры для криптовалюты»

Собираем 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»

HTTP/2 + ALPN + NGINX на Ubuntu Server 12 и 14

Получить последнюю версию Nginx легко, все есть в официальном репозитории на Nginx. Но получить ALPN, который необходим для работы HTTP/2 на Chrome сложнее, так как на официальном сайте Nginx собран с OpenSSL 1.0.1, а для ALPN необходима версия OpenSSL не ниже 1.0.2.

Читать далее «HTTP/2 + ALPN + NGINX на Ubuntu Server 12 и 14»

Установка последней версии или обновление Nginx на Ubuntu

Ни во всех дистрибутивах Linux есть доступ к последней версии сервера Nginx. К счастью, на сайте Nginx есть репозитории для большинства дистрибутивов с подробной инструкцией.

Ниже пример обновления Nginx на Ubuntu.

Читать далее «Установка последней версии или обновление Nginx на Ubuntu»

Как и в чем изучать C/C++

C — язык программирования, отличающийся высокой скоростью разработки и производительности. Язык компилируемый и для работы на разных архитектурах требует наличия необходимого компилятора.

C++ — расширение языка C вносящее возможности объектно-ориентированного программирования, стандартные библиотеки и дополнительные улучшения. Упрощает разработку и предоставляет готовый, оптимизированный дополнительный функционал (STL).

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

Читать далее «Как и в чем изучать C/C++»

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

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

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

Установка TA-Lib и пример использования C api

TA-Lib — библиотека с открытым кодом в которой реализовано более 200 индикаторов технического анализа. Наиболее известные: RSI, MACD, ADX, Stochastic, Bollinger Bands и др.

Библиотека разработана на чистом C. TA-Lib может быть скомпилирована под разные системы и может использоваться из разных языков программирования, например: C/C++, Java, Perl, Python, PHP и др.

Внутри пример ее установки на Linux и использования из C.

Читать далее «Установка TA-Lib и пример использования C api»

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

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

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