2016-08-29 11 views
3

Это касается данных о запасах, полученных от Yahoo Finance.Quantmod: извлечение дат расписания с yahoo EOD данные о ценах

Я ищу способ определения дат при разложении акций (или выпущены бонусные акции, это различие не имеет значения для текущей задачи).

Я не нашел конкретного ответа на эту проблему. Вот лучшее, что я мог думать:

require(quantmod) 
AAPL<- getSymbols("AAPL", from="1987-01-01",to="2016-08-01", auto.assign = F) 
# head(AAPL) 
# tail(AAPL)  
# assuming a minimum split of 10:11 
probableSplits<- which(Delt(Cl(AAPL)/Ad(AAPL)) <= -0.1)  
probableSplitDates<- index(AAPL)[probableSplits] 
x<- AAPL[c(probableSplits, ((probableSplits)-1))] 
x$tmpratio<- Cl(x)/Ad(x)  
x$splitRatio<- round(1/(1+Delt(x$tmpratio))) 
#Added Following 1 line for very old stocks with adjusted price in low decimals 
probableSplitDates<- index(x[x$splitRatio>1,]) 

x$splitRatio[probableSplitDates] 

chartSeries(AAPL["2014-06"],theme = chartTheme('white')) 

Я хотел бы знать, какие проблемы это решение может столкнуться.

Несмотря на то, что я использую Apple здесь, я ищу данные из индийских бирж (например, RELIANCE.NS), поэтому некоторые из конкретных источников США для перекрестных ссылок не будут работать для меня.

EDIT: Добавлен одну строку кода для старой исправленной цене в очень низких значений десятичных

+0

Полученное число разрывов должно быть проверено с помощью внешнего надежного источника, ограниченного выполнимостью. Например, приведенный выше пример AAPL можно проверить из [здесь] (https://www.stocksplithistory.com/apple/). Что касается акций NSE/BSE, вы можете попробовать [здесь] (http://economictimes.indiatimes.com/reliance-industries-ltd/infocompanybonus/companyid-13215.cmshere). Для большого количества тиккеров функция поиска по http может использоваться для проверки наличия/отсутствия истории с разбивкой внешних запасов. – OdeToMyFiddle

+0

@Osssan: Спасибо, что посмотрели на него. Я использовал данные AAPL, потому что он был поддающимся проверке на сайте, например, в магазинах. Поиск на основе HTTP с сайтов новостей, вероятно, будет очень грязным, особенно с большой дамбой тысяч символов. Но если ничего другого не будет, нужно прибегнуть к чему-то подобному. Но я мог бы избежать этого, если смогу. Я хотел знать, были ли люди пробовали этот подход выше и могут дать некоторое представление о том, какой квант ошибки он может вызвать. –

ответ

1

Вы могли бы использовать данные Раскол/дивидендов, который предоставляет Yahoo Finance.

require(quantmod) 
getSplits("RELIANCE.NS") 
#   RELIANCE.NS.spl 
# 1997-10-27    0.5 
# 2009-11-26    0.5 

Вы также можете использовать adjustOHLC, чтобы сделать установку для вас.

getSymbols("RELIANCE.NS") 
RELIANCE.NS.ADJ <- adjustOHLC(RELIANCE.NS) 
+0

Большое спасибо @Joshua. Интересно, как я пропустил getSplis()! Хотя я думаю, что значения getSplits будут связаны с Adjusted, и два будут отражать ту же ошибку данных, если они есть. Позвольте мне проверить результаты по некоторым известным данным и некоторым относительно неясным компаниям, а затем вернуться. –

+0

Извините, Джошуа, я был отправлен на дикую охоту на гусей, копая старые данные для этого. getSplits() - лучший вариант для меня. Очень ценю вашу помощь. Еще раз спасибо. Отмеченный ответ. некоторые проблемы с данными. Например, разделение на INFY.NS на «1999-02-08» показано на «1999-02-10». затрудняет внешнюю проверку, но хорошо. weerder rants, хотя: данные yahoo для INFY.NS [«2009-02»,] не показывают это изменение в тесной цене, только в скорректированной цене, что странно. Более того, данные из индийского фонда xchange сами по себе дают нелепые цены на 1999 год, а цены на yahoo больше соответствуют ежегодному репо. –

 Смежные вопросы

  • Нет связанных вопросов^_^