Настройка браузера vivaldi для tradingview многооконность

Обновлено: 30.06.2024


Если Вы — фрилансер или CTO финансового проекта, рано или позно Вы столкнетесь с вопросом подключения графиков, я сэкономлю Вам минимум сутки работы. Те, кто уже используют эту библиотеку, возможно, найдут что-то новое.

Статья будет в формате "книги рецептов" с open source решениями для криптовалютной биржи Binance и Forex.

У библиотеки TradingView (charting_library) высокий порог входа, при этом менее популярной она не стала из-за того, что используется на одноименном сервисе TradingView.com. Решил сделать "книгу рецептов" с ответами на основные вопросы.

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

В статье буду указывать ссылки на документацию. Если, при переходе по ссылке, у Вас открывается 404 страница, это означает, что у Вас нет доступа.

Лицензия

Можно использовать бесплатно в коммерческих и некоммерческих целях. Самый главный критерий — сохранность логотипа компании на графиках.

При запросе доступа к графикам обязательно указывать конечный домен, где они будут использоваться. При реализации одного из проектов мы подключали Forex-дату к графику, все настроили и запустили. За 2-й месяц заказчик данные Forex не проплатил, из-за этого графики полностью не загружались и отсутствовал логотип. После сложившейся ситуации проверяющий связался с заказчиком последством эл.почты с вопросами для разъяснения ситуации.

Получение доступа

У библиотеки закрытый доступ на GitHub, чтобы его получить необходимо:

  1. Заполнить заявку на сайте
  2. Подписать договор
  3. Получить доступ к репозиторию на GitHub

Мой опыт получения доступа

Спустя примерно 4 недели после заполнения заявки мне прислали договор для подписания. Через 3 дня после подписания открыли доступ к библиотеке. Судя по отзывам, период получения доступа плавает и точных сроков нет.

Не отображается график, даже с тестовыми данными

Для решения нужно подключить виджет и глобально указать доступ к бибилиотеке.

Подключение виджета

Доступ к библиотеке

Указать глобальный путь к папке charting_library в опциях виджета library_path: '/charting_library/'

Глобальный путь будет отличаться от используемых модулей. В моем случае используется Vuejs с указанием в vue.config.js => publicPath: '/' . Структура папок: /public/index.html , /public/charting_library/ и настройки виджета, которые указаны выше.

Подключение данных

В базовом варианте используются тестовые данные. Далее необходимо подключить свой провайдер данных, используя одно из двух решений: JS API или UDF. Напрямую "скормить" массив данных не получится. Мы расмотрим JSAPI, UDF подключается аналогично, с отличием в указании конечной точки на сервере, откуда будет получать данные.

  • JS API — подключение на стороне клиента
  • UDF — подключение на серверной части

TradingView JS API adapter

Чтобы настроить адаптер, нужно понимать, что каждый хук выполняется последовательно и для отладки лучше добавить вывод в консоль информации о запуске хука console.log('[<название хука>]: Method call') .

Последовательность запуска: onReady => resolveSymbol => getBars => subscribeBars => unsubscribeBars.

Если вы меняете таймфрейм, символ, вызывается хук unsubscribeBars, который обращается к вашей функции, которая сбрасывает WebSocket подключение с провайдером данных. Если вы не используете subscribeBars, то и unsubscribeBars вам не нужен. getServerTime хук не обязательный, но если вам требуется использовать время сервера, подключайте его.

Если провайдер данных не отдает объемы, то можете указать в хуке resolveSymbol — has_no_volume: true.

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

TradingView UDF adapter

JS API getBars хук вызывается много раз

Так бывает, когда не хватает данных и библиотека самостоятельно пытается "догрузить" информацию. В хуке getBars есть параметр firstDataRequest, который возвращает булевское значение true\false , используйте его. Возвращает true только при загрузке маркета.

У моего провайдера нет WebSocket подключения

Не обязательно использовать UDF провайдер, если нет стрима. Интервал запросов задать не получится для JS API адаптера, но это не мешает нам добавить setInterval в subscribeBars и отдавать данные для обновления.

Кастомизация дизайна

По умолчанию доступны две темы: theme: "Light" || "Dark" . Также можно использовать собственные цветовые решение. Со временем столкнетесь с проблемой, когда цвета поменялись везде, кроме header_widget (верхний блок с кнопками поиска, сравнения и пр.), его нужно менять через .css.

В опциях виджета нужно указать: custom_css_url: '/tradingview.css' , где / — абсолютный путь от вашего index.html . С контентом:

Сохрание данных

Возможно понадобится сохранять "рисовалки".

Save\Load методы

Самый простой вариант, который можно использовать, если не планируется рисовать много на графиках. Простой, потому что можете вызвать объект со всеми данными графика widget.save(cb => this.setOverlay(cb)) и сохранить там, где будет удобно.

Save\Load adapter

Похож на UDF adapter. На сервере поднимаете конечные точки для сохранения\загрузки данных.

У меня что-то не работает, делаю все по документации

Реальный кейс, обратился фрилансер с проектом, проект был старый, он его переписывал. По итогу просто была старая версия библиотеки. Проверяйте версию.

Другая ситуация, когда пытаются вызвать методы у еще незагруженного графика, отслеживайте состояние через onChartReady. Если нет под капотом реактивности, чтобы отследить загрузку графика, используйте паттерн Observer.

Да, это нормально.

Как добавить ордера на график

После добавления ордера на график, нет доступа массиву, поэтому необходимо самостоятельно отслеживать ордера. Поделюсь своим решением оформленное в формате миксина для Vuejs, суть будет понятна.

Как добавить формы, "рисовалки" на график (линия, фигуры и пр.)

Добавлять можно исключительно предложенные библитекой формы, которые используются в тулбаре. Это необходимо, когда нужно вывести информацию на график.

Хочу использовать PineScript

charting_library не поддерживает такой функционал. PineScript можно переписать на JavaScript и использовать алгоритм на клиентской или серверной части.

Хочу добавить свой индикатор

Посмотрите в сторону Custom Studies

Хочу использовать несколько графиков в одном окне

В бесплатной версии charting_library такой функционал отсутствует. При необходимости можно своими силами это сделать HTML+CSS.

    — подключенная биржа Binance c JS API адаптером и WebSocket стримом — данные Forex для JS API адаптера. Ежеминутное обновлением данных без WebSocket с Save\Load методами

Статья будет дополняться. Если есть кейс с проблемой — решением, пишите, дополню статью с указанием авторства.

image

Со времени предыдущей сборки прошло много дней и вы вполне справедливо ждёте пояснений. Не волнуйтесь: всё нормально, ничего форсмажорного не произошло — идёт обычный процесс разработки, который гладким никогда не бывает. И в данном случае одновременно сошлись два обстоятельства, о которых вы сможете узнать под катом.

Итак, первое обстоятельство — обновление ядра Chromium до версии 62.0.3202.63. Нам пришлось довольно много восстанавливать после этого «улучшения». Вторым обстоятельством выступило тоже обновление Chromium, но — будущее. Из планов разработчиков этого ядра мы узнали, что в скором времени будут отключены некоторые функции, которые мы использовали в своей работе. Таким образом, нам пришлось в срочном порядке переписывать, в частности, систему работы с окнами приложения, что позволит нам избежать будущих проблем, а также, в некоторых случаях, даст и прирост в скорости работы браузера. Вы можете сообщать нам обо всех изменениях, которые вы заметите в процессе открытия окон или работы с ними — мы надеемся, что смогли значительно улучшить этот компонент браузера.

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

Ну, а теперь — о новых функциях, которые тоже есть.

Панель окон

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

image

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

Панель загрузки

Да, панель появилась в предыдущих версиях, но от вас поступило много запросов на улучшение данной функции, что мы и сделали. Теперь вы можете видеть скорость загрузки непосредственно под именем файла:

image

А если вы попробуете закрыть браузер, пока загрузка не завершена, вы увидите вот такое предупреждение:

image

В общем, процесс улучшения не стоит на месте, ждите новых сборок.

Ещё одно запрашиваемое пользователями улучшение — возможность установки своей картинки для папки Экспресс-панели. Мы добавили такую возможность — попробуйте контекстное меню правой кнопки мыши:

image

Полный список изменений вы найдёте в конце статьи.

Известные проблемы

Естественно, большие изменения влекут за собой и некоторые неудобства в виде различных проблем. В данной сборке вы сможете найти такие «сюрпризы», как:


Всем привет!

Создавая браузер Vivaldi мы стремимся следовать нашей привычной философии: предоставлять пользователям максимум возможностей по работе с браузером. Для этого мы постоянно добавляем новые интересные функции, а также расширяем число доступных настроек практически в каждой версии браузера.

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

1. «Босс-кнопка»

Не секрет, что многие в рабочее время любят заглянуть на сайты, не связанные с работой, особенно во время спортивных чемпионатов, например. Но редкий начальник может войти в положение и простить подчинённому подобную вольность. Вот и приходится изобретать различные способы, позволяющие быстро скрыть от внезапно нагрянувшего начальства то, что отображается на экране монитора. Есть подобная функция и в браузере Vivaldi.

На самом деле функция даже более совершенна, чем это можно себе представить, ведь никакой кнопки вообще нет! Для того, чтобы активировать данный режим, необходимо лишь включить фильтр размытия в «Эффектах страницы». Теперь просто выведите курсор мышки к краю экрана — изображение страницы автоматически растворится!

2. Сортировка закладок

Мы любим закладки. Как правило, у каждого из нас имеется неслабый багаж «нажитого непосильным трудом» за многие годы работы в сети. Одна беда: время от времени их приходится сортировать, чтобы время поиска нужной закладки оставалось в разумных пределах. К сожалению, вертикальный размер дисплеев не позволяет вместить весь список папок и файлов закладок, что может затруднить процесс сортировки. К счастью, у вас есть браузер Vivaldi! Просто откройте закладки в боковой панели и во вкладке, а затем просто переносите нужные из одной папки в другую.

3. Создание закладки

Да, эта функция очень проста и доступна пользователям браузеров множеством способов. Но в Vivaldi есть и ещё один, довольно удобный. Просто откройте боковую панель закладок и перетаскивайте ярлык страницы в нужную папку.

4. Изменение стартовой Экспресс-панели

В браузере Vivaldi мы предусмотрели возможность создавать несколько Экспресс-панелей, каждая из которых может содержать закладки на определённую тематику. К сожалению, мы пока не предусмотрели способ сортировки этих Экспресс-панелей, чтобы назначить одну из них в качестве дефолтной. Но способ решения проблемы есть, и довольно простой. Просто откройте боковую панель закладок и расставьте Экспресс-панели в том порядке, который вас устроит, одновременно вы можете сменить и Экспресс-панель, открываемую по умолчанию.

5. Просмотр сохранённых паролей

Сегодня у каждого из нас имеется несколько десятков (как минимум) учётных записей на самых различных сайтах, и если вы не используете один и тот же пароль для всех случаев, неизбежно наступает момент, когда нужно вспомнить его для одного из веб-сайтов. Как это сделать в браузере Vivaldi? Очень просто. Как вы знаете, наш браузер построен на ядре Chromium, поэтому многие функции пришли к нам по наследству. Введите в адресной строке адрес:

chrome://settings/passwords

Теперь вы сможете разыскать пароль, даже если он был сохранён много времени назад.

image

6. YouTube каналы в боковой панели

Для того, чтобы постоянно держать под рукой YouTube-канал, на который вы подписаны, и своевременно получать все свежие ролики, просто разместите канал в виде веб-панели — теперь новые видео будут на расстоянии одного клика.

image

7. Быстрое клонирование вкладок

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

8. Настройки, как домашняя страница

Любите экспериментировать с настройками браузера и хотите, чтобы они всегда были под рукой? Назначьте в качестве домашней внутреннюю страницу vivaldi://settings — теперь настройки будут открываться при нажатии на кнопку «Домой» в адресной панели браузера.

9. Быстрый поиск вкладки

Если у вас открыто много вкладок, особенно — с одного и того же веб-сайта, и вам сложно найти среди них нужную, просто воспользуйтесь клавишей F2 и начните вводить название страницы или адрес — в отфильтрованном списке вы легко найдёте нужную страницу. Выделите её и нажмите Enter — дело сделано.

10. Жест-змейка

Жесты мышью уже стали привычной функцией во многих браузерах. Есть они и в Vivaldi. Более того, в тестовой сборке браузера мы добавили возможность создавать новые жесты для самых различных действий. Одна беда: со временем число доступных удобных перемещений курсора мыши неизбежно подходит к концу. На такой случай Vivaldi обладает скрытым талантом: попробуйте зигзаг в качестве жеста.

12 миллионов пользователей любят наше приложение (оценка 4.9)

для любых рынков

Вы можете просто посмотреть цены акций, а можете проанализировать ценовые модели при помощи сложных скриптов — выбор за вами.

desktop-monitors

desktop-monitors-mobile

12 типов графиков

Включая Ренко, Каги и Крестики-нолики — настройте их сами

До 8 графиков в одной вкладке

Синхронизируйте инструменты, интервалы и даже объекты рисования

Симулятор рынка

Перематывайте движение рынков и смотрите с разрешением и скоростью, которые сами выберете

Спреды

Создавайте свои уникальные математические формулы

Настраиваемые интервалы графиков

Любой временной интервал, включая секунды и range бары

каким он должен быть

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

  • 100+ популярных встроенных индикаторов
  • 100 000+ индикаторов, созданных сообществом
  • 50+ удобных инструментов рисования
  • Индикаторы профиля объёма
  • Распознавание свечных моделей
  • Анализ нескольких таймфреймов

Анализ на TradingView

которые вы не пропустите

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

  • Оповещения для каждого устройства
  • 12 условий оповещений
  • Оповещения для цен, индикаторов и стратегий
  • Оповещения из Pine Script
  • Push-уведомления и веб-хуки

Оповещение: AAPL пересекает 262,88
Оповещение: AAPL пересекает 262,88
Оповещение: AAPL пересекает 262,88
Оповещение: AAPL пересекает 262,88

Pine Script — язык программирования трейдеров

Мы создали Pine Script, чтобы вы могли писать и делиться вашими собственными индикаторами и стратегиями. Pine элегантно прост — две строки его кода заменят вам тысячи в других языках программирования.

Читайте также: