Начало работы с Python для автоматической торговли
Автоматическая торговля - это терминология, используемая для торговых входов и выходов, которые обрабатываются и выполняются с помощью компьютера. У автоматической торговли есть определенные преимущества:
- Минимизирует вмешательство человека: автоматические торговые системы устраняют эмоции во время торговли. Трейдерам обычно легче придерживаться стратегии, сдерживая эмоции.
- Тестирование на исторических данных: тестирование на истории позволяет трейдеру использовать свои стратегии на исторических данных (данные за предыдущую неделю / месяц / год). Это помогает им понять последствия своей стратегии для данных в реальном времени и помогает им определить вероятность выигрыша или проигрыша сделки.
- Сохранение дисциплины на нестабильном рынке: когда рынок нестабилен, трейдеры нарушают правила торговли. Это приводит к недисциплинированности на рынке. Дисциплина теряется, когда трейдер уступает человеческим эмоциям жадности или страха. Таких параметров можно избежать с помощью автоматической торговли. Автоматическая торговля помогает поддерживать последовательность, гарантируя, что выполнение стратегии следует правилам.
- Повышает скорость ввода ордеров: поскольку компьютеры мгновенно реагируют на изменяющиеся рыночные условия, автоматизированные системы могут выдавать ордера сразу после выполнения торговых требований.
Python приобрел популярность в области количественного финансирования благодаря своей способности с легкостью создавать сложные статистические модели. Это связано с такими научными библиотеками, как Pandas, NumPy, Matplotlib, PyAlgoTrade, Pybacktest и другими.
Компоненты, необходимые для автоматической торговли
- Anaconda: Первый шаг в настройке Python - это загрузка Anaconda. Anaconda - надежный дистрибутив Python, он состоит из всех инструментов и библиотек, необходимых для выполнения кода Python.
- Spyder IDE: IDE означает интегрированная среда разработки. Он предоставляет интерфейс для написания, отладки, компиляции и выполнения кода Python.
- Блокнот Jupyter: Блокнот Jupyter - это интерактивная платформа, используемая для понимания фрагментов кода. Jupyter Notebook в основном использует ячейки «уценки» для объяснения кода и ячейки «кода» для выполнения кода. Это очень полезно для учащихся, которые пытаются понять работу фрагментов кода.
Примечание. Spyder IDE используется для запуска и выполнения больших проектов, тогда как Jupyter Notebook используется для выполнения небольших фрагментов кода.
Понимание популярных пакетов / библиотек на Python в отношении количественной торговли
Python имеет большую коллекцию библиотек, которые можно использовать для различных функций, таких как программирование, машинное обучение, визуализация и т. Д. Однако, прежде чем фактически приступить к работе с Python, мы поговорим о наиболее важных библиотеках, необходимых для написания торговых стратегий.
Нам потребуется импортировать финансовые данные, провести численную оценку, построить торговые стратегии, построить графики и выполнить тестирование данных на исторических данных. Необходимые библиотеки перечислены ниже:
- NumPy: NumPy, сокращенный для NumericalPy, используется для численного анализа данных.
- Pandas: Pandas широко используется при работе с данными в табличном формате (то есть строками и столбцами), такими как электронные таблицы. Его можно использовать для импорта файлов Excel и CSV в код Python.
- Matplotlib: эта библиотека содержит функции, используемые для построения 2D-графиков.
- TA-Lib: TA-Lib широко используется для выполнения технического анализа таких данных, как полосы Боллинджера, RSI (индикатор относительной силы), VWAP (средневзвешенное значение объема), MA (скользящее среднее).
- Zipline: управляемая событиями система, поддерживающая тестирование на истории и торговлю в реальном времени.
Это несколько основных концепций, которые вам необходимо понять, прежде чем начинать работу над построением собственной стратегии на Python.
Рекомендации:
- https://numpy.org/
- https://matplotlib.org/
- https://pandas.pydata.org/
- https://www.zipline.io/
- https://github.com/mrjbq7/ta-lib