首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从股票工具中计算指标

从股票工具中计算指标
EN

Stack Overflow用户
提问于 2020-04-16 22:50:26
回答 1查看 154关注 0票数 1

我正在尝试实现一些技术指标系列,并将它们添加到股票工具的指标弹出中。如果我导入highcharts/indicators/indicators-all,我最终会得到几十个指标,所以我想只导入我需要的那些,到目前为止我还无法做到这一点,如果我导入highcharts/indicators/indicators,我最终只得到了SMA,我试图通过highcharts/indicators/indicators-INDICATOR-NAME导入其他的技术指标,但是它没有工作。

此外,我还想创建一个技术指标/函数,比如线性回归(来自示例),并将它们附加到弹出的指示器中。

代码语言:javascript
复制
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/emahighcharts/indicators/rsi )。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-20 11:12:58

这个特性不是在库存工具中实现的,但是它可能非常有用,所以您可以在这里创建一个新的特性请求:https://github.com/highcharts/highcharts/issues/new/choose

解决方案:

绘图选项中的所有指标系列都会添加到股票工具中,因此您可以自定义chart.options.plotOptions,例如在load事件中:

代码语言:javascript
复制
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://github.com/highcharts/highcharts/blob/371424be0b168de96aa6a58b81ce0b2b7f40d5c5/ts/annotations/popup.ts#L783

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61261368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档