# Historical Exchange Rates via FinancialData

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
*)

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

See the link for Exchange Rates and International Data.

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

startdate, "&to=", enddate,
"&filetype=csv&label=include&layout=seriescolumn"];
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"}]]]


-

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

-
Wow! Those Aussies know their job!:) –  belisarius Apr 26 '14 at 22:17

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.

-