我正在尝试实现一些技术指标系列,并将它们添加到股票工具的指标弹出中。如果我导入highcharts/indicators/indicators-all,我最终会得到几十个指标,所以我想只导入我需要的那些,到目前为止我还无法做到这一点,如果我导入highcharts/indicators/indicators,我最终只得到了SMA,我试图通过highcharts/indicators/indicators-INDICATOR-NAME导入其他的技术指标,但是它没有工作。
此外,我还想创建一个技术指标/函数,比如线性回归(来自这示例),并将它们附加到弹出的指示器中。
function getLinearRegression(xData, yData) {
var sumX = 0,
sumY = 0,
sumXY = 0,
sumX2 = 0,
linearData = [],
linearXData = [],
linearYData = [],
n = xData.length,
alpha,
beta,
i,
x,
y;
// Get sums:
for (i = 0; i < n; i++) {
x = xData[i];
y = yData[i];
sumX += x;
sumY += y;
sumXY += x * y;
sumX2 += x * x;
}
// Get slope and offset:
alpha = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
if (isNaN(alpha)) {
alpha = 0;
}
beta = (sumY - alpha * sumX) / n;
// Calculate linear regression:
for (i = 0; i < n; i++) {
x = xData[i];
y = alpha * x + beta;
// Prepare arrays required for getValues() method
linearData[i] = [x, y];
linearXData[i] = x;
linearYData[i] = y;
}
return {
xData: linearXData,
yData: linearYData,
values: linearData
};
}这可能吗?
编辑
要添加特定的技术指标,您应该添加一个导入高级图表/指标/名称(例如,highcharts/indicators/ema、highcharts/indicators/rsi )。
发布于 2020-04-20 11:12:58
这个特性不是在库存工具中实现的,但是它可能非常有用,所以您可以在这里创建一个新的特性请求:https://github.com/highcharts/highcharts/issues/new/choose。
解决方案:
绘图选项中的所有指标系列都会添加到股票工具中,因此您可以自定义chart.options.plotOptions,例如在load事件中:
chart: {
events: {
load: function() {
var plotOptions = this.options.plotOptions,
filteredSeries = {};
Highcharts.objectEach(plotOptions, function(option, key) {
if (!option.params || key === 'dema' || key === 'customlinearregression') {
filteredSeries[key] = option;
}
});
this.options.plotOptions = filteredSeries;
}
}
}现场演示: https://jsfiddle.net/BlackLabel/xwec9hr7/2/
有用的例子:https://www.highcharts.com/stock/demo/stock-tools-custom-gui
https://stackoverflow.com/questions/61261368
复制相似问题