pricehistory
Version:
Series data with technical indicators.
65 lines (64 loc) • 3.72 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
const option_set_1 = __importDefault(require("./option.set"));
const option_getVolumeRate_1 = __importDefault(require("./option.getVolumeRate"));
const candle_setDate_1 = __importDefault(require("./candle.setDate"));
const candle_setTime_1 = __importDefault(require("./candle.setTime"));
const candle_setPrice_1 = __importDefault(require("./candle.setPrice"));
const candle_setPriceLimit_1 = __importDefault(require("./candle.setPriceLimit"));
const candle_setVolume_1 = __importDefault(require("./candle.setVolume"));
const candle_setVWAP_1 = __importDefault(require("./candle.setVWAP"));
const candle_setRSI_1 = __importDefault(require("./candle.setRSI"));
const candle_setEMA_1 = require("./candle.setEMA");
const candle_setMACD_1 = __importDefault(require("./candle.setMACD"));
const candle_setColor_1 = __importDefault(require("./candle.setColor"));
const candle_setSMA_1 = __importDefault(require("./candle.setSMA"));
const candle_setCandlestick_1 = __importDefault(require("./candle.setCandlestick"));
const candle_setTrend_1 = __importDefault(require("./candle.setTrend"));
const candle_setCrossover_1 = __importDefault(require("./candle.setCrossover"));
const candle_setValueCap_1 = __importDefault(require("./candle.setValueCap"));
const candle_setCandleAnchor_1 = __importDefault(require("./candle.setCandleAnchor"));
const candles_normalize_1 = __importDefault(require("./candles.normalize"));
const candles_signalize_1 = __importDefault(require("./candles.signalize"));
function pricehistory(series = [], option = {}) {
const candles = [];
if (!series.length)
return candles;
(0, option_set_1.default)(option, series);
const volumeRate = (0, option_getVolumeRate_1.default)(option, series);
for (const curr of series) {
const candle = {};
(0, candle_setDate_1.default)(option, curr, candle);
(0, candle_setTime_1.default)(option, candle, candles[candles.length - 1]);
(0, candle_setPrice_1.default)(option, curr, candle, candles[candles.length - 1]);
(0, candle_setPriceLimit_1.default)(option, candle);
const series = [...candles, candle];
(0, candle_setVolume_1.default)(option, curr, candle, series, volumeRate);
(0, candle_setVWAP_1.default)(option, candle, series);
(0, candle_setVWAP_1.default)(option, candle, series.slice(-1), 1);
(0, candle_setRSI_1.default)(option, candle, series);
(0, candle_setEMA_1.setCandleEMA)(option, candle, series);
(0, candle_setMACD_1.default)(option, candle, series);
(0, candle_setColor_1.default)(option, candle, series);
for (const period of option.periods || []) {
if (series.length >= period) {
const seriesSlice = series.slice(-period);
(0, candle_setSMA_1.default)(option, candle, seriesSlice, period);
(0, candle_setVWAP_1.default)(option, candle, seriesSlice, period);
(0, candle_setColor_1.default)(option, candle, seriesSlice, period);
}
}
(0, candle_setCandlestick_1.default)(option, candle, series);
(0, candle_setTrend_1.default)(option, candle, series);
(0, candle_setCrossover_1.default)(option, candle, series);
(0, candle_setValueCap_1.default)(option, candle, series);
(0, candle_setCandleAnchor_1.default)(option, candle);
candles.push(candle);
}
(0, candles_normalize_1.default)(option, candles);
(0, candles_signalize_1.default)(option, candles);
return candles;
}
module.exports = pricehistory;