Блог им. Yako_

Исторические данные американских акций для 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.
  • обсудить на форуме:
  • TSLab
★7
11 комментариев
Спасибо! Отличная работа!
Последнюю операцию по удалению кавычек можно избежать, если установить параметр 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 = "")

avatar
Sergey Pavlov, Благодарю за ценное дополнение.
avatar

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

avatar

ch5oh, дорого. Например, минутки на весь S&P500 стоят $1000 в год.

https://www.quandl.com/data/AS500-S-P-500-One-Minute-Bars/pricing?license=348&plan=710&step=2

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

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

Хотя, наверное, у хфтшников совсем иные взгляды на это дело)
avatar
Я бы отдал предпочтение подневной МТС, тест которой сделан за 20 лет при всех фазах, но всего, скажем, 300 сделок было.
Всячески поддерживаю.
avatar

теги блога Yakov Sokolov

....все тэги



UPDONW
Новый дизайн