UNPKG

data-forge-to-highstock

Version:

Data-Forge plugin for transforming data to the Highstock format.

90 lines (74 loc) 2.48 kB
'use strict'; module.exports = function (dataForge) { var assert = require('chai').assert; var Enumerable = require('linq'); /** * Convert the data-frame to Highstock date+OHLC format. */ dataForge.DataFrame.prototype.toHighstockOHLC = function () { var self = this; var it = self.getIterator(); var columnNames = self.getColumnNames(); var output = []; while (it.moveNext()) { var pair = it.getCurrent(); var index = pair[0]; var row = pair[1]; assert.instanceOf(index, Date, "Expected DataFrame index to contain dates!"); assert.isNumber(row.Open, "Expected Open column to contain numbers!"); assert.isNumber(row.High, "Expected High column to contain numbers!"); assert.isNumber(row.Low, "Expected Low column to contain numbers!"); assert.isNumber(row.Close, "Expected Close column to contain numbers!"); output.push([ index.getTime(), row.Open, row.High, row.Low, row.Close, ]); } return output; }; /** * Convert the data-frame to Highstock date+value format. */ dataForge.DataFrame.prototype.toHighstock = function () { var self = this; var it = self.getIterator(); var columnNames = self.getColumnNames(); var output = []; while (it.moveNext()) { var pair = it.getCurrent(); var index = pair[0]; var values = pair[1]; assert.instanceOf(index, Date, "Expected index to contain dates!"); var row = Enumerable.from(columnNames) .select(function (columnName) { return values[columnName]; }) .toArray(); output.push([ index.getTime(), row, ]); } }; /** * Convert the column to Highstock date+value format. */ dataForge.Series.prototype.toHighstock = function () { var self = this; var it = self.getIterator(); var output = []; while (it.moveNext()) { var pair = it.getCurrent(); var index = pair[0]; var value = pair[1]; output.push([ index.getTime(), value, ]); } return output; }; };