Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

FinancialData["name"] and FinancialData["name", start] return respectively; the last known price, and the daily closing values for dates from start until the current date, for the financial entity - "name". One of the possible entities quoted is "Currency exchange rates" and while the Documentation's claims hold for the first case ...

Column[{
DateString[],
FinancialData[{"AUD", "USD"}],
WolframAlpha["AUD/USD", {{"Result", 1}, "Plaintext"},"PodStates" -> {"Result__More accuracy"}],
1/CountryData["Australia", "ExchangeRate"]
}]

(*
"Sat 26 Apr 2014 07:03:11"
0.9274
"$0.9282  (US dollars)"
$0.838801
*)

it doesn't appear to for the second ...

FinancialData[{"AUD", "USD"}, {2013}]
(* 
 Missing["NotAvailable"]
 *)

The Wolfram | Alpha query included above graphs a handful of previous years so some historical data can be extracted but clearly not in the systematic, fine-grained way one might expect from using FinancialData.

There is no mention of this particular missing data in the Documentation although apparently there can be periodic issues with the data sources and while directly accessing these sources offers a possible workaround, this only applies if the sources themselves provide API's for this historical data (which doesn't appear to be the case for one such source - Yahoo! Finance)

The documentation goes on to say:

FinancialDataprovides gateways to external financial data sources. Its use is subject to any restrictions associated with those sources, and may require additional licensing.

This is perhaps one such instance although few other claimed currency properties seem to be available and/or relevant (at least with my connection?)

With[{props = FinancialData[{"AUD", "USD"}, #] & /@ FinancialData[{"AUD", "USD"}, "Properties"]}, 
StringForm["`1` out of `2` of FinancialData's Currency Exchange properties available", 
Count[props, Except[_Missing | _FinancialData | {_Missing, ___}]],Length@props]]

(*
 4 out of 74 of FinancialData's Currency Exchange properties available
*)
share|improve this question
3  
The range of computational data available in Mathematica promises much but not making explicit current scope limitations is IMO unfortunate. Part of the power of the Wolfram Language lies in its generality and uniformity so it's a reasonable expectation that unless notified otherwise this will extend to data sources. Where it does not, either because curation is not yet possible or else subject to further licensing, making these explicit (perhaps graphically and/or through additional licensing instructions) would greatly assist users scoping out potential applications. – Ronald Monson Apr 26 '14 at 0:32
3  
The motivation of accessing this data comes from several recent hunches that the Australian dollar is significantly overvalued (anticipating a fall to ~80c by 2015 for future hunch-judgers) but don't particularly trust my intuition when it comes to predicting notorious currency movements - nor for that matter Australia's Reserve Bank or this country's economists. Whether big data-driven finance models can prove to be any less Sisyphean, Faustian or even King-Cnut-like is debatable but going there would at least appear inadvisable without access to such historical data. – Ronald Monson Apr 26 '14 at 0:34
    
Greetings! Make the most of Mma.SE and take the tour now. Help us to help you, write an excellent question. Edit if improvable, show due diligence, give brief context, include minimal working examples of code and data in formatted form. As you receive give back, vote and answer questions, keep the site useful, be kind, correct mistakes and share what you have learned. – rhermans Jan 28 at 16:05
2  
Indeed both questions seem highly related although they are posed differently. Some of the answers in that question are quite ingenious, but so are the ones provided here by the community. Can they be merged? – Manuel Feb 1 at 4:53
    
The only problem with a merge is the additional work required to make the answers here make sense for the question there; if the authors do not mind this I will happily perform the merge. – Mr.Wizard Feb 1 at 6:31
up vote 15 down vote accepted

You can get exchange rates from the Federal Reserve using their data download package maker at:- http://www.federalreserve.gov/datadownload/

See the link for Exchange Rates and International Data.

The package maker produces a download link that can be used as shown.

startdate = "12/31/1995";
enddate = DateString[{"Month", "/", "Day", "/", "Year"}];

fxdownload = Import@StringJoin[
    "http://www.federalreserve.gov/datadownload/Output.aspx?rel=H10&series=91c3fa18b51a37d6c8bb96f5263c9409&lastObs=&from=",
    startdate, "&to=", enddate,
    "&filetype=csv&label=include&layout=seriescolumn"];
fxdata = Drop[fxdownload, 6];
datelistfx = Cases[fxdata, {_, _?NumberQ}];
datelistfx[[All, 1]] = Join[ToExpression@StringSplit[#, "-"],
      {0, 0, 0.}] & /@ datelistfx[[All, 1]];

DateListPlot[datelistfx, Joined -> True,
 PlotLabel -> StringJoin["Daily AUD/USD from ",
   DateString[datelistfx[[1, 1]], {"Day", "/", "Month", "/", "Year"}], " to ",
   DateString[datelistfx[[-1, 1]], {"Day", "/", "Month", "/", "Year"}]]]

enter image description here

share|improve this answer

Mathematica 10 has a way to do this: http://www.wolfram.com/mathematica/new-in-10/dimensional-variables/convert-currencies-using-historical-exchange-rates.html

The relevant new functions in Mathematica 10 are DatedUnit[] and InflationAdjust[]. If I wanted to convert 1 USD to EUR using the January 1, 2015 exchange rate, for example, I would execute:

InflationAdjust[
  Quantity[1, DatedUnit["USDollars", {2015, 1, 1}]],
  DatedUnit["Euros", {2015, 1, 1}]
]

Then I could run QuantityMagnitude[] on the result to get just the numeric value.

share|improve this answer

Mathematica's FinancialData (and the economic data in CountryData, for that matter) promise much but for serious work you are often better off going to other sources. That way you are more likely to get more detailed metadata so you know what you re looking at.

In your specific case you are better off going to the Reserve Bank of Australia’s web site, and using Import to extract their historical data in XLS format: http://www.rba.gov.au/statistics/hist-exchange-rates/index.html

While you are there, have a look at http://www.rba.gov.au/publications/rdp/2011/2011-05.html and http://www.rba.gov.au/foi/disclosure-log/rbafoi-131412.html

share|improve this answer
    
Wow! Those Aussies know their job!:) – Dr. belisarius Apr 26 '14 at 22:17

You also can use:

Financial data from Quandl in Wolfram Language using QuandlLink

<< QuandlLink`

AUDvsUSDrates = QuandlFinancialData["CURRFX/AUDUSD",
    startDate -> "1995-1-1", endDate -> "2015-5-1"];

DateListPlot[Transpose[{#[[All, 1]], #[[All, 2, 1]]} &@Rest[AUDvsUSDrates]], 
 PlotTheme -> "Detailed"]

enter image description here

share|improve this answer

You may derive data from WolframAlfa request (10Y period). Copy the Pod Plot (de facto Graphics) and get InputForm: enter image description here

Let's give the name rate to the result. We are looking for rate[[1, 2, 1, ;;-3]] part of data, which is the list with each element of the form {AbsoluteTime, exchange_rate * 100}. Note that I deleted last 3 elements (;;-3).

So, we just need to convert AbsoluteTime to DateList and adjust exchange rates:

dates = (DateList /@ rate[[1, 2, 1, ;; -3, 1]])[[;; , 1 ;; 3]];
exchange = rate[[1, 2, 1, ;; -3, 2]]/100;

data = Thread[{dates, exchange}]

To check the data:

DateListPlot[data]

enter image description here

I hope that helps.

share|improve this answer
    
@Mr.Wizard, I am fine with the idea but not familiar with merge technique, so please feel free to do whatever is needed. – garej Feb 1 at 6:44

This is an extended comment rather than an answer.

There is some limited statistical data available by calling WolframAlpha. You have a choice of several formats for this data.

WolframAlpha["FinancialData[{\"AUD\",\"USD\"},{2013}]", {{"History", 1}, 
  "FormattedData"}, PodStates -> {"History__Last 10 years"}]

enter image description here

WolframAlpha["FinancialData[{\"AUD\",\"USD\"},{2013}]", {{"History", 1}, 
  "ComputableData"}, PodStates -> {"History__Last 10 years"}]

(*  {Missing["NotAvailable"], {{"10-year  minimum", 
   Quantity[1825.68, "AustralianDollars"]}, {"10-year  maximum", 
   Quantity[3335.82, "AustralianDollars"]}, {"10-year  average", 
   Quantity[2312.59, "AustralianDollars"]}}}  *)

WolframAlpha["FinancialData[{\"AUD\",\"USD\"},{2013}]", {{"History", 1}, 
  "QuantityData"}, PodStates -> {"History__Last 10 years"}]

(*  {Quantity[1825.68, "AustralianDollars"], 
 Quantity[3335.82, "AustralianDollars"], 
 Quantity[2312.59, "AustralianDollars"]}  *)

WolframAlpha["FinancialData[{\"AUD\",\"USD\"},{2013}]", {{"History", 1}, 
  "NumberData"}, PodStates -> {"History__Last 10 years"}]

(*  {1825.68, 3335.82, 2312.59}  *)
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.