C/C++ и Python = Boost.Python на Windows

Для многих не секрет, что Python🐍 не блещет скоростью обработки большого количества данных. При этом обладает преимуществом легкого подключения расширений на C/C++. Я писал о расширениях C в этой статье, а здесь рассмотрен альтернативный способ с помощью популярной С++ библиотеки Boost.

Рассказывает Роман Щеголихин. А расширение будет подключаться к Python 2.7🐍.

Читать далее «C/C++ и Python = Boost.Python на Windows»

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

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

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

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

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

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

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

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

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

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

Библиотеки для 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»

Установка 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»

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

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

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

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

Cython и C++ в IPython

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

Читать далее «Cython и C++ в IPython»

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

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

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

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