Рубрики
Без рубрики

Алгоритмическая торговля: задним тестированием вашего алгоритма

Как я писал в своей предыдущей статье, алгоритмическая торговля: алгоритмы, чтобы превзойти рынок, если вы int … Tagged с помощью алготрада, инвестиций, автоматизации, Python.

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

Что такое бэк -тест?

Блюд, тестирование торгового алгоритма означает запуск алгоритма против исторических данных и изучить его эффективность.

От Investopedia :

Например, я собираюсь поделиться некоторыми строками кода о том, как загрузить минутные данные с 2016 года.

Далее мы сделаем простой настраиваемый бэк -тестовый сценарий.

Откройте учетную запись Alpaca

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

Затем войдите в свою учетную запись Alpaca и найдите или генерируйте свои клавиши API.

Мне нравится создавать файл, чтобы сохранить эту информацию.

Поэтому создайте файл alpaca_conf_paper.py, чтобы сохранить наши клавиши API API Alpaca для бумажной учетной записи.

Установка зависимости от питона

Давайте установим Python SDK и другие зависимости Alpaca:

  • Alpaca-Trade-API-это Alpaca Python SDK

  • TQDM – очень хорошая библиотека, которая покажет планку прогресса.

  • Панды Отличная библиотека, обеспечивающая высокопроизводительные, простые в использовании структуры данных, и инструменты анализа данных для Python

В вашей консоли беги:

pip3 install alpaca-trade-api tqdm pandas

Загрузка данных

Скачать данные очень легко с Alpaca.

Допустим, мы хотим данные в течение дня, сгруппированные на минуты. Мы можем сделать это с очень простым сценарием. Я пытался сделать это очень явным.

Создайте файл с именем download_data.py и вставьте этот код:

Если вы запустите код как есть, запуск Python3 Download_data.py будет загружать Minite Data OHLC для AAPL для всех 252 торговых дней 2016 года на ваш ../historical-market-data/ каталог, в CSV формат.

Похоже, в моей консоли WSL (Linux):

$ ls ../historical-market-data/*AAPL*2016*
AAPL-2016-01-04.csv  AAPL-2016-02-12.csv  AAPL-2016-03-24.csv  ...

$ ls ../historical-market-data/*AAPL*2016* | wc
    252     252    5040

Наш первый сценарий бэк -тестирования

Чтобы подчеркнуть алгоритм, нам сначала нужно иметь алгоритм. Поскольку у нас еще нет того, мы просто собираемся принять стратегию «покупать и удерживать».

Давайте начнем с того, что увидим, насколько хорошо стратегия Buy & Hold искала AAPL в 2016 году: покупка первый день года и продажа в последний день.

Чтобы проверить стратегию «покупать и удерживать», нам необходимо рассчитать соотношение последней цены года (когда мы продали бы) и первую цену года (когда мы купили).

То есть,

profit_pc = price_last_day)/price_first_day

Ниже приведен сценарий, который делает именно это.

Если вы хотите запустить его, создайте файл с именем Backtest_buy_and_hold.py С этим контентом:

Если мы запустим сценарий, мы получим:

$ python3 backtest-buy-and-hold.py
AAPL's 2016's Buy-n-Hold strategy return profit is: 1.099

Это означает, что в течение 2016 года AAPL выросла на 9,9%. Это проверяет :

AAPL вырос на 9,9% в течение 2016 года

Так здорово! Мы сделали наш первый сценарий бэк -тестирования для тривиальной стратегии.

Более причудливые стратегии

Как упоминалось в моей предыдущей статье, есть много стратегий:

  • Покупать и держать
  • Значит возвращение
  • Скальпинг
  • Исчезающий
  • Ежедневные опорные
  • Импульс
  • Многие, многие другие

В Моя следующая статья Я выложу какой -нибудь код, который использует все, что мы создали здесь, и расширим скрипт бэкеста, чтобы проверить простой алгоритм скальпинга.

Увидимся в следующий раз!

Оригинал: “https://dev.to/michrodz/algo-trading-backtesting-your-algorithm-5ad8”