The interactive chart below shows a historical timeline of our stock price and trading volume. Click on the tabs below to view the different timeframes. You may also view data on Dividend, Split, and Earning History by using the Events tab.
NASDAQ BHTG
Display Events
Chart Style
'
},
shape : 'rectpin',
width : 11,
y: -45
};
var type_options = {
dividends: {
name: 'Dividend',
title: 'D',
style: {
color: "#FFFFFF" },
color: "#B52C38",
fillColor: {linearGradient:{x1:0,y1:0,x2:0,y2:0.5},stops:[[0,"#FF5364"],[1,"#B52C38"]]},
states: {
hover: {
fillColor: "#B52C38" }
}
},
splits: {
name: 'Split',
title: 'S',
style: {
color: "#FFFFFF" },
color: "#FF952B",
fillColor: {linearGradient:{x1:0,y1:0,x2:0,y2:0.5},stops:[[0,"#FFC894"],[1,"#FF952B"]]},
states: {
hover: {
fillColor: "#FF952B" }
}
},
earnings: {
name: 'Earnings',
title: 'E',
style: {
color: "#FFFFFF" },
color: "#00A235",
fillColor: {linearGradient:{x1:0,y1:0,x2:0,y2:0.5},stops:[[0,"#00EE65"],[1,"#00A235"]]},
states: {
hover: {
fillColor: "#00A235" }
}
},
news: {
name: 'News',
title: 'N',
style: {
color: "#FFFFFF" },
color: "#006C9F",
fillColor: {linearGradient:{x1:0,y1:0,x2:0,y2:0.5},stops:[[0,"#6BC3FA"],[1,"#006C9F"]]},
states: {
hover: {
fillColor: "#006C9F" }
},
events: {
click: function(event) {window.open(event.point.url, "_blank");}
}
}
};
var options = webDriver.jQuery.extend(true, {}, common_options, type_options[event_type]);
ir_interactivechart.chart.hideLoading();
ir_interactivechart.chart.addSeries(options);
},
error: function(jqxhr, status, error) {
ir_interactivechart.chart.showLoading("Unable to load events ("+status+":"+error+")");
}
});
},
data: {
close: [],
ohlc: [],
volume: []
},
// split the data into separate close, ohlc and volume arrays
load_data: function(size, data) {
var dataLength = data.length;
var offset = (size == "minute") ? (5*60*1000) : 0;
this.data.close[size] = [];
this.data.ohlc[size] = [];
this.data.volume[size] = [];
for (var i = 0; i
Loading... ');
webDriver.jQuery.getJSON(
'../../investors-sub/index_php/',
{
ajax: "ir_quotes",
ticker: "BHTG",
data: "OHLCV",
size: size,
mult: (size == 'day') ? 1 : 5,
min: start || 1446062400,
max: 1569355200 },
function(data) {
ir_interactivechart.load_data(size, data);
ir_interactivechart.chart.hideLoading();
ir_interactivechart.set_data_size(size);
}
);
}
},
set_range: function(range) {
if (this.chart && this.ranges[range])
this.chart.xAxis[0].setExtremes(this.ranges[range], 1569340800000);
},
date_changed: function() {
if (this.chart) {
var start = webDriver.jQuery("#wd_chart_start_date").wd_datepicker("getDate");
start = start.getTime() - start.getTimezoneOffset()*60*1000;
var end = webDriver.jQuery("#wd_chart_end_date").wd_datepicker("getDate");
end = end.getTime() - end.getTimezoneOffset()*60*1000;
var min;
if (this.data.close['minute']) {
min = this.data.close['minute'][0][0] - 24*60*60*1000;
} else {
var now = new Date();
min = now.getTime() - 30*24*60*60*1000;
}
var size = (start 21*24*60*60*1000) ? 'day' : 'minute';
if (size == 'minute') {
start += 34200*1000;
end += 57600*1000;
} else {
start += 57600*1000;
end += 57600*1000;
}
var errors = "";
webDriver.jQuery("#wd_chart_start_date").removeClass("wd_chart_date_error");
webDriver.jQuery("#wd_chart_end_date").removeClass("wd_chart_date_error");
if (start 1569427200000) {
var date_str = webDriver.jQuery.wd_datepicker.formatDate("mm/dd/yy", this.lastDate);
errors += "\nEnd date must not be later than {date}".replace("{date}", date_str);
webDriver.jQuery("#wd_chart_end_date").addClass("wd_chart_date_error");
}
if (start > end) {
errors += "\nStart date must be earlier than end date";
webDriver.jQuery("#wd_chart_start_date").addClass("wd_chart_date_error");
webDriver.jQuery("#wd_chart_end_date").addClass("wd_chart_date_error");
}
if (errors != "") {
alert("Please correct the following error(s):\n"+errors);
return;
}
this.chart.xAxis[0].setExtremes(start, end);
}
},
extend_data: function(event) {
webDriver.jQuery("#wd_chart_ranges .wd_chart_range")
.removeClass("wd_chart_range-active")
.attr("aria-checked", "false")
.attr("tabindex", -1)
;
if (event.max == 1569340800000) {
for (range in this.ranges) {
if (event.min == this.ranges[range]) {
webDriver.jQuery("#wd_chart_range-"+range)
.addClass("wd_chart_range-active")
.attr("aria-checked", "true")
.attr("tabindex", 0)
;
}
}
}
var start = new Date(event.min);
webDriver.jQuery("#wd_chart_start_date").wd_datepicker("setDate", new Date(start.getUTCFullYear(), start.getUTCMonth(), start.getUTCDate()));
var end = new Date(event.max);
webDriver.jQuery("#wd_chart_end_date").wd_datepicker("setDate", new Date(end.getUTCFullYear(), end.getUTCMonth(), end.getUTCDate()));
var min;
if (this.data.close['minute']) {
min = this.data.close['minute'][0][0];
} else {
var now = new Date();
min = now.getTime() - 30*24*60*60*1000;
}
var size = (event.min 21*24*60*60*1000) ? 'day' : 'minute';
this.set_data_size(size, (size=='day') ? false : Math.floor(min/1000));
}
};
function rect_symbol(left, top, width, height, options) {
var right = left + width,
bottom = top + height,
ret,
r;
// No radius, return the more lightweight square
if (!options || !options.r) {
ret = this.symbols.square.apply(this, arguments);
// Has radius add arcs for the corners
} else {
r = Math.min(options.r, width/2, height/2);
ret = [
'M',
left + r, top,
'L',
right - r, top,
'A',
r, r,
0, 0, 1,
right, top + r,
'L',
right, bottom - r,
'A',
r, r,
0, 0, 1,
right - r, bottom,
'L',
left + r, bottom,
'A',
r, r,
0, 0, 1,
left, bottom - r,
'L',
left, top + r,
'A',
r, r,
0, 0, 1,
left + r, top
];
}
return ret;
}
function rectpin_symbol(x, y, w, h, options) {
var anchorX = options && options.anchorX,
anchorY = options && options.anchorY,
path = this.symbols.rect.apply(this, arguments);
if (anchorX && anchorY) {
path.push('M', anchorX, y + h, 'L', anchorX, anchorY);
}
return path;
};
if (Highcharts.SVGRenderer) {
Highcharts.SVGRenderer.prototype.symbols['rect'] = function(x, y, w, h, options) {
return rect_symbol.apply(Highcharts.SVGRenderer.prototype, arguments);
}
Highcharts.SVGRenderer.prototype.symbols['rectpin'] = function(x, y, w, h, options) {
return rectpin_symbol.apply(Highcharts.SVGRenderer.prototype, arguments);
}
}
if (Highcharts.VMLRenderer) {
Highcharts.VMLRenderer.prototype.symbols['rectpin'] = function(x, y, w, h, options) {
return rectpin_symbol.apply(Highcharts.VMLRenderer.prototype, arguments);
}
}
webDriver.jQuery(function() {
webDriver.jQuery.getJSON(
'../../investors-sub/index_php/',
{
ajax: "ir_quotes",
ticker: "BHTG",
data: "OHLCV",
size: "day",
min: 1446062400,
max: 1569355200 },
function(data) {
ir_interactivechart.load_data('day', data);
// set the allowed units for data grouping
var groupingUnits = [[
'minute',
[5, 10, 15, 30]
], [
'hour',
[1, 2, 3, 4]
], [
'day', // unit name
[1] // allowed multiples
], [
'week', // unit name
[1] // allowed multiples
], [
'month',
[1, 2, 3, 4, 6]
]];
var groupingLabels = {
millisecond: ["", "%A, %b %e, %H:%M:%S.%L", "-%H:%M:%S.%L"],
second: ["", "%A, %b %e, %H:%M:%S", "-%H:%M:%S"],
minute: ["", "%A, %b %e, %H:%M", "-%H:%M"],
hour: ["", "%A, %b %e, %H:%M", "-%H:%M"],
day: ["%A, %b %e, %Y", "%A, %b %e", "-%A, %b %e, %Y"],
week: ["Week from %A, %b %e, %Y", "%A, %b %e", "-%A, %b %e, %Y"],
month: ["%B %Y", "%B", "-%B %Y"],
year: ["%Y", "%Y", "-%Y"]
};
// create the chart
var chart = new Highcharts.StockChart({
chart: {
renderTo: 'ir_interactive_chart',
spacingTop: 5,
spacingBottom: 5,
spacingLeft: 0,
spacingRight: 0,
alignTicks: false,
backgroundColor: null,
borderColor: "#CCCCCC",
borderWidth: 0,
borderRadius: 5,
plotBackgroundColor: "#FFFFFF",
plotBorderColor: "#CCCCCC",
plotBorderWidth: 0,
events: {
load: function() {ir_interactivechart.init(this);}
}
},
credits: {enabled: false},
rangeSelector: {enabled: false},
navigator: {
series: {
lineWidth: 1, dummyArg: false
},
handles: {
backgroundColor: "#FFFFFF",
borderColor: "#666666" },
maskFill: "rgba(255,255,255,0.75)",
outlineColor: "#666666",
outlineWidth: 1,
yAxis: {
lineColor: "#666666",
gridLineColor: "#666666",
tickColor: "#666666",
labels: {
style: {
color: "#808080",
fontWeight: "normal" }
}
},
xAxis: {
lineColor: "#666666",
gridLineColor: "#666666",
tickColor: "#666666",
dateTimeLabelFormats: {
millisecond: "%H:%M:%S.%L",
second: "%H:%M:%S",
minute: "%H:%M",
hour: "%H:%M",
day: "%b %e",
week: "%b %e",
month: "%b '%y",
year: "%Y"
},
labels: {
style: {
color: "#808080",
fontWeight: "normal" }
}
}
},
scrollbar: {
barBackgroundColor: {linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#FFFFFF"],[1,"#CCCCCC"]]},
barBorderColor: "#666666",
barBorderWidth: 1,
barBorderRadius: 0,
rifleColor: "#666666",
buttonBackgroundColor: {linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#FFFFFF"],[1,"#CCCCCC"]]},
buttonBorderColor: "#666666",
buttonBorderWidth: 1,
buttonBorderRadius: 2,
buttonArrowColor: "#666666",
trackBackgroundColor: {linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#EEEEEE"],[1,"#FFFFFF"]]},
trackBorderColor: "#CCCCCC",
trackBorderWidth: 1,
trackBorderRadius: 2 },
yAxis: [{
title: {
text: 'Price',
style: {
color: "#808080",
fontWeight: "bold" }
},
top: 0,
height: 250,
maxPixelPadding: 0,
lineWidth: 2,
lineColor: "#CCCCCC",
gridLineWidth: 1,
gridLineColor: "#CCCCCC",
tickWidth: 0,
tickColor: "#CCCCCC",
opposite: true,
labels: {
align: 'left',
x: 2,
formatter: function() {
return Highcharts.currencyFormat(this.value,["${V}","-${V}"],-2,".",",");
},
style: {
color: "#808080",
fontWeight: "normal" }
}
}, {
title: {
text: 'Volume',
style: {
color: "#808080",
fontWeight: "bold" }
},
top: 270,
height: 100,
offset: 0,
lineWidth: 2,
lineColor: "#CCCCCC",
gridLineWidth: 1,
gridLineColor: "#CCCCCC",
tickWidth: 0,
tickColor: "#CCCCCC",
opposite: true,
labels: {
align: 'left',
x: 2,
style: {
color: "#808080",
fontWeight: "normal" }
}
}],
xAxis: {
top: 0,
height: 370,
offset: -120,
minRange: 3600000,
dayOffset: 57600000,
groupPixelWidth: 10,
events: {
setExtremes: function(event) {ir_interactivechart.extend_data(event);}
},
stickToMin: false,
stickToMax: false,
lineWidth: 2,
lineColor: "#CCCCCC",
gridLineWidth: 0,
gridLineColor: "#CCCCCC",
tickWidth: 1,
tickColor: "#CCCCCC",
dateTimeLabelFormats: {
millisecond: "%H:%M:%S.%L",
second: "%H:%M:%S",
minute: "%H:%M",
hour: "%H:%M",
day: "%b %e",
week: "%b %e",
month: "%b '%y",
year: "%Y"
},
labels: {
style: {
color: "#808080",
fontWeight: "normal" }
}
},
tooltip: {
backgroundColor: "rgba(255,255,255,.85)",
borderColor: null,
borderWidth: 2,
borderRadius: 3,
shadow: true,
crosshairs: [
{
color: "#CCCCCC",
width: 1 },
{
color: "#CCCCCC",
width: 0 }
],
useHTML: true,
style: {
color: null,
fontSize: '12px',
padding: '5px',
whiteSpace: 'nowrap',
width: 300
}
},
series: [{
type: 'area',
name: 'Price',
id: 'mountain',
data: ir_interactivechart.data.close['day'],
visible: true,
color: "#0079D6",
lineColor: "#0079D6",
marker: {
states: {
hover: {
lineColor: "#FFFFFF" }
}
},
fillColor: "rgba(223, 235, 247, 0.75)",
fillOpacity: "0.3",
tooltip: {
pointFormat: '
{series.name} :
{point.y} ',
valueFormatter: function(value) {return Highcharts.currencyFormat(value,["${V}","-${V}"],[2,4],".",",");}
},
threshold: null,
dataGrouping: {
approximation: 'close',
timeOffset: 1,
enabled: true,
forced: true,
dateTimeLabelFormats: groupingLabels,
groupTime: 'last',
units: groupingUnits
}
},{
type: 'line',
name: 'Price',
id: 'line',
data: ir_interactivechart.data.close['day'],
visible: false,
color: "#0079D6",
lineColor: "#0079D6",
marker: {
states: {
hover: {
lineColor: "#FFFFFF" }
}
},
tooltip: {
pointFormat: '
{series.name} :
{point.y} ',
valueFormatter: function(value) {return Highcharts.currencyFormat(value,["${V}","-${V}"],[2,4],".",",");}
},
threshold: null,
dataGrouping: {
approximation: 'close',
timeOffset: 1,
forced: true,
dateTimeLabelFormats: groupingLabels,
groupTime: 'last',
units: groupingUnits
}
},{
type: 'ohlc',
name: 'Price',
id: 'ohlc',
data: ir_interactivechart.data.ohlc['day'],
visible: false,
color: "#0079D6",
lineColor: "#0079D6",
tooltip: {
valueFormatter: function(value) {return Highcharts.currencyFormat(value,["${V}","-${V}"],[2,4],".",",");},
pointFormat: '
{series.name} ' +
'Open: {point.open}
' +
'High: {point.high}
' +
'Low: {point.low}
' +
'Close: {point.close}
'
},
threshold: null,
dataGrouping: {
approximation: 'ohlc',
timeOffset: 1,
forced: true,
dateTimeLabelFormats: groupingLabels,
groupTime: 'last',
units: groupingUnits
}
},{
type: 'candlestick',
name: 'Price',
id: 'candlestick',
data: ir_interactivechart.data.ohlc['day'],
visible: false,
color: "#880000",
lineColor: "#880000",
upColor: "#008800",
upLineColor: "#008800",
tooltip: {
pointFormat: '
{series.name} :
{point.y} ',
valueFormatter: function(value) {return Highcharts.currencyFormat(value,["${V}","-${V}"],[2,4],".",",");}
},
threshold: null,
dataGrouping: {
approximation: 'ohlc',
timeOffset: 1,
forced: true,
dateTimeLabelFormats: groupingLabels,
groupTime: 'last',
units: groupingUnits
}
},{
type: 'column_updown',
name: 'Volume',
id: 'volume',
data: ir_interactivechart.data.volume['day'],
color: "#880000",
borderColor: "#880000",
upColor: "#008800",
upBorderColor: "#008800",
tooltip: {
pointFormat: '
{series.name} :
{point.y} ',
},
yAxis: 1,
dataGrouping: {
approximation: 'sum',
timeOffset: 1,
forced: true,
dateTimeLabelFormats: groupingLabels,
groupTime: 'last',
units: groupingUnits
}
}]
});
}
);
});