TradingView Charting Library на PHP-сайте — это свой свечной график на вашем домене, а не чужой iframe с чужим логотипом. Скрипт котировок отдаёт историю и тики, библиотека рисует шкалу, объём и индикаторы. Для интегратора это связка «лента → datafeed → холст», а не «вставил виджет и забыл».
Если открываете терминал БО или Forex и видите пустую плоскость вместо свечей, в девяти случаях из десяти виноват не CSS терминала, а ответ API. График умеет рисовать только то, что пришло в datafeed. Пустой массив свечей, битый символ или CORS на хосте котировок дают ту же картину: серый холст и крутилку.
Что именно ставится
Библиотека лежит у вас в static/JS, не на CDN TradingView как публичный виджет. Вы подключаете её к странице терминала или к карточке инструмента на сайте котировок. Datafeed — слой на PHP или отдельном сервисе: запрос истории по символу и таймфрейму, подписка на обновления бара, резолв имени инструмента.
Символ должен совпадать с тем, что отдаёт лента. Если в таблице рынка BTCUSDT, а datafeed ждёт BTC/USDT, график либо не откроется, либо встанет на последнем известном баре. То же для Forex: EURUSD и EUR/USD — разные ключи, пока вы сами не нормализуете словарь.
- История: REST или внутренний endpoint свечей с меткой времени.
- Realtime: WebSocket-тики или polling бара, если тиков нет.
- Словарь символов: единый список для таблицы, тикера и графика.
- Права на домен: библиотека и API на одном origin или с явным CORS.
Типичные поломки после деплоя
Первый день после выкладки почти всегда одинаковый. Открыли терминал с локального .loc, а API котировок смотрит на боевой хост с whitelist доменов — браузер режет запрос. Или наоборот: график на проде, лента ещё на staging, свечи старше часа. Пользователь думает, что «график завис», а у вас просто нет свежего бара.
Вторая классика — таймфрейм. Datafeed отдаёт M1, а UI по умолчанию открывает H1 и ждёт агрегацию, которой нет. Либо отдаёте unix в секундах, а библиотека ждёт миллисекунды — свечи уезжают в 1970 год. Ловите это сразу: откройте Network, найдите запрос history, проверьте поля time/open/high/low/close и что time растёт монотонно.
- Откройте endpoint истории без UI и убедитесь, что массив не пустой.
- Сверьте символ с карточкой актива и с конфигом терминала.
- Проверьте, что последняя свеча моложе разумного порога для выбранного ТФ.
- В консоли браузера смотрите 404 на chunk библиотеки и CORS.
Подробный разбор ленты — в мануале котировок и в API котировок. Если поток идёт по сокету, смотрите ещё WebSocket-котировки.
Связка с терминалом брокера
На white-label платформе график — не отдельный сайт «для красоты». Цена на холсте должна совпадать с ценой, по которой считается экспирация БО или маржа Forex. Расхождение в один-два пункта на демо ещё терпят; на реальном счёте это претензия в поддержку в первую же сессию.
Практический чеклист перед открытием регистрации: учебный аккаунт, один инструмент, один таймфрейм. Открыли график — тик двигает последнюю свечу. Открыли сделку — в истории цена входа лежит в пределах спреда относительно того, что было на графике в момент клика. Если график обновляется раз в 5 секунд, а ордер берёт тик из другого канала, получите «я жал по другой цене».
Индикаторы и нагрузка
Библиотека умеет много индикаторов. Это не значит, что их надо включать все в дефолтный layout терминала. Каждый индикатор на слабом ноутбуке клиента плюс плотный WebSocket по двадцати парам — это лаги UI, а не «медленный PHP». Ограничьте пресет: свечи, объём, два-три популярных индикатора. Остальное — по желанию трейдера.
На стороне сервера не храните в PHP сессии поток тиков. PHP отдаёт конфиг datafeed и, при необходимости, REST истории. Поток держит отдельный процесс или прокси к источнику market data. Иначе при росте онлайна упрётесь в воркеры и тайм-ауты, а график начнёт «мигать» пустыми обновлениями.
Локальная отладка на .loc
На MicroServer удобно гонять терминал локально, но котировки часто живут на отдельном хосте. Пропишите в конфиге datafeed явный URL API и проверьте, что hosts/DNS резолвят имя. Самоподписанный HTTPS на API при https-странице терминала даст блоировку смешанного контента или отказ сертификата — график снова пустой, хотя curl с сервера отвечает 200.
Имеет смысл держать маленький HTML-стенд только с библиотекой и datafeed без кабинета и KYC. Так быстрее отсекаете проблему: если стенд рисует, а терминал нет — копайте роутинг символа в продукте. Если стенд тоже пустой — копайте ленту.
Крипта, Forex, акции — один холст
Один и тот же Charting Library обслуживает крипто-пары, валютные и, если подключены, акции. Меняется не библиотека, а словарь инструментов и шаг цены. Для крипты часто нужен больший precision; для Forex — привычные 4–5 знаков. Ошибка precision выглядит как «ломаный» график: свечи слипаются или скачут по шкале.
Если строите витрину в духе CoinMarket, график на карточке монеты должен читать тот же идентификатор, что строка таблицы. Иначе пользователь кликает BTC, а видит пусто или чужой актив. Связка таблицы и графика разобрана в CoinMarket-скрипте и в графиках крипты.
Что сдать заказчику
Перед сдачей зафиксируйте три скрина или короткое видео: живой тик на M1, смена таймфрейма без ошибки, совпадение цены с строкой в терминале. Добавьте в runbook: URL history, URL WS (если есть), таблица маппинга символов, список доменов в whitelist. Без этого через месяц поддержка будет искать «почему график встал» по догадкам.
White-label оболочка — логотип, цвета, домен — не лечит мёртвую ленту. Сначала данные, потом брендинг. Общий контур платформы: white label, для опционов — платформа БО, для валют — Forex.
Итоговая формула простая: TradingView Library рисует, ваш datafeed кормит, скрипт котировок отвечает за правду цены. Пока эти три слоя согласованы по символу, времени и доступу с домена, график на PHP-сайте выглядит как «настоящий терминал», а не как вставленная картинка.
Частые вопросы
Tradingview library интеграция php?
Свечной график на своём домене: библиотека TradingView и лента котировок Microscript.
Сколько времени занимает «TradingView Library: график котировок на PHP»?
Ориентир по тексту мануала — около 6 мин. На практике зависит от хостинга и подготовки базы.
Нужен ли отдельный сервер?
Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.
Скрипт курсов криптовалют свой сайт?
Разбор рядом в мануале по этому запросу. скрипт курсов криптовалют свой сайт
Api котировок forex websocket?
Разбор рядом в мануале по этому запросу. api котировок forex websocket