Я использую 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
)
)
Как видите, мы получаем нули в начале набора, как и ожидалось. Однако в конце нам не хватает точек данных, а количество отсутствующих точек данных всегда соответствует количеству точек данных, по которым я усредняю. Это приводит к неестественному разрыву в конце, когда я строю скользящую среднюю по своим ценовым данным.
Любые идеи о том, что происходит?