Блог им. Aphelion

Скачиваем исторические данные с tradingview

Так как у tradingview нет API для получения свечей и его разработка не планируется, то приходится изобретать собственные велосипеды. После непродолжительных поисков в гугле был найден сайт, который за 3$ предлагает скачать нужные данные. Для получения свечей требуется всего лишь указать ссылку на торговую идею tradingview, а значит свечи с этой страницы можно распарсить самостоятельно и не платить всяким проходимцам 3 бакса (Это ведь целый месяц новой депозитарной комиссии в Октрытии!!!).

Алгоритм следующий:
1) Заходим в график tradingview, выбираем инструмент и таймфрейм
2) Нажимаем опубликовать, заполняем обязательные поля
3) Нажимаем на замочек в нижнем правом углу, чтобы идея стала приватной и публикуем
4) Получаем ссылку вида https://ru.tradingview.com/chart/VIX/veShLNLq-vix/
5) Вставляем эту ссылку в php скрипт, который можно скачать здесь https://gist.github.com/AphelionDH/ef168f9bcff907245907db07d92004b0
6) Запускаем скрипт
7) ???
8) Profit
★41
26 комментариев
не понял, в чем профит
там минутный график максимум только за несколько дней прогружается
Какая версия php нужна?
 Выскакивает ошибка:
Parse error: syntax error, unexpected '[' in Z:\home\tradingview\www\index.php on line 16
Евгений Гуревич, нужна версия php не ниже 5.4
avatar
Как ставить php? 
avatar
Что такое php?
avatar
переписал на python
avatar
smit, Подеелитесь плиз Питоновской версией 
avatar
  переписал на c#
avatar
Свечки удобно скачивать на ru-ticker.com Открываешь любой график и нажимаешь сохранить как CSV. А потиковые исторические данные там за 19 лет для мосбиржи — с 2000 года и цена меньше 100 баксов
avatar
Спасибо, пригодилось!
avatar

Добрый день!

Пытаюсь запустить скрипт через разные сайты. Например этот:

https://www.onlinegdb.com/online_php_interpreter

Исправив только адрес  на свой:

https://ru.tradingview.com/chart/BZM2011/g4c5ie39-12321/

получаю раз за разом ошибку:

 

PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/main.php on line 9
PHP Warning: file_get_contents(https://ru.tradingview.com/chart/BZM2011/g4c5ie39-12321/): failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/main.php on line 9
Failed to load data

 

Помогите пожалуйста!

Очень нужно скачать данные и ваш совет был единственной «ниточкой»… :-(

 

Андрей, через сайт это сделать не получится, не все сайты дают делать http запросы из php, плюс скрипт сохраняет данные в файл. Нужен php на локальном компьютере. Также tradingview обновил разметку из-за чего скрипт перестал работать. Сейчас его обновил.

Выкачал ваши данные сюда: codefile.io/f/sYnbuhH0rS

Обновленная версия скрипта: codefile.io/f/lsXo61glRU
avatar

Aphelion, Добрый день!

Спасибо, что откликнулись! Да ещё и так деятельно! 

 

Чтобы запустить скрипт с локальной машины, я установил MAMP PRO.
Разобрался как его включить.
И смог запустить скрипт из браузера.

Это позволило получить файл candles.json

 

Разобрался как этот формат преобразовывать в Экселе. Чтобы получить базу данных в виде обычной таблицы.

 

Однако, остались 2 серьёзных проблемы:
1) Нет дат.
timestamp — это не дата. А получить из него дату я не понимаю как.

 


2) Выводится лишь то, что у tradingview на одном экране. При этом, мне не удалось ужать график так, чтобы на экран вместить более пары сотен свечей. Не помогают и танцы с бубном в попытке подгрузить данные вне одного экрана. 

 

Т.е. загружаются максимум пара сотен свечей с неопределёнными датами.

Эти проблемы неразрешимы?

 

Так или иначе, огромное вам СПАСИБО за попытку помочь.
Если честно, я не ожидал что вы в принципе откликнитесь.

 

Андрей, не эксперт в excel, но там должна быть функция, которая преобразует timestamp в дату. В любом случае, переписать скрипт, чтобы он выдавал дату вместо timestamp дело пары секунд, поэтому вот скрипт, который это делает: codefile.io/f/7BvgguAoZq

С данными куда сложнее, tradingview дает только данные, которые помещаются на экран, как достать то что подкачивается после прокрутки я не знаю.
avatar
Aphelion, 

Забавно! После того, как ваши даты заработали, стало видно что «днёвки» начинаются в разное время. В час, два, три или 4 часа ночи. :-)

(хотя по идее, время отсечки дней должно быть одним и тем же)

Забавно устроен TradingView! :-)

 

Вам огромное спасибо за помощь!
С вашей помощью могу выкачивать днёвки по годам. (можно попросить tradingview вывести год, а затем пользоваться вашим скриптом. Можно даже перемотать на год до этого и выкачать сразу несколько лет один за одним)

Что вполне достаточно для решения прикладных задач. :-)

 

Я конечно ещё попробую использовать Python. (которым никогда не пользовался. Но вроде пишут что там есть программы с похожим функционалом). Т.к. выгружать данные нужно будет сотнями штук.

 

Но благодаря Вам, я:

1) Теперь твёрдо знаю, что выгрузка данных из графика осуществима.

 

2) У меня есть инструмент для решения прикладных задач. Который можно пустить в дело, если с Python будет завтык.

3) Также, благодаря вам я получил начальное ознакомление с PHP в рамках полезного скрипта.

 

От души — ОГРОМНОЕ Спасибище, Aphelion !

Aphelion

Добрый день. Давно искал решение как извлекать данные из графика, перерыл много сайтов, пытался найти готовое решение в виде таблиц. Но не по всем активам такое имеется.

Ваше решение для меня самое приемлемое и достаточно простое. Скачал MAMP, сохранил скрипт с расширением php, но к сожалению браузер выдал ошибку: Failed to find chart data.

Проверьте пожалуйста работает ли ваш скрип сейчас или Trading View снова что-то обновил и скрипт перестал работать?
avatar
kulervik, Trading View опять изменил разметку. Обновил скрипт: https://codefile.io/f/xg76lLAMCI
avatar
Aphelion, доброе утро. Спасибо за то, что откликнулись и поправили скрипт. Теперь он срабатывает, но в файл candles.json закачиваются пустые квадратные скобки [ ]. Проверьте пожалуйста.
avatar

теги блога Aphelion

....все тэги



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