Блог им. ilyaalex

История развития языка R

Продолжаю проект по популяризации языка R. Сегодня познакомимся с его историей. И заодно поймем, как так вышло, что он стал САМЫМ популярным языком алготрейдеров/квантов на западе.

История развития языка R

Как появился

Итак, жили-были красноглазые программисты, и спать не могли т.к. мысли роились в их огромных головах. Много чего они думали: о языках программирования, играх, операционных системах, биг-датах и конечно же больших и упругих сиськах.

Таким образом, в середине 80ых годов появился язык S. Да-да. Язык S(не R). Кто и зачем его так назвал, оставим за скобками. Язык S был быстр, красив и работал с бигДатой весьма хорошо. Но была и проблема. Язык S — был ПЛАТНЫМ (тьфу!).

Долго такой беспредел продолжаться не мог, и уже в 1993 году, появился Бесплатный аналог S — язык R.

Язык R вобрал в себя самое лучшее от своего платного собрата, и начал своё победное шествие по планете!

Как развивался

Идея бесплатного языка для статистиков, пришлась по нраву как статистикам, так и другим категориям нуждающихся. И уже очень скоро после создания, к сообществу развивающему этот язык подключились тысячи программистов и десятки компаний. Этот язык стал очень и очень популярен! Количество пакетов, расширений и методов для обработки данных — зашкаливает.

Долго ли, коротко ли. Но на сегодняшний день R широко используется как статистическое программное обеспечение для анализа данных и фактически стал стандартом для статистических программ[0]

В январе 2015 года[1], MICROSOFT выкупила компанию Revolution Analytics, специалистов по языку R. И уже в в январе 2016 года, объявили[2] о скором появлении языка R в Visual Studio! Программисты оценят эту новость. Мы же отметим лишь, что за будущее этого языка волноваться не приходиться. Теперь этот язык в надёжных руках и будет популярен ещё не одно десятилетие!

Почему трейдинг?

Почему язык R стал так популярен среди алготрейдеров в западных странах?

Ответы, по степени важности:

  • 1.Потому что язык R создан для задач поиска иголок в стогах сена. Это именно то ради чего его начинали писать. Поэтому задачи анализа рынка и поиска закономерностей решаются в нём очень просто.
  • 2.Потому что люди там привыкли использовать самое лучшее и не идут в принципиальных вещах на компромиссы.
  • 3.Бесплатный. Это очень Важно. Используя его, вы не нарушаете ни чьих прав. Для СНГ это не столь очевидный плюс, но всё же.

Потому что R — крутой!

История развития языка R

В заключении хотелось бы пожелать трейдерам России и СНГ не идти на компромиссы. Исследовать рынок по взрослому! И использовать при этом специально разработанные для этого инструменты!

Ссылки:

★23
39 комментариев
А есть коннекторы к биржам или клиентским торговым терминалам?
avatar
Dordje, для каких целей?
полноценного торгуемого робота на нем не построить, хотя можно,
а для небольшой задержки, можно делать экспорт по DDE например в Excel, сохранять как файлы или в БД и читать их, или же читать сделки с партнеров mfd, finam.
avatar
Dordje, Он для обработки данных, а не торговли. заливайте в него любые свои данные и работайте с ними. экспорт из терминала — импорт в R руками проще сделать.
avatar

Алексей, всегда ржу с таких языков, инфраструктура не отстроена, создать ничего нельзя (робота, сервер, приложение), даже побаловаться нельзя, даже нет нормальной среды разработки, ограничения жёсткие на использование памяти, потоковой обработки данных не предусмотренно, всё нужно сразу загружать в память — а это значит что любой более менее нормальный анализ сделать просто не возможно. 

Кто не умеет программировать есть матлаб. 
Сейчас есть scala, спарк, даже после java 9 в котором есть repl и своя оболочка, просто смешно смотреть что всё ещё остаются люди которым не жалко тратить своё время на то что в эту ерунду играться, чтоб в итоге выкинуть весь код в мусорку, тк его всё равно никуда применить нельзя. 
И чтоб добиться чего-то нужно будет переписывать на нормальных языках, где сейчас всё тоже самое реализовывать уже проще и выше качеством — за счёт наличия взрослых библиотек (типа spark), за счёт полноценных сред разработки, средств анализа кода, средств профилирования, за счёт того что можно где угодно и под что угодно этот код применять, что вывести на веб сервер, что использовать для робота, что просто делать полноценный анализ.

Повелся на ваши зазывания, скачал R, попробовал тики за день нарисовать... Не знаю как там с биг датой, а отрисовка/перерисовка тиков на графике тормозит шо ппц… занимает несколько секунд, вплоть до десяти. У меня в Delphi например на каком-т старом компоненте для рисования графики это все происходит почти мгновенно!!

Бектест какой-то стратегии в R по пересечениям индюков на дневках SNP500 тоже занимает несколько минут…  

чёта в общем я не понял…
Бабёр-Енот, а откудова тиковую историю брали? Что-то странно, на R вроде должно летать все, пожно и gpu задействовать. Но я пока сам в нем мало шарю, но тема интересная.
avatar
Максим Дмитриевский, качали с финама вестимо…
Бабёр-Енот, блин, народ вы чего, реально анализ данных и их использование отличить не можете. Есть туча данных 2 строчками кода проанализировал — посмотрел результат, понравилось закодил в свой продукт, нет анализируем по новой.
Грубо говоря R для поиска стратегии, а не для торговли.

avatar
Алексей, сейчас для всех языков есть готовые решения для анализа данных. 
какой смысл просто обьясни, если темиже 2мя строчками это делается в любом нормальном языке программирования?
с производительностью на 2-3 порядка выше. 
понравился результат используешь, а не пытаешься опять всё переписать.
СвидетельКапитализма, вы понимаете что разговор был на тему: зачем R если есть Delphi? и мой ответ что это инструменты для разных задач :-)
avatar
Алексей, да у свидетеля в любом! ЯП двумя строчками можно анализ данных делать;))
avatar
AlexeyT, вы мои слова перевираете -> это Алексей делает анализ в 2 строчки, я указал что у всех современных языков есть такиеже эквиваленты. 

СвидетельКапитализма, Вы утрируете, напишите 2 строчки кода, чтобы получить данные и вывести график на экран? 
а в R это действительно можно сделать за 2 строки. И спор собственно глупый, сколько людей столько мнений, одному нравится одно — другому другое, и это прекрасно! 
avatar
love_to_trade , есть вопросы по курсу, но не хватает рейтинга отправить ЛС. Как можно с вами связаться?
avatar
BlackDriller, пишите на imartynenko@o-s-a.net
avatar
СвидетельКапитализма, как же перевираю,
вот ваша цитата:
"
если темиже 2мя строчками это делается в любом нормальном языке программирования?"

даже в статистических пакетах, spss и etc, нет многих методов, которые есть в R, 
написать конечно можно что угодно и где угодно, только это будет не 2 строчки, а 202 минимум
avatar
Бабёр-Енот, чем рисуете тики-то?
скажите свой пример, какой инструмент, за какой период берете данные.
avatar
AlexeyT, я рисую тем что в интернете нашел...
(поэтому меня бесят такие статьи в которых расписывают какой R зашибатый и распрекрасный для бектестов, объясняют как сложить 2+2, но не удосуживаются даже выложить пример с тестом скжем какойнить страты с пересечениями машек, чтобы можно было использовать как скелет для дальнейших экспериментов)

library(quantmod)
library(rusquant)
getSymbols(«BRG6», from=Sys.Date()-1, src=«Finam», period=«tick») # вроде отдают за день
chartSeries(BRG6)
Бабёр-Енот, вот вам пример на пересечение машек
profitraders.com/Rlang/CrossMA.html
но тут сделано очень много руками,
можно проще через blotter сделать,
по условиям сформировать массив как-бы сделок,
и сматчить его в блоттере, и сразу будет и всевозможная статистика сделок и диаграммы разные (как у меня в сервисе анализа ЛЧИ)
avatar
нах нужен этот тормоз R? Зачем использовать две разные платформы — одну для анализа другую для трейдинга?
avatar
nbvehrfr, то есть вы сразу пишите робота для торговли, и только потом тестируете стратегию. прикольно :)
avatar
Алексей, пишешь робота для бектестра => тестируешь => меняешь галочку с «бектест» на «рынок» => profit
avatar
professor facepalm, и опять мы про разное. допустим у вас есть задача сгонять в ближайший магазин, по слухам там водку завезли :-) у вас есть три варианта: 1. пешком 2. на велике 3. собрать супер-пупер аутомобиль из конструктора «собери сам: тесла за 48 часов» :-) Я говорю что на велике быстро и не затратно, вы мне что тесла круче, только пока собирать будете или водку всю разберут или что в двойне обидно если её и не привозили :-)
Надеюсь теперь мысль моя понятна.
avatar

Алексей, вот конструктор «собери теслу за 48 часов, а всё равно получи тележку гастарбайтарскую» это вот как раз про R. 

Он не работает из коробки, нужно ещё хорошенько покапаться в в их главной гордости — 8000+ пакетов анализа данных (99.9% которых полный мусор), чтоб что-то там собрать для анализа данных. 

СвидетельКапитализма, вы не поняли :-)
1. пешком — решать задачу в голове на листочке.
2. на велике — R или ему подобное.
3. «собрать теслу» - написать свою полноценную программу умеющую всё :-) и даже знающую на какой вопрос ответ: 42 :-))
avatar
nbvehrfr, ачтобы статистические закономерности найти, не? или нейросеточки покрутить там…
avatar

Эту статью писал дебил какой-то чтоли? Похоже-что да. R никогда небыл популярен среди квантов, так-как это медленный интерпетируемый язык.

Про мелкософт вообще жесть. R уже существует 20 лет и никакой мелкософт не может его приобрести, ибо это свободное ПО. Тем более мы знаем, какие «надежные руки» у мелкософта.

Аффтырь еще и отсал от жизни — R уже считается устаревшим языком и ему на замену разрабатывается язык Julia.

avatar
Злой Инвестор, ну ты сам дебил, раз не смог понять, что выкурили не R, а компанию, которая предоставляет свой дистрибути R. И кто это, интересно, считает R устаревшим предпочитая его Julia, которая хоть и пыжится, но никак до попуярности R и Python не дорастет
avatar
magary4, Я на R написал тысячи строк кода и считаю его устаревшим. Julia — молодой язык. И еще в разработке. О какой популярности ты тут кукарекаешь? :))
avatar
а чем R от Revolution Analytics отличается от обычного R?
avatar
magary4, обычный R не поддерживает многоядерность и не умеет распаралелливать вычисления.
avatar
Злой Инвестор, спасибо)
avatar
magary4, неверно вам ответили,
есть R и есть R Revolution (который раньше был Revolution Analytics, теперь MS) — они оба бесплатные для личного использования.
R Revolution поддерживает многоядерность,
и простой R умеет поддерживать параллельные вычисления
более того, для подавляющего большинства пользователей, ни то, ни другое не требуется, главное знать как его верно готовить.
Если писать код как на обычном языке, с циклами, избыточными ифами, обращением к элементам, и прочие порочные практики, то да, наверно будет не так быстро, но если знать, как надо, то все будет хорошо.
avatar
А как насчет Pine Script? В учебнике сказано что он создавался с одной целью помочь трейдерам роботизироваться.
avatar

Был бы признателен, если бы ответили на 1 вопрос:
я сейчас стал его ® понемногу ковырять, и один момент мне не очень в нем нравится (хотя возможны это скорые выводы): я перерыл кучу библиотек для построения графиков, но ни одна из них не отвечает моим 3-м требованиям (быстрая отрисовка, приличный графический дизайн и! курсор мыши с текущими коррдинатами, не думал что с этим могут быть проблемы). Смотрел среди: 
plot (нет курсора с координатами, дизайн убогий, но работает быстро),
ggplot2(красивый дизайн, работает быстро, но опять же статичен, никак не понять произвольные координаты на графике),

GTK + plot(координаты появились, но дизай от plot-а остался),

GTK + ggplot2(убил кучу времени чтобы! самому убрать один баг исходниках gtk, заребилдить его, в итоге ошибка ушла, но кусор с координтами так и не появился) , 

plotly (классный дизайн, есть координаты, но работает глючно). Тот же ggplot рисует очень годные графики, но почему они статичные? Неужели нельзя было прикрутить хотя бы просто курсор с координатами, потому что не очень удобно, что-то высматривать на глаз. Тот же matlab или maple c этими задачи на ура справляется.

Спасибо.

avatar
nvse, Есть еще googleVis https://cran.r-project.org/web/packages/googleVis/vignettes/googleVis_examples.html, htmlwidgets(http://www.htmlwidgets.org/showcase_dygraphs.html)и rcharts (http://timelyportfolio.github.io/rCharts_dygraphs_posts/retail.html правда там все совсем не в 2 строки (()

avatar
love_to_trade , спасибо большое. Красота, скорость и интерактивность, то что нужно.
avatar

теги блога love_to_trade

....все тэги



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