我正在使用 PHP,最近开始使用技术分析扩展TA-LIB来计算股票价格数据的指标。我在最简单的指标之一(简单移动平均线)上得到了我认为奇怪的结果,但我还没有弄清楚原因。我在 TA-LIB 论坛上发布了一个类似的问题,但是那里的活动非常低,我怀疑我可能很长时间都不会得到答案,如果有的话。
SMA 根据给定数量的先前价格数据点计算平均值。我遇到的问题最好用一个例子来说明。假设我有一组 10 个价格数据点,我想计算 SMA。为简单起见,让我们使用 4 的平均值。在计算这个值时,我们会期望一组新的 7 个平均值。但是,TA-LIB 返回 4,如下所示:
$sma=trader_sma($close,4);
echo"<pre>";
print_r($sma);
Array
(
[0] => Array
(
[0] =>
[1] => 0
[2] =>
)
[1] => Array
(
[0] =>
[1] => 1
[2] =>
)
[2] => Array
(
[0] =>
[1] => 2
[2] =>
)
[3] => Array
(
[0] =>
[1] => 3
[2] => 573.267
)
[4] => Array
(
[0] =>
[1] => 4
[2] => 565.307
)
[5] => Array
(
[0] =>
[1] => 5
[2] => 560.552
)
[6] => Array
(
[0] =>
[1] => 6
[2] => 557.382
)
)
正如你所看到的,我们在集合的开头得到了空值,正如预期的那样。但是,我们最后缺少数据点,并且丢失的数据点的数量始终对应于我平均的数据点数量。当我根据我的价格数据绘制移动平均线时,这会导致最后出现不自然的差距。
关于发生了什么的任何想法?