- Алгоритмическая торговля
Алгоритмическая торговля (также называемая автоматической торговлей, торговлей по методу черного ящика или алгоритмической торговлей) использует компьютерную программу, которая следует определенному набору инструкций (алгоритму) для размещения сделки. Теоретически торговля может приносить прибыль со скоростью и частотой, которые невозможны для человека-трейдера.
Определенные наборы инструкций основаны на сроках, цене, количестве или любой математической модели. Помимо возможностей получения прибыли для трейдера, алготрейдинг делает рынки более ликвидными, а торговлю более систематической, исключая влияние человеческих эмоций на торговую деятельность. Python — самый важный язык для алгоритмической торговли
Сначала мы построим индексный фонд S&P 500 с равным весом.
S&P 500 — самый популярный в мире индекс фондового рынка. Крупнейшим фондом, сравниваемым с этим индексом, является SPDR® S&P 500® ETF Trust. Под управлением находятся активы на сумму более 250 миллиардов долларов США.
Импорт библиотек
Первое, что нам нужно сделать, это импортировать библиотеки программного обеспечения с открытым исходным кодом, которые мы будем использовать в этом руководстве.
Импорт нашего списка акций
Следующее, что нам нужно сделать, это импортировать составляющие S&P 500. Эти составляющие меняются со временем, поэтому в идеальном мире вы должны напрямую подключаться к поставщику индекса (Standard & Poor's) и получать их составляющие в реальном времени на регулярной основе. основа.
Получение токена API
Теперь пришло время импортировать наш токен IEX Cloud API. Это поставщик данных, который мы будем использовать в этом проекте. Токены API (и другая конфиденциальная информация) должны храниться в файле `secrets.py`, который не передается в ваш локальный репозиторий Git. В этом курсе мы будем использовать токен API песочницы, а это означает, что данные, которые мы будем использовать, генерируются случайным образом и (что более важно) не требуют затрат.
Делаем наш первый вызов API
Теперь пришло время структурировать наши вызовы API к облаку IEX. Нам нужна следующая информация от API:
- Рыночная капитализация каждой акции
- Цена каждой акции
Разбор нашего вызова API
Вызов API, который мы выполнили в последнем блоке кода, содержит всю информацию, необходимую для построения нашей стратегии S&P 500 с равным весом. С учетом сказанного, данные еще не в правильном формате. Нам нужно сначала разобрать его.
Добавление данных о наших акциях в фрейм данных Pandas
Следующее, что нам нужно сделать, это добавить цену нашей акции и рыночную капитализацию в фрейм данных pandas. Думайте о DataFrame как о версии электронной таблицы Python. Он хранит табличные данные.
Перебор тикеров в нашем списке акций
Используя ту же логику, которую мы изложили выше, мы можем получить данные для всех акций S&P 500 и сохранить их данные в DataFrame, используя цикл for
.
Использование пакетных вызовов API для повышения производительности
Пакетные вызовы API — один из самых простых способов повысить производительность вашего кода. Это связано с тем, что HTTP-запросы обычно являются одним из самых медленных компонентов скрипта. Кроме того, поставщики API часто предоставляют скидки на использование пакетных вызовов API, так как поставщику API проще ответить на них. IEX Cloud ограничивает свои пакетные вызовы API до 100 тикеров на запрос. Тем не менее, это уменьшает количество вызовов API, которые мы будем делать в этом разделе, с 500 до 5 — огромное улучшение! В этом проекте мы разделим наш список акций на группы по 100, а затем выполним пакетный вызов API для каждой группы.
Расчет количества акций для покупки
Как вы можете видеть в DataFrame выше, мы до сих пор не рассчитали количество акций каждой акции для покупки.
Мы сделаем это дальше.
Форматирование нашего вывода Excel
Мы будем использовать библиотеку XlsxWriter для Python для создания красиво отформатированных файлов Excel.
XlsxWriter — отличный пакет с множеством настроек. Однако компромиссом для этого является то, что библиотека может показаться очень сложной для новых пользователей. Соответственно, этот раздел будет довольно длинным, потому что я хочу хорошо объяснить, как работает XlsxWriter.
Создание форматов, которые нам понадобятся для нашего файла .xlsx
Форматы включают цвета, шрифты, а также такие символы, как %
и $
. Нам понадобятся четыре основных формата для нашего документа Excel:
- Строковый формат для тикеров
- Формат $XX.XX для цен на акции
- Формат $XX,XXX для рыночной капитализации
- Целочисленный формат количества акций для покупки
Применение форматов к столбцам нашего файла .xlsx
Мы можем использовать метод set_column
, примененный к объекту writer.sheets['Recommended Trades']
, чтобы применить форматы к определенным столбцам наших электронных таблиц.
Сохранение нашего вывода Excel
Сохранить наш файл Excel очень просто:
В следующий раз мы будем строить количественную импульсную стратегию инвестирования и количественную стратегию инвестирования стоимости.