Stock chart: line graph over candle stick graph
HTML
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/themes/none.js"></script>
<script src="https://www.amcharts.com/lib/3/amstock.js"></script>
<script src="https://rawgit.com/ckknight/random-js/master/lib/random.min.js"></script>
<div id="chartdiv"></div>
CSS
#chartdiv {
width : 100%;
height : 500px;
}
JavaScript
var chartData = [];
var r = new Random(Random.engines.mt19937().seedWithArray([0x12345678, 0x90231def]));
generateChartData();
function generateChartData() {
var firstDate = new Date();
firstDate.setHours(0, 0, 0, 0);
firstDate.setDate(firstDate.getDate() - 2000);
var price = 100;
for (var i = 0; i < 2000; i++) {
var newDate = new Date(firstDate);
newDate.setDate(newDate.getDate() + i);
var open = price;
var close = open;
var low = close;
var high = close;
for (var j = 0; j < 300; j++) {
//price += Math.random() - 0.5;
var delta = r.real(-0.5, 0.5, true);
if(delta < 0) {
price += 1;
} else {
price -= 1;
}
low = Math.min(low, price);
high = Math.max(high, price);
}
close = price;
var volume = Math.round(Math.random() * (1000 + i)) + 100 + i;
var value = Math.round(Math.random() * (30) + 100);
chartData[i] = ({
date: newDate,
open: open,
close: close,
high: high,
low: low,
volume: volume,
value: value
});
}
}
var chart;
var run = function() {
console.log("aaa" + "aa");
if (chart) {
chart.clear();
chart = null;
chartData = [];
generateChartData();
//return;
}
chart = AmCharts.makeChart("chartdiv", {
type: "stock",
"theme": "none",
pathToImages: "http://www.amcharts.com/lib/3/images/",
dataSets: [{
fieldMappings: [{
fromField: "open",
toField: "open"
}, {
fromField: "close",
toField: "close"
}, {
fromField: "high",
toField: "high"
}, {
fromField: "low",
toField: "low"
}, {
fromField: "volume",
toField: "volume"
}, {
fromField: "value",
toField: "value"
}],
color: "#7f8da9",
dataProvider: chartData,
title: "West Stock",
categoryField: "date"
}],
panels: [{
title: "Value",
showCategoryAxis: false,
percentHeight: 70,
valueAxes: [{
dashLength:...