love_to_trade
love_to_trade личный блог
31 января 2016, 16:55

История развития языка 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

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

Ссылки:

39 Комментариев
  • Dordje
    31 января 2016, 17:39
    А есть коннекторы к биржам или клиентским торговым терминалам?
    • AlexeyTikhonov
      31 января 2016, 18:05
      Dordje, для каких целей?
      полноценного торгуемого робота на нем не построить, хотя можно,
      а для небольшой задержки, можно делать экспорт по DDE например в Excel, сохранять как файлы или в БД и читать их, или же читать сделки с партнеров mfd, finam.
    • Алексей
      31 января 2016, 18:07
      Dordje, Он для обработки данных, а не торговли. заливайте в него любые свои данные и работайте с ними. экспорт из терминала — импорт в R руками проще сделать.
      • СвидетельКапитализма
        31 января 2016, 22:43

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

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

  • Niktesla (бывш. Бабёр-Енот)
    31 января 2016, 18:08
    Повелся на ваши зазывания, скачал R, попробовал тики за день нарисовать... Не знаю как там с биг датой, а отрисовка/перерисовка тиков на графике тормозит шо ппц… занимает несколько секунд, вплоть до десяти. У меня в Delphi например на каком-т старом компоненте для рисования графики это все происходит почти мгновенно!!

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

    чёта в общем я не понял…
    • Fillio
      31 января 2016, 18:41
      Бабёр-Енот, а откудова тиковую историю брали? Что-то странно, на R вроде должно летать все, пожно и gpu задействовать. Но я пока сам в нем мало шарю, но тема интересная.
    • Алексей
      31 января 2016, 18:47
      Бабёр-Енот, блин, народ вы чего, реально анализ данных и их использование отличить не можете. Есть туча данных 2 строчками кода проанализировал — посмотрел результат, понравилось закодил в свой продукт, нет анализируем по новой.
      Грубо говоря R для поиска стратегии, а не для торговли.

      • СвидетельКапитализма
        31 января 2016, 22:47
        Алексей, сейчас для всех языков есть готовые решения для анализа данных. 
        какой смысл просто обьясни, если темиже 2мя строчками это делается в любом нормальном языке программирования?
        с производительностью на 2-3 порядка выше. 
        понравился результат используешь, а не пытаешься опять всё переписать.
        • Алексей
          31 января 2016, 23:37
          СвидетельКапитализма, вы понимаете что разговор был на тему: зачем R если есть Delphi? и мой ответ что это инструменты для разных задач :-)
          • AlexeyTikhonov
            31 января 2016, 23:59
            Алексей, да у свидетеля в любом! ЯП двумя строчками можно анализ данных делать;))
            • СвидетельКапитализма
              01 февраля 2016, 02:14
              AlexeyT, вы мои слова перевираете -> это Алексей делает анализ в 2 строчки, я указал что у всех современных языков есть такиеже эквиваленты. 

                • BlackDriller
                  03 февраля 2016, 08:14
                  love_to_trade , есть вопросы по курсу, но не хватает рейтинга отправить ЛС. Как можно с вами связаться?
              • AlexeyTikhonov
                01 февраля 2016, 10:42
                СвидетельКапитализма, как же перевираю,
                вот ваша цитата:
                "
                если темиже 2мя строчками это делается в любом нормальном языке программирования?"

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

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

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

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

            • Алексей
              31 января 2016, 23:46
              СвидетельКапитализма, вы не поняли :-)
              1. пешком — решать задачу в голове на листочке.
              2. на велике — R или ему подобное.
              3. «собрать теслу» - написать свою полноценную программу умеющую всё :-) и даже знающую на какой вопрос ответ: 42 :-))
    • Fillio
      31 января 2016, 18:55
      nbvehrfr, ачтобы статистические закономерности найти, не? или нейросеточки покрутить там…
  • Deleted Account
    31 января 2016, 18:59

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

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

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

    • magary4
      31 января 2016, 19:05
      Злой Инвестор, ну ты сам дебил, раз не смог понять, что выкурили не R, а компанию, которая предоставляет свой дистрибути R. И кто это, интересно, считает R устаревшим предпочитая его Julia, которая хоть и пыжится, но никак до попуярности R и Python не дорастет
      • Deleted Account
        31 января 2016, 19:13
        magary4, Я на R написал тысячи строк кода и считаю его устаревшим. Julia — молодой язык. И еще в разработке. О какой популярности ты тут кукарекаешь? :))
  • magary4
    31 января 2016, 19:00
    а чем R от Revolution Analytics отличается от обычного R?
    • Deleted Account
      31 января 2016, 19:01
      magary4, обычный R не поддерживает многоядерность и не умеет распаралелливать вычисления.
      • magary4
        31 января 2016, 19:06
        Злой Инвестор, спасибо)
    • AlexeyTikhonov
      31 января 2016, 20:37
      magary4, неверно вам ответили,
      есть R и есть R Revolution (который раньше был Revolution Analytics, теперь MS) — они оба бесплатные для личного использования.
      R Revolution поддерживает многоядерность,
      и простой R умеет поддерживать параллельные вычисления
      более того, для подавляющего большинства пользователей, ни то, ни другое не требуется, главное знать как его верно готовить.
      Если писать код как на обычном языке, с циклами, избыточными ифами, обращением к элементам, и прочие порочные практики, то да, наверно будет не так быстро, но если знать, как надо, то все будет хорошо.
  • Андрей Зуев
    31 января 2016, 23:43
    А как насчет Pine Script? В учебнике сказано что он создавался с одной целью помочь трейдерам роботизироваться.
  • Murad Muslimov
    14 февраля 2016, 22:09

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

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

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

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

    Спасибо.

      • Murad Muslimov
        15 февраля 2016, 22:04
        love_to_trade , спасибо большое. Красота, скорость и интерактивность, то что нужно.

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

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