Message Boards Message Boards

GROUPS:

Intermittent behavior of FinancialData

Posted 5 years ago
6564 Views
|
5 Replies
|
4 Total Likes
|

The function FinancialData accepts a starting date or a date range. Both are giving me intermittent failures, as seen below. When I execute the input below it gives me data perhaps 90% of the time, but for about 1 in 10, I get the error below. This occurs with other stocks as well, and with other date ranges, including those derived from DateList[]. It's making it quite difficult to produce a notebook which is guaranteed to execute.

Any ideas?

FinancialData["GE", {2011, 1, 1}];

FinancialData::notdate: {2011,1,1} is not a valid date range for FinancialData. >>
5 Replies

As long as historical quotes of a stock or index in available in Yahoo Finance, we can use following function to get financial data.

Options[YahooFinancialData] := {StartDate -> {0, 0, 0},  EndDate -> {0, 0, 0}, TradingPeriods -> "d"};

YahooFinancialData[id_String, opts : OptionsPattern[]] := 
 Module[
  {startDate, endDate, tradingPeriods},
  startDate = ToString /@ OptionValue[StartDate];
  endDate = ToString /@ OptionValue[EndDate];
  tradingPeriods = OptionValue[TradingPeriods];
  Import[
   "http://ichart.yahoo.com/table.csv?s=" <>
    id <>
    "&a=" <>
    startDate[[2]] <>
    "&b=" <>
    startDate[[3]] <>
    "&c=" <>
    startDate[[1]] <>
    "&d=" <>
    endDate[[2]] <>
    "&e=" <>
    endDate[[3]] <>
    "&f=" <>
    endDate[[1]] <>
    "&g=" <>
    tradingPeriods,
    "Data"
   ]
  ]

For more information on how to use the function please check the attached notebook.

Attachments:

FinancialData is basically a wrapper for Yahoo Finance's API and a couple of others. It's possible this might be caused by some issue with their API.

Instead of

FinancialData["GE", {2011, 1, 1}]

try evaluating:

Import["http://ichart.finance.yahoo.com/table.csv?s=GE&a=0&b=1&c=2011&d=9&e=12&f=2014&g=d"]

Does this work? If not, then Yahoo's Finance API is down for some reason.

There are other ways of getting financial data into Mathematica. One is via the WolframAlpha function:

http://support.wolfram.com/kb/7357

Or you can use the EntityFramework. Hit "Ctrl + = " and type something like "GE closing prices since 2011"

query

It shows you what code you'd use for this task:

the resulting code

In copyable code that's:

EntityValue[Entity["Financial", "NYSE:GE"], EntityProperty["Financial", "Close", {"Date" -> Interval[{DateObject[{2011}], DateObject["today"]}]}]]

I don't think so. I don't have any problems with kernels or evaluation. It is just FinancialData function which sometimes works fine and sometimes gives the following error.

FinancialData::notdate: {2011,1,1} is not a valid date range for FinancialData.

I am having the same exact problem. FinancialData has become unreliable recently.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract