如何用1分钟的股价数据计算技术指标?

时间:2019-02-25 03:48:50

标签: stock stockquotes ta-lib technical-indicator

我正在使用TA-lib计算各种技术指标。我拥有的数据集是1分钟间隔的股票价格数据。最简单的方法是将390(一个交易日中的390分钟)乘以天数,例如计算5SMA,SMA(输入,timeperiod = 5 * 390)

是否有用于此目的的库或任何更好的解决方案?

1 个答案:

答案 0 :(得分:0)

这实际上取决于您正在寻找什么。如果您正在寻找平均每日价格,您必须将您的报价历史从分钟转换为每日大小的条形,然后以这种新格式运行它。 TA-Lib 是一个较旧的基于数组的库,因此在将数据放入数组之前,您必须在数据仍有日期/时间上下文时执行此工作。

这是一个 how to "quantize" quote history in C# 示例。

history
 .OrderBy(x => x.Date)
 .GroupBy(x => x.Date.RoundDown(newBarSize))
 .Select(x => new Quote
 {
   Date = x.Key,
   Open = x.First().Open,
   High = x.Max(t => t.High),
   Low = x.Min(t => t.Low),
   Close = x.Last().Close,
   Volume = x.Sum(t => t.Volume)
 });

这也可以在开源 Skender.Stock.Indicators 库中使用,例如可以简单地用作 history.Aggregate(PeriodSize.Day)

如果您正在寻找更现代的技术指标库,该库可以替代 TA-Lib。例如,它有一个 Indicator.GetSma(history,5) 方法,among others