<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Stock Details</title>
font-family: -apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto,
background: rgba(0, 0, 0, 0.05);
justify-content: space-between;
padding: 0 var(--gap-size);
gap: calc(var(--gap-size) * 2);
box-shadow: rgba(0, 0, 0, 0.05) 0 2px 6px 0;
linear-gradient(90deg, #00bce5 0%, #2962ff 100%)
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
header input[type='search'] {
padding: calc(var(--gap-size) * 0.5) var(--gap-size);
margin-top: var(--gap-size);
border-top: solid 2px rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.6);
padding: 0 calc(var(--gap-size) * 0.5);
grid-template-columns: 1fr 1fr;
grid-gap: var(--gap-size);
margin-bottom: var(--gap-size);
border: solid 1px #e0e3eb;
#powered-by-tv a, #powered-by-tv a:visited {
@media (max-width: 800px) {
<a id="site-logo" href="#">TradingVista</a>
<input type="search" placeholder="Search..." />
<nav id="ticker-tape"></nav>
<section id="symbol-info">
<section id="advanced-chart">
<section id="company-profile">
<section id="fundamental-data">
<section id="technical-analysis">
<section id="top-stories">
<section id="powered-by-tv">
<svg xmlns="http://www.w3.org/2000/svg" width="157" height="21">
<use href="/widget-docs/tradingview-logo.svg#tradingview-logo"></use>
Charts and financial information provided by TradingView, a popular
charting & trading platform. Check out even more
<a href="https://www.tradingview.com/features/">advanced features</a>
or <a href="https://www.tradingview.com/widget/">grab charts</a> for
This example page is part of a tutorial for integrating TradingView
widgets into your website.
<p><a href="https://www.tradingview.com/widget-docs/tutorials/build-page/#build-a-page">View the tutorial</a></p>
<template id="ticker-tape-widget-template">
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
src="https://s3.tradingview.com/external-embedding/embed-widget-ticker-tape.js"
"proName": "NASDAQ:GOOGL"
"displayMode": "adaptive",
<!-- TradingView Widget END -->
<template id="symbol-info-template">
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
src="https://s3.tradingview.com/external-embedding/embed-widget-symbol-info.js"
<!-- TradingView Widget END -->
src="https://s3.tradingview.com/tv.js"
<template id="advanced-chart-template">
<!-- TradingView Widget BEGIN -->
class="tradingview-widget-container"
style="height: 100%; width: 100%"
style="height: calc(100% - 32px); width: 100%"
<script type="text/javascript">
hide_side_toolbar: false,
allow_symbol_change: true,
container_id: 'tradingview_ae7da',
<!-- TradingView Widget END -->
<template id="company-profile-template">
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
src="https://s3.tradingview.com/external-embedding/embed-widget-symbol-profile.js"
<!-- TradingView Widget END -->
<template id="fundamental-data-template">
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
src="https://s3.tradingview.com/external-embedding/embed-widget-financials.js"
"displayMode": "adaptive",
<!-- TradingView Widget END -->
<template id="technical-analysis-template">
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
src="https://s3.tradingview.com/external-embedding/embed-widget-technical-analysis.js"
"showIntervalTabs": true,
<!-- TradingView Widget END -->
<template id="top-stories-template">
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
src="https://s3.tradingview.com/external-embedding/embed-widget-timeline.js"
"displayMode": "regular",
<!-- TradingView Widget END -->
function getQueryParam(param) {
let urlSearchParams = new URLSearchParams(window.location.search);
return urlSearchParams.get(param);
function readSymbolFromQueryString() {
return getQueryParam('tvwidgetsymbol');
function cloneTemplateInto(templateId, targetId, rewrites) {
const tmpl = document.querySelector(`#${templateId}`);
const target = document.querySelector(`#${targetId}`);
const clone = tmpl.content.cloneNode(true);
const script = clone.querySelector('script');
script.textContent = rewrites(script.textContent);
target.appendChild(clone);
const symbol = readSymbolFromQueryString() || 'NASDAQ:AAPL';
function setSymbol(scriptContent) {
return scriptContent.replace(/"symbol": "([^"]*)"/g, () => {
return `"symbol": "${symbol}"`;
cloneTemplateInto('symbol-info-template', 'symbol-info', setSymbol);
cloneTemplateInto('advanced-chart-template', 'advanced-chart');
cloneTemplateInto('company-profile-template', 'company-profile', setSymbol);
cloneTemplateInto('fundamental-data-template', 'fundamental-data', setSymbol);
cloneTemplateInto('technical-analysis-template', 'technical-analysis', setSymbol);
cloneTemplateInto('top-stories-template', 'top-stories', setSymbol);
document.title = `Stock Details - ${symbol}`;