Я учусь использовать R. У меня есть интерес к извлечению данных о запасах и вычислению различных технических индикаторов по данным о запасах. Мой тестовый тест - Google Finance. То есть я сверяю свои результаты с результатами GF.
Пытаясь реализовать какой-то анализ MACD, я заметил пару вещей. Это, вероятно, моя неправильная интерпретация документации. Я перепробовал множество вариантов и в некоторых случаях не могу получить согласие с номерами Google Finance.
library(quantmod)
дает мне MACD()
, который возвращает столбцы macd
и signal
.
library(fTrading)
дает мне cdsTA()
и cdoTA()
, которые возвращают cdsTA
и cdoTA
соответственно.
Мой тестовый запас - IBM, и, надеюсь, эта ссылка выведет график с ценами, объемом, медленной стохастикой и MACD с гистограммой.
http://www.google.com//finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=Linear&chdeh=0&chfdeh=0&chdet=1298224745682&chddm=46920&chddi=86400&chls=CandleStick&q=NYSE:IBM&ntsp=0
Загрузка данных о ценах IBM в R и генерация значений трех функций выше для значений 8, 17, 9 и для MACD()
Я установил percent=FALSE
, что дает мне следующий вывод.
MACD(close, 8, 17, 9, maType="EMA", percent=FALSE)
cdsTA(close, lag1 = 8, lag2 = 17, lag3 = 9)
cdoTA(close, lag1 = 8, lag2 = 17, lag3 = 9)
date close macd signal cdsTA cdoTA
2011-02-07 164.17 3.187365 3.208984 3.208984 -0.7673435
2011-02-08 166.05 3.246812 3.216549 3.216549 -0.7996041
2011-02-09 164.65 3.052187 3.183677 3.183677 -1.0496306
2011-02-10 164.09 2.780047 3.102951 3.102951 -1.3332292
2011-02-11 163.85 2.496591 2.981679 2.981679 -1.5867962
2011-02-14 163.22 2.168977 2.819138 2.819138 -1.8408138
2011-02-15 162.84 1.846701 2.624651 2.624651 -2.0507546
2011-02-16 163.40 1.640518 2.427824 2.427824 -2.1262626
2011-02-17 164.24 1.550798 2.252419 2.252419 -2.0854783
2011-02-18 164.84 1.517145 2.105364 2.105364 -1.9968608
Если вы ссылаетесь на диаграмму финансов Google выше, столбцы cdsTA и macd идентичны и полностью согласуются с данными EMA Google. Значение MACD()
для macd al также довольно близко к GF. И вот я получаю
macd - сигнал = расхождение.
Однако cdoTA еще далеко. Что я делаю не так?