2016-03-02 10 views
2

Я знаю, что могу использовать пакет quantmod, чтобы легко получить финансовую информацию от Yahoo. Например, если я хочу, чтобы получить объем, P/E соотношение и дивидендную доходность:Как получить финансовую информацию ETF (например, NAV) от Yahoo (с помощью Quantmod)?

> library(quantmod) 
> AAPL <- getSymbols("AAPL") 
Warning message: 
In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m, : 
    downloaded length 167808 != reported length 200 
> what_metrics <- yahooQF(c("Name", 
+     "Volume", 
+     "P/E Ratio", 
+     "Dividend Yield" 
+      
+)) 
> 
> getQuote(AAPL, what=what_metrics) 
       Trade Time  Name Volume P/E Ratio Dividend Yield 
AAPL 2016-03-02 04:00:00 Apple Inc. 33143834  10.72   2.15 
> 
> 
> yahooQF() 

1: Ask              2: Average Daily Volume          
3: Ask Size             4: Bid              
5: Ask (Real-time)           6: Bid (Real-time)           
7: Book Value             8: Bid Size             
9: Change & Percent Change         10: Change             
11: Commission            12: Change (Real-time)          
13: After Hours Change (Real-time)       14: Dividend/Share           
15: Last Trade Date           16: Trade Date            
17: Earnings/Share           18: Error Indication (returned for symbol changed/invalid) 
19: EPS Estimate Current Year         20: EPS Estimate Next Year         
21: EPS Estimate Next Quarter         22: Float Shares            
23: Days Low             24: Days High            
25: 52-week Low            26: 52-week High            
27: Holdings Gain Percent          28: Annualized Gain           
29: Holdings Gain            30: Holdings Gain Percent (Real-time)      
31: Holdings Gain (Real-time)         32: More Info            
33: Order Book (Real-time)         34: Market Capitalization         
35: Market Cap (Real-time)         36: EBITDA             
37: Change From 52-week Low         38: Percent Change From 52-week Low       
39: Last Trade (Real-time) With Time       40: Change Percent (Real-time)        
41: Last Trade Size           42: Change From 52-week High         
43: Percent Change From 52-week High       44: Last Trade (With Time)         
45: Last Trade (Price Only)         46: High Limit            
47: Low Limit             48: Days Range            
49: Days Range (Real-time)         50: 50-day Moving Average         
51: 200-day Moving Average         52: Change From 200-day Moving Average      
53: Percent Change From 200-day Moving Average    54: Change From 50-day Moving Average      
55: Percent Change From 50-day Moving Average     56: Name              
57: Notes              58: Open              
59: Previous Close           60: Price Paid            
61: Change in Percent           62: Price/Sales            
63: Price/Book            64: Ex-Dividend Date           
65: P/E Ratio             66: Dividend Pay Date          
67: P/E Ratio (Real-time)          68: PEG Ratio            
69: Price/EPS Estimate Current Year       70: Price/EPS Estimate Next Year        
71: Symbol             72: Shares Owned            
73: Short Ratio            74: Last Trade Time           
75: Trade Links            76: Ticker Trend            
77: 1 yr Target Price           78: Volume             
79: Holdings Value           80: Holdings Value (Real-time)        
81: 52-week Range            82: Days Value Change          
83: Days Value Change (Real-time)        84: Stock Exchange           
85: Dividend Yield   

Есть ли подобный метод для загрузки финансовой информации специфична для ETFs (с помощью Yahoo или любых других источников)?

Например, как загрузить NAV или чистые активы для QQQ (фонда ETF)? Там нет СЧА для yahooQF

Спасибо заранее

+0

Вы проверили, возможно ли запросить 'QQQ' через' getSymbols() ', а затем попытались проверить, можете ли вы вообще запросить NAV? – kristang

+0

Я могу получить информацию, такую ​​как Open, Close, скорректированная цена и т. Д. Через 'getSymbols()' – Adrien

+0

. Тогда ваш следующий квест должен выяснить, действительно ли Yahoo.com имеет нужные данные, тогда вы можете выяснить способ получить его в Р. – kristang

ответ

1

Является ли это по линии того, что вы после этого? Он берет данные от Google, а не Yahoo, но вы можете, по крайней мере, получить последние несколько финансовых отчетов.

library(quantmod) 
ticker = "QQQ" 
statements = getFinancials(ticker, auto.assign=FALSE) 
balsheet = viewFinancials(statements, type="BS", period='A') 
print(balsheet) 

##            2015-09-30 2014-09-30 2013-09-30 2012-09-30 
## Cash & Equivalents         NA   NA   NA   NA 
## Short Term Investments        NA   NA   NA   NA 
## Cash and Short Term Investments     131.43  132.08  148.68  112.70 
## Accounts Receivable - Trade, Net      NA   NA   NA   NA 
## Receivables - Other         NA   NA   NA   NA 
## Total Receivables, Net       932.05 1842.94  446.23  816.86 
## Total Inventory          NA   NA   NA   NA 
## Prepaid Expenses          NA   NA   NA   NA 
## Other Current Assets, Total       NA   NA   NA   NA 
## Total Current Assets         NA   NA   NA   NA 
## Property/Plant/Equipment, Total - Gross    NA   NA   NA   NA 
## Accumulated Depreciation, Total      NA   NA   NA   NA 
## Goodwill, Net          NA   NA   NA   NA 
## Intangibles, Net          NA   NA   NA   NA 
## Long Term Investments       36804.99 42033.21 38231.09 34622.08 
## Other Long Term Assets, Total      NA   NA   NA   NA 
## Total Assets         37877.83 44031.17 38841.95 35551.64 
## Accounts Payable          NA   NA   NA   NA 
## Accrued Expenses         0.44  0.37  0.36  0.34 
## Notes Payable/Short Term Debt      0.00  0.00  0.00  0.00 
## Current Port. of LT Debt/Capital Leases    NA   NA   NA   NA 
## Other Current liabilities, Total    1054.28 1972.99  590.66  922.16 
## Total Current Liabilities       NA   NA   NA   NA 
## Long Term Debt          NA   NA   NA   NA 
## Capital Lease Obligations       NA   NA   NA   NA 
## Total Long Term Debt        0.00  0.00  0.00  0.00 
## Total Debt           0.00  0.00  0.00  0.00 
## Deferred Income Tax         NA   NA   NA   NA 
## Minority Interest         NA   NA   NA   NA 
## Other Liabilities, Total        NA   NA   NA   NA 
## Total Liabilities        1054.72 1973.36  591.02  922.50 
## Redeemable Preferred Stock, Total     NA   NA   NA   NA 
## Preferred Stock - Non Redeemable, Net    NA   NA   NA   NA 
## Common Stock, Total         NA   NA   NA   NA 
## Additional Paid-In Capital      48044.55 49073.07 46810.78 46058.95 
## Retained Earnings (Accumulated Deficit)  -6355.52 -7936.45 -8688.78 -9479.67 
## Treasury Stock - Common        NA   NA   NA   NA 
## Other Equity, Total         NA   NA   NA   NA 
## Total Equity         36823.11 42057.80 38250.93 34629.13 
## Total Liabilities & Shareholders&#39; Equity 37877.83 44031.17 38841.95 35551.64 
##  Shares Outs - Common Stock Primary Issue    NA   NA   NA   NA 
## Total Common Shares Outstanding     361.45  425.80  485.40  504.70 
## attr(,"col_desc") 
## [1] "As of 2015-09-30" "As of 2014-09-30" "As of 2013-09-30" "As of 2012-09-30" 

От этого вы можете вычислить NAV, предполагая NAV = Assets - Обязательства.

nav = balsheet["Total Assets", 1] - balsheet["Total Liabilities", 1] 
print(nav) 

## [1] 36823.11 
1
library(FinancialInstrument) 
currency(c("USD", "EUR")) 
exchange_rate("EURUSD") 
stock(c("SPY", "QQQ", "AAPL", "GS"), currency="USD") 
ls_stocks() 
ls_instruments() 
update_instruments.yahoo(ls_stocks()) 
update_instruments.masterDATA(ls_stocks()) 
getInstrument("SPY") 
getInstrument("QQQ") 

## > getInstrument("QQQ") 
## primary_id   :"QQQ" 
## currency   :"USD" 
## multiplier   :1 
## tick_size   :0.01 
## identifiers   : list() 
## type    :"stock" 
## name    :"PowerShares QQQ Trust, Series 1" 
## exchange   :"NGM" 
## avg.volume   :45327500 
## EPS     :23.6 
## EPS.current.year.est:1.34 
## book.value   :0 
## range.52wk   :"84.74 - 115.75" 
## defined.by   :"yahoo;masterDATA" 
## updated    : POSIXct, format: "2016-03-06 02:54:10" 
## Fund.Type   :"US Equity ETF" 

вы также можете использовать это:

library(qmao) 
getQuote("QQQ") 
getHoldings("QQQ") ## for holdings of ETF/MF 
1

ли это делать то, что вы хотите?

require(quantmod) 
setwd("C:/Users/your_path_here/downloads") 
stocks <- c("AXP","BA","CAT","CSCO","CVX","DD","DIS","GE","GS","HD","IBM","INTC","JNJ","JPM","KO","MCD","MMM","MRK","MSFT","NKE","PFE","PG","T","TRV","UNH","UTX","V","VZ","WMT","XOM") 

# equityList <- read.csv("EquityList.csv", header = FALSE, stringsAsFactors = FALSE) 
# names(equityList) <- c ("Ticker") 

for (i in 1 : length(stocks)) { 
     temp<-getFinancials(stocks[i],src="google",auto.assign=FALSE) 
     write.csv(temp$IS$A,paste(stocks[i],"_Income_Statement(Annual).csv",sep="")) 
     write.csv(temp$BS$A,paste(stocks[i],"_Balance_Sheet(Annual).csv",sep="")) 
     write.csv(temp$CF$A,paste(stocks[i],"_Cash_Flow(Annual).csv",sep="")) 
     write.csv(temp$IS$A,paste(stocks[i],"_Income_Statement(Quarterly).csv",sep="")) 
     write.csv(temp$BS$A,paste(stocks[i],"_Balance_Sheet(Quaterly).csv",sep="")) 
     write.csv(temp$CF$A,paste(stocks[i],"_Cash_Flow(Quaterly).csv",sep="")) 
} 

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

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