Блог им. ilyaalex
Продолжаю проект по популяризации языка 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 стал так популярен среди алготрейдеров в западных странах?
Ответы, по степени важности:
В заключении хотелось бы пожелать трейдерам России и СНГ не идти на компромиссы. Исследовать рынок по взрослому! И использовать при этом специально разработанные для этого инструменты!
Ссылки:
полноценного торгуемого робота на нем не построить, хотя можно,
а для небольшой задержки, можно делать экспорт по DDE например в Excel, сохранять как файлы или в БД и читать их, или же читать сделки с партнеров mfd, finam.
Алексей, всегда ржу с таких языков, инфраструктура не отстроена, создать ничего нельзя (робота, сервер, приложение), даже побаловаться нельзя, даже нет нормальной среды разработки, ограничения жёсткие на использование памяти, потоковой обработки данных не предусмотренно, всё нужно сразу загружать в память — а это значит что любой более менее нормальный анализ сделать просто не возможно.
Кто не умеет программировать есть матлаб.
Сейчас есть scala, спарк, даже после java 9 в котором есть repl и своя оболочка, просто смешно смотреть что всё ещё остаются люди которым не жалко тратить своё время на то что в эту ерунду играться, чтоб в итоге выкинуть весь код в мусорку, тк его всё равно никуда применить нельзя.
И чтоб добиться чего-то нужно будет переписывать на нормальных языках, где сейчас всё тоже самое реализовывать уже проще и выше качеством — за счёт наличия взрослых библиотек (типа spark), за счёт полноценных сред разработки, средств анализа кода, средств профилирования, за счёт того что можно где угодно и под что угодно этот код применять, что вывести на веб сервер, что использовать для робота, что просто делать полноценный анализ.
Бектест какой-то стратегии в R по пересечениям индюков на дневках SNP500 тоже занимает несколько минут…
чёта в общем я не понял…
Грубо говоря R для поиска стратегии, а не для торговли.
какой смысл просто обьясни, если темиже 2мя строчками это делается в любом нормальном языке программирования?
с производительностью на 2-3 порядка выше.
понравился результат используешь, а не пытаешься опять всё переписать.
а в R это действительно можно сделать за 2 строки. И спор собственно глупый, сколько людей столько мнений, одному нравится одно — другому другое, и это прекрасно!
вот ваша цитата:
"
если темиже 2мя строчками это делается в любом нормальном языке программирования?"
даже в статистических пакетах, spss и etc, нет многих методов, которые есть в R,
написать конечно можно что угодно и где угодно, только это будет не 2 строчки, а 202 минимум
скажите свой пример, какой инструмент, за какой период берете данные.
(поэтому меня бесят такие статьи в которых расписывают какой 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 сделать,
по условиям сформировать массив как-бы сделок,
и сматчить его в блоттере, и сразу будет и всевозможная статистика сделок и диаграммы разные (как у меня в сервисе анализа ЛЧИ)
Надеюсь теперь мысль моя понятна.
Алексей, вот конструктор «собери теслу за 48 часов, а всё равно получи тележку гастарбайтарскую» это вот как раз про R.
Он не работает из коробки, нужно ещё хорошенько покапаться в в их главной гордости — 8000+ пакетов анализа данных (99.9% которых полный мусор), чтоб что-то там собрать для анализа данных.
1. пешком — решать задачу в голове на листочке.
2. на велике — R или ему подобное.
3. «собрать теслу» - написать свою полноценную программу умеющую всё :-) и даже знающую на какой вопрос ответ: 42 :-))
Эту статью писал дебил какой-то чтоли? Похоже-что да. R никогда небыл популярен среди квантов, так-как это медленный интерпетируемый язык.
Про мелкософт вообще жесть. R уже существует 20 лет и никакой мелкософт не может его приобрести, ибо это свободное ПО. Тем более мы знаем, какие «надежные руки» у мелкософта.
Аффтырь еще и отсал от жизни — R уже считается устаревшим языком и ему на замену разрабатывается язык Julia.
есть R и есть R Revolution (который раньше был Revolution Analytics, теперь MS) — они оба бесплатные для личного использования.
R Revolution поддерживает многоядерность,
и простой R умеет поддерживать параллельные вычисления
более того, для подавляющего большинства пользователей, ни то, ни другое не требуется, главное знать как его верно готовить.
Если писать код как на обычном языке, с циклами, избыточными ифами, обращением к элементам, и прочие порочные практики, то да, наверно будет не так быстро, но если знать, как надо, то все будет хорошо.
Был бы признателен, если бы ответили на 1 вопрос:
я сейчас стал его ® понемногу ковырять, и один момент мне не очень в нем нравится (хотя возможны это скорые выводы): я перерыл кучу библиотек для построения графиков, но ни одна из них не отвечает моим 3-м требованиям (быстрая отрисовка, приличный графический дизайн и! курсор мыши с текущими коррдинатами, не думал что с этим могут быть проблемы). Смотрел среди:
plot (нет курсора с координатами, дизайн убогий, но работает быстро),
ggplot2(красивый дизайн, работает быстро, но опять же статичен, никак не понять произвольные координаты на графике),
GTK + plot(координаты появились, но дизай от plot-а остался),
GTK + ggplot2(убил кучу времени чтобы! самому убрать один баг исходниках gtk, заребилдить его, в итоге ошибка ушла, но кусор с координтами так и не появился) ,
plotly (классный дизайн, есть координаты, но работает глючно). Тот же ggplot рисует очень годные графики, но почему они статичные? Неужели нельзя было прикрутить хотя бы просто курсор с координатами, потому что не очень удобно, что-то высматривать на глаз. Тот же matlab или maple c этими задачи на ура справляется.
Спасибо.