Yakov Sokolov
Yakov Sokolov личный блог
28 декабря 2017, 05:25

Исторические данные американских акций для TSLab

Вот и я поддался искушению сделать что-то для людей и решил поделиться своей поделкой по подготовке исторических данных для написания и тестирования алгоритмов торговли в программе TSLab.
Сразу скажу, что программист из меня никакой, так как только пару дней изучаю язык R. Поэтому всё сделано «в лоб» путём гугления необходимых функций. 

Итак, поехали.
Для начала, нам нужен источник данных. Я для себя выбрал Quandl. Во-первых, потому что он бесплатный (правда ограниченное количество тикеров и только дневные данные, интрадей за деньги), а во-вторых, и что самое главное, он выдаёт скорректированные цены не только закрытия, как это делает Yahoo, а ещё и открытия, максимума и минимума, что очень важно для написания и тестирования роботов.

Поэтому, первым делом, идём на сайт и регистрируемся. Получаем в личном кабинете ключ, который нам понадобится позже.
Выглядит это так:

Исторические данные американских акций для TSLab

Далее нужно скачать и установить RStudio: ссылка
Исторические данные американских акций для TSLab

Процесс установки стандартный, останавливаться на нём не буду.

Открываем в RStudio готовый скрипт: скачать.


Что нужно поменять в скрипте

1. В строке 8 вставить свой API внутрь кавычек:
Исторические данные американских акций для TSLab



2. В строке 12 тикер акции, данные которой вы хотите заиметь. В примере WIKI/T, где WIKI — это название бесплатной базы в Quandl, а T — тикер AT&T. 
Также в этой строке меняется начальная дата, то есть до какой глубины будут качаться данные. Формат даты тут «YYYY-MM-DD».

data <- Quandl('WIKI/T', type = "xts", start_date="1997-01-01")
3. В строке 16 также надо поменять тикер внутри кавычек.

data[, 1] <- "T"

4. В строке 56 указывается путь, по которому нужно сохранить CSV. Укажите свой путь и название файла.

write.table(tslab_txt, file="D:/QuandlDataSets/t.csv", sep=",", quote=F, row.names=F)
Всё, теперь надо выделить весь скрипт (CTRL + A) и нажать кнопку Run:
Исторические данные американских акций для TSLab

По указанному пути появится файл, в примере t.csv. Убедитесь в наличии указанных папок, иначе скрипт выдаст ошибку.

Вот и всё. 
Описывать то, как подгрузить файл с данными в TSLab не буду, если кто-то не знает — гугл в помощь.

P.S. Буду признателен, если кто-то из старших товарищей программистов поделится отзывами на доступные ресурсы (курсы, блоги, статьи) по изучению языка R для финансов.

UPD: Исправил скрипт, чтобы не удалять кавычки в редакторе. Спасибо, Sergey Pavlov.
11 Комментариев
  • Sergey Pavlov
    28 декабря 2017, 08:03
    Спасибо! Отличная работа!
    Последнюю операцию по удалению кавычек можно избежать, если установить параметр quote=F. По умолчанию он трушный:

    write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
    eol = "\n", na = «NA», dec = ".", row.names = TRUE,
    col.names = TRUE, qmethod = c(«escape», «double»),
    fileEncoding = "")

  • ch5oh
    28 декабря 2017, 20:38

    Дневные данные, к сожалению, малополезны. А сколько на Quandl стоит платная подписка?

      • ch5oh
        29 декабря 2017, 18:05
        Yakov Sokolov, жирновато. Можно найти значительно более гуманный ценник.
    • Sergey Pavlov
      29 декабря 2017, 07:04
      ch5oh, почему малополезны дневные данные?
      • ch5oh
        29 декабря 2017, 18:07
        Sergey Pavlov, а что с ними делать? Торговать стратегию buy-and-pray? Войти по цене открытия на практике невозможно. Держать позы сколько? Неделю-две? А сколько сделок будет в год?
        • Sergey Pavlov
          30 декабря 2017, 05:21
          ch5oh, интересная точка зрения… а что принципиально меняется (с точностью до квадратного корня из времени и волатильности), когда мы на часовики переходим или на минутки? Там разве не нужно молиться, но в тот же корень меньше раз?
          • ch5oh
            30 декабря 2017, 05:31
            Sergey Pavlov, если мало сделок в год — у теста на истории нет статистической достоверности. Следовательно, торговать такую МТС нельзя.

            Иными словами, при уменьшении числа сделок в 2 раза нужно молиться не в 4 раза лучше, а раз в 8. Точный показатель степени не измерял, но идея, надеюсь, понятна. ;-)
            • Sergey Pavlov
              30 декабря 2017, 05:47
              ch5oh, полагаю, что кол-во сделок в трейдинге для стат достоверности не значимо. Значение имеет качественный охват этими сделками разных состояний рынка. Какой прок от 10000 сделок, говорящих о качестве системы на бычьей фазе рынка длиной пару лет? Я бы отдал предпочтение подневной МТС, тест которой сделан за 20 лет при всех фазах, но всего, скажем, 300 сделок было.

              Хотя, наверное, у хфтшников совсем иные взгляды на это дело)

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн