Message Boards Message Boards

GROUPS:

Intermittent behavior of FinancialData

Posted 4 years ago
6384 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

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

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.

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"]}]}]]

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:
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