Candlestick Chart & Time Series
npm install candlejs


git clone https://github.com/rp8/candlejs.git
cd candlejs
npm install
`
$3
`
npm install candlejs --save
`Dev & Test
1. npm run build
2. open test/candle.html in Chrome to test simple simulator & chart
3. open test/candle.html in Chrome to test more with tick data from files and simulator
4. npm run testUsages
`js
var cjs = require('candle');
`
$3
`js
var ticks = new cjs.TickSeries('AAPL');
ticks.on('changed', () => {
...
};
ticks.add(time, price, volume);
ticks.trimOldData(1000, 10000);
ticks.clear();
for var tick in ticks.data {
...
}
`
$3
`js
var dailyBars = new cjs.Bars('AAPL', 2436001000);
dailyBars.add(time, open, high, low, close, volume);
dailyBars.addTick(tick);
dailyBars.addTicks(ticks);
dailyBars.on('changed', () => {
...
});
...
dailyBars.clear();
`
$3
`js
var s = new cjs.Simulator(0.10, 100.00, 100);
s.onData((err, data) => {
...
});
s.start();
s.stop();
`
$3
`js
var chart = new cjs.CandleChart({candleWidth: 4});
var bars = new cjs.Bars('AAPL', 2436001000);
chart.addSeries(bars);
chart.outputTo(canvas);
chart.render();
chart.setDisplayRange(openTime, closeTime);
...
chart will update with the streaming data coming from bars.
`
$3
`js
var lr = new cjs.LineReader();
var bars = new cjs.Bars('AAPL', 2436001000);
bars.sort(function(a, b) {
return a[0] - b[0];
});var bars0 = [];
lr.on('end', function() {
for (i = 0; i < bars0.length; i++) {
var b = bars0[i];
bars.add(b[0], b[1], b[2], b[3], b[4], b[5]);
}
});
lr.on('line', function (line, next) {
if (line.indexOf('Date') === -1) {
var bar = line.split(',');
bars0.push([
new Date(bar[0]).getTime(),
parseFloat(bar[1]),
parseFloat(bar[2]),
parseFloat(bar[3]),
parseFloat(bar[4]),
parseFloat(bar[5])
]);
}
next();
});
lr.read($('file').files[0]);
`
$3
`html
``