UNPKG

@stoqey/ibkr

Version:

NodeJS Interactive Brokers wrapper & utilities using @stoqey/ib

63 lines 2.39 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.aggregatedMarketDataToMin = exports.formatDateStr = void 0; exports.delay = delay; var moment_1 = __importDefault(require("moment")); // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types function delay(t, v) { if (v === void 0) { v = "someValue"; } return new Promise(function (resolve) { setTimeout(resolve.bind(null, v), t); }); } var formatDateStr = function (date) { var d = new Date(date); if (!date) { return ""; } if (d.toString() === "Invalid Date") { return ""; } return (0, moment_1.default)(d).format("YYYY-MM-DD HH:mm:ss"); }; exports.formatDateStr = formatDateStr; var aggregatedMarketDataToMin = function (mkd) { // Aggregate market data by minutes var aggregatedData = __spreadArray([], mkd, true).reduce(function (acc, data) { var minute = new Date(data.date).setSeconds(0, 0).toString(); if (!acc[minute]) { acc[minute] = __assign(__assign({}, data), { count: 1 }); } else { acc[minute].close += data.close; acc[minute].count += 1; } return acc; }, {}); return Object.values(aggregatedData).map(function (data) { return (__assign(__assign({}, data), { close: data.close / data.count })); }); }; exports.aggregatedMarketDataToMin = aggregatedMarketDataToMin; //# sourceMappingURL=time.utils.js.map