From: DrMajorBob on
Very nice!

Bobby

On Fri, 01 Jan 2010 04:34:06 -0600, Chris Degnen <degnen(a)cwgsy.net> wrote:

> On 31 Dec, 08:18, robert prince-wright <robertprincewri...(a)yahoo.com>
> wrote:
>> Does anyone know how to get the names corresponding to the currencies
>> available from FinancialData? If you use the command below you get a
>> list of 153 currencies - some of which are obscure so i was hoping to
>> generate the names!
>>
>> currencyTickers = FinancialData["Currencies"]
>>
>> Also, why does FinancialData not give historical data for say GBP/USD?
>> EUR/USD works, albeit over a limited time span, so you would think the
>> data would be there for sterling. Several others don't work either....
>> perhaps this is a data server issue?
>>
>> R
>
> Here's some code for getting exchange rate history. Note the pages on
> the Fed have slightly differing formats and are parsed accordingly.
> Fortunately they don't change over time.
> (If you're reading this post on the MathGroup beware the posting
> program may have inserted semi-colons after the URLs. If so, they
> should be deleted.)
>
> (* Extract EUR/USD exhange rate *)
> euData1=Import["http://www.federalreserve.gov/releases/h10/hist/
> dat00_eu.txt","Data"];
> euData2={StringReplace[#," "<>" "..->","]}&/@euData1;
> euData3=Select[euData2,StringLength[#]=={16}&];
> euData4=First[StringSplit[#,","]]&/@euData3;
> euData5={DateList[#[[1]]],ToExpression[#[[2]]]}&/@euData4;
> (* Extract GBP/USD exhange rate *)
> ukData1=Import["http://www.federalreserve.gov/releases/h10/hist/
> dat00_uk.txt","Data"];
> ukData2={StringReplace[#[[1]]," "<>" "..->","]}&/@ukData1;
> ukData3=Select[ukData2,StringLength[#]=={17}&];
> ukData4=First[StringSplit[#,", "]]&/@ukData3;
> ukData5={DateList[#[[1]]],ToExpression[#[[2]]]}&/@ukData4;
> (* Plot exchange rates *)
> Print[DateListPlot[{euData5,ukData5},ImageSize->600,PlotLabel->Style
> ["\nExchange Rate History",20],Joined->True,Epilog->{Inset[Style["GBP/
> USD",12,Bold,Hue[106/117,0.6,0.6]],Automatic,{6,-7}],
> Inset[Style["EUR/GBP",12,Bold,Hue[0.67,0.6,0.6]],Automatic,{-4,1}]}]];
>


--
DrMajorBob(a)yahoo.com

From: robert prince-wright on
hi - I am curious about your comment that the data are not accurate. WRI say the data comes from Yahoo Finance so I am wondering why this would be wrong. Can you post some examples?

Robert




________________________________
From: E. Martin-Serrano <eMartinSerrano(a)telefonica.net>
Sent: Fri, January 1, 2010 4:37:07 AM
Subject: Re: Financial Data - Currencies

Hi,

Three years span

(* It works for several years span. See a good example from the David Park's
"Presentation" package *)

ClearAll[GetFinancialData];
GetFinancialData::usage =
"GetFinancialData[name, {property1,property2...},iterator] will
generate a data set where each record will contain {datelist,
propertyvalues..}. The iterator is the standard {start,end, period}
used in FinancialData. This is basically a method of retrieving a
number of property values at once.";
SyntaxInformation[
GetFinancialData] = {"ArgumentsPattern" -> {_, {_, __}, _}};
GetFinancialData[name_String, {first_String, rest__String},
iterator_List] :=
Module[{work, other},
work = Transpose(a)FinancialData[name, first, iterator];
other = FinancialData[name, #, iterator, "Value"] & /@ {rest};
Transpose[Join[work, other]]
]

(* Test *)

GetFinancialData["EUR/USD", {"Open", "Close", "Low",
"High"}, {"Dec 1 2006", "Dec 30 2009", "Day"}]


(* Remark *)


Works perfect. Anyway, the data so obtained does not seem to be reliable, I
mean the source does not seem to be reliable. It does not coincide with
other series that I got fromm other sources. Does anyone know how these
series are being generated?


E. Martin-SErrano
_________________________________________

-----Original Message-----
From: robert prince-wright [mailto:robertprincewright(a)yahoo.com]
Sent: Thursday, December 31, 2009 9:19 AM
Subject: Financial Data - Currencies

Does anyone know how to get the names corresponding to the currencies
available from FinancialData? If you use the command below you get a list of
153 currencies - some of which are obscure so i was hoping to generate the
names!

currencyTickers = FinancialData["Currencies"]

Also, why does FinancialData not give historical data for say GBP/USD?
EUR/USD works, albeit over a limited time span, so you would think the data
would be there for sterling. Several others don't work either.... perhaps
this is a data server issue?



R


From: E. Martin-Serrano on
Hi,

Hi,

The Import/connection

euData1 = Import["http://www.federalreserve.gov/releases/h10/hist/
dat00_eu.txt", "Data"]

fails to work in my computer and returns $Failed plus the following message:

**FetchURL::conopen: The connection to URL
http://www.federalreserve.gov/releases/h10/hist/
dat00_eu.txt cannot be opened. If the URL is correct, you might need
to configure your firewall program, or you might need to set a proxy
in the Internet Connectivity tab of the Preferences dialog (or by
calling SetInternetProxy).**

My SetInternetProxy setting in the *preferences* tab is: *Use Proxy settings
from my system or browser*

However, the direct connection via browser works fine, so it should work
inside the Mathematica expression too, I think. And I do not see any
semicolon after the URL, as you warn, in the MathGroup post.

E. Martin-Serrano


-----Original Message-----
From: Chris Degnen [mailto:degnen(a)cwgsy.net]
Sent: Friday, January 01, 2010 11:34 AM
Subject: Re: Financial Data - Currencies

On 31 Dec, 08:18, robert prince-wright <robertprincewri...(a)yahoo.com>
wrote:
> Does anyone know how to get the names corresponding to the currencies
available from FinancialData? If you use the command below you get a list of
153 currencies - some of which are obscure so i was hoping to generate the
names!
>
> currencyTickers = FinancialData["Currencies"]
>
> Also, why does FinancialData not give historical data for say GBP/USD?
EUR/USD works, albeit over a limited time span, so you would think the data
would be there for sterling. Several others don't work either.... perhaps
this is a data server issue?
>
> R

Here's some code for getting exchange rate history. Note the pages on
the Fed have slightly differing formats and are parsed accordingly.
Fortunately they don't change over time.
(If you're reading this post on the MathGroup beware the posting
program may have inserted semi-colons after the URLs. If so, they
should be deleted.)

(* Extract EUR/USD exhange rate *)
euData1=Import["http://www.federalreserve.gov/releases/h10/hist/
dat00_eu.txt","Data"];
euData2={StringReplace[#," "<>" "..->","]}&/@euData1;
euData3=Select[euData2,StringLength[#]=={16}&];
euData4=First[StringSplit[#,","]]&/@euData3;
euData5={DateList[#[[1]]],ToExpression[#[[2]]]}&/@euData4;
(* Extract GBP/USD exhange rate *)
ukData1=Import["http://www.federalreserve.gov/releases/h10/hist/
dat00_uk.txt","Data"];
ukData2={StringReplace[#[[1]]," "<>" "..->","]}&/@ukData1;
ukData3=Select[ukData2,StringLength[#]=={17}&];
ukData4=First[StringSplit[#,", "]]&/@ukData3;
ukData5={DateList[#[[1]]],ToExpression[#[[2]]]}&/@ukData4;
(* Plot exchange rates *)
Print[DateListPlot[{euData5,ukData5},ImageSize->600,PlotLabel->Style
["\nExchange Rate History",20],Joined->True,Epilog->{Inset[Style["GBP/
USD",12,Bold,Hue[106/117,0.6,0.6]],Automatic,{6,-7}],
Inset[Style["EUR/GBP",12,Bold,Hue[0.67,0.6,0.6]],Automatic,{-4,1}]}]];


From: E. Martin-Serrano on
Thank you Bob,

Here, one can get every exchange rate for the Euro against most of the
currencies (up to 32) from 1999/4/1 to the present date. It comes in
Excel CSV and other formats from the ECB website.

http://www.ecb.eu/stats/exchange/eurofxref/html/index.en.html

The problem is that one needs the *High*, *Low*, *Opening* and *Closing*
trading values for the EURO/USD rate serie and not just the closing
value as given by the ECB. The data available from WRI does not seem to
be accurate (only two decimal positions, the gap you have showed, and
*High*, *Low*, *Opening* and *Closing* "confusing" values, since for
most days the four values are equal, which is imposible for at least the
*High*, *Low* and pretty rare for the *Opening* and *Closing*. The
candlestick charts for trade analiysys are just based in the intra-day
differences in value of all those magnitudes.

Thanks again

E. Martin-Serrano

-----Original Message-----
From: DrMajorBob [mailto:btreat1(a)austin.rr.com]
Sent: Saturday, January 02, 2010 12:30 AM
To: E. Martin-Serrano; mathgroup(a)smc.vnet.net
Subject: Re: Re: Financial Data - Currencies

> (* It works for several years span. See a good example from the David
> Park's "Presentation" package *)

Yes, it works... if you don't mind most of the data being missing,
including a gap of 297 days:

data FinancialData["EUR/USD", {2000, 1, 1}];
dates = data[[All, 1]];
differences = DateDifference @@@ Partition[dates, 2, 1];
Length(a)dates
DateDifference @@ dates[[{1, -1}]]
{Median@#, Length@#} & /@ Split[differences, Max[##] < 6 &]

339

789

{{1, 102}, {297, 1}, {1, 235}}

DateListPlot(a)data

First(a)data

{{2007, 9, 27}, 1.42}

Your code attempts to get data beginning Dec 1 2006, but there isn't any
until Sept 27 2007... this for a currency about which Wiki says:

"The name euro was officially adopted on 16 December 1995. The euro was
introduced to world financial markets as an accounting currency on 1
January 1999..."

and

"As of November 2008, with more than =E2=82=AC751 billion in circulation, the euro
is the currency with the highest combined value of cash in circulation in
the world, having surpassed the U.S. dollar."

Bobby

On Fri, 01 Jan 2010 04:37:07 -0600, E. Martin-Serrano
<eMartinSerrano(a)telefonica.net> wrote:

> Hi,
>
> Three years span
>
> (* It works for several years span. See a good example from the David
> Park's
> "Presentation" package *)
> ClearAll[GetFinancialData];
> GetFinancialData::usage =
> "GetFinancialData[name, {property1,property2...},iterator] will
> generate a data set where each record will contain {datelist,
> propertyvalues..}. The iterator is the standard {start,end, period}
> used in FinancialData. This is basically a method of retrieving a
> number of property values at once.";
> SyntaxInformation[
> GetFinancialData] = {"ArgumentsPattern" -> {_, {_, __}, _}};
> GetFinancialData[name_String, {first_String, rest__String},
> iterator_List] :=
> Module[{work, other},
> work = Transpose(a)FinancialData[name, first, iterator];
> other = FinancialData[name, #, iterator, "Value"] & /@ {rest};
> Transpose[Join[work, other]]
> ]
>
> (* Test *)
>
> GetFinancialData["EUR/USD", {"Open", "Close", "Low",
> "High"}, {"Dec 1 2006", "Dec 30 2009", "Day"}]
>
>
> (* Remark *)
>
>
> Works perfect. Anyway, the data so obtained does not seem to be
> reliable, I
> mean the source does not seem to be reliable. It does not coincide with
> other series that I got fromm other sources. Does anyone know how these
> series are being generated?
>
>
> E. Martin-SErrano
> _________________________________________
>
> -----Original Message-----
> From: robert prince-wright [mailto:robertprincewright(a)yahoo.com]
> Sent: Thursday, December 31, 2009 9:19 AM
> To: mathgroup(a)smc.vnet.net
> Subject: Financial Data - Currencies
>
> Does anyone know how to get the names corresponding to the currencies
> available from FinancialData? If you use the command below you get a
> list of
> 153 currencies - some of which are obscure so i was hoping to generate
> the
> names!
>
> currencyTickers = FinancialData["Currencies"]
>
> Also, why does FinancialData not give historical data for say GBP/USD?
> EUR/USD works, albeit over a limited time span, so you would think the
> data
> would be there for sterling. Several others don't work either.... perhaps
> this is a data server issue?
>
>
>
> R
>
>
>


--
DrMajorBob(a)yahoo.com


From: E. Martin-Serrano on
-----Original Message-----
From: E. Martin-Serrano [mailto:eMartinSerrano(a)telefonica.net]
Sent: Saturday, January 02, 2010 12:01 PM
To: 'robert prince-wright'
Subject: FW: Re: Financial Data - Currencies

Robert,

Just by following the variation between the exchange EUR/USD rates
during the day at Bloomberg, or other site, you can see that the
variation or EUR/USD volatility is really high, so the *high* and *low*
values are very different every day and so are they for the market
*open* and *close* values due to the transactions made in different
markets (Asia and Europe) before New York opens. The data is referenced
to the NewYork market according to the WRI documentation.

The WRI values for the properties *High*, *Low*, *Opening* and *Closing*
seems to be the same (equal) every day, or, maybe I am wrongly
extracting the data. See the routine below and perform you own check if
you wish.

I have performed several checks and tis is what I got.

Look at this example: between 2009-12-30 and 2009,12,1



{{" Date ", "Open", "Close", "Low", "High"},
{"{2009, 12, 1 }", "1.51", "1.51", "1.51", "1.51"},
"{2009, 12, 2 }", "1.51", "1.51", "1.51", "1.51"},
"{2009, 12, 4 }", "1.51", "1.51", "1.51", "1.51"},
"{2009, 12, 7 }", "1.48", "1.48", "1.48", "1.48"},
"{2009, 12, 8 }", "1.48", "1.48", "1.48", "1.48"},
"{2009, 12, 9 }", "1.48", "1.48", "1.48", "1.48"},
"{2009, 12, 10}", "1.47", "1.47", "1.47", "1.47"},
"{2009, 12, 11}", "1.48", "1.48", "1.48", "1.48"},
"{2009, 12, 14}", "1.46", "1.46", "1.46", "1.46"},
"{2009, 12, 15}", "1.45", "1.45", "1.45", "1.46"},
"{2009, 12, 16}", "1.46", "1.46", "1.46", "1.46"},
"{2009, 12, 17}", "1.44", "1.44", "1.44", "1.44"},
"{2009, 12, 18}", "1.44", "1.44", "1.44", "1.44"},
"{2009, 12, 21}", "1.43", "1.43", "1.43", "1.43"},
"{2009, 12, 22}", "1.43", "1.43", "1.43", "1.43"},
"{2009, 12, 23}", "1.42", "1.42", "1.42", "1.42"},
"{2009, 12, 24}", "1.44", "1.44", "1.44", "1.44"},
"{2009, 12, 28}", "1.44", "1.44", "1.44", "1.44"},
"{2009, 12, 29}", "1.44", "1.44", "1.44", "1.44"},
"{2009, 12, 30}", "1.43", "1.43", "1.43", "1.43"}}

I have performed several checks with the same results. Maybe I am
missing something in the WRI ocumentantion.

Emilio.

-----Original Message-----
From: E. Martin-Serrano [mailto:eMartinSerrano(a)telefonica.net]
Sent: Saturday, January 02, 2010 10:21 AM
To: 'mathgroup(a)smc.vnet.net'
Subject: RE: Re: Financial Data - Currencies

Thank you Bob,

Here, one can get every exchange rate for the Euro against most of the currencies (up to 32) from 1999/4/1 to the present date. It comes in Excel CSV and other formats from the ECB website.

http://www.ecb.eu/stats/exchange/eurofxref/html/index.en.html

The problem is that one needs the *High*, *Low*, *Opening* and *Closing* trading values for the EURO/USD rate serie and not just the closing value as given by the ECB. The data available from WRI does not seem to be accurate (only two decimal positions, the gap you have showed, and *High*, *Low*, *Opening* and *Closing* "confusing" values, since for most days the four values are equal, which is imposible for at least the *High*, *Low* and pretty rare for the *Opening* and *Closing*. The candlestick charts for trade analysis are just based in the intra-day differences in value of all those magnitudes.

Thanks again

E. Martin-Serrano

-----Original Message-----
From: DrMajorBob [mailto:btreat1(a)austin.rr.com]
Sent: Saturday, January 02, 2010 12:30 AM
To: E. Martin-Serrano; mathgroup(a)smc.vnet.net
Subject: Re: Re: Financial Data - Currencies

> (* It works for several years span. See a good example from the David
> Park's "Presentation" package *)

Yes, it works... if you don't mind most of the data being missing,
including a gap of 297 days:

data = FinancialData["EUR/USD", {2000, 1, 1}];
dates = data[[All, 1]];
differences = DateDifference @@@ Partition[dates, 2, 1];
Length(a)dates
DateDifference @@ dates[[{1, -1}]]
{Median@#, Length@#} & /@ Split[differences, Max[##] < 6 &]

339

789

{{1, 102}, {297, 1}, {1, 235}}

DateListPlot(a)data

First(a)data

{{2007, 9, 27}, 1.42}

Your code attempts to get data beginning Dec 1 2006, but there isn't any
until Sept 27 2007... this for a currency about which Wiki says:

"The name euro was officially adopted on 16 December 1995. The euro was
introduced to world financial markets as an accounting currency on 1
January 1999..."

and

"As of November 2008, with more than =E2=82=AC751 billion in circulation, the euro
is the currency with the highest combined value of cash in circulation in
the world, having surpassed the U.S. dollar."

Bobby

On Fri, 01 Jan 2010 04:37:07 -0600, E. Martin-Serrano
<eMartinSerrano(a)telefonica.net> wrote:

> Hi,
>
> Three years span
>
> (* It works for several years span. See a good example from the David
> Park's
> "Presentation" package *)
> ClearAll[GetFinancialData];
> GetFinancialData::usage =
> "GetFinancialData[name, {property1,property2...},iterator] will
> generate a data set where each record will contain {datelist,
> propertyvalues..}. The iterator is the standard {start,end, period}
> used in FinancialData. This is basically a method of retrieving a
> number of property values at once.";
> SyntaxInformation[
> GetFinancialData] = {"ArgumentsPattern" -> {_, {_, __}, _}};
> GetFinancialData[name_String, {first_String, rest__String},
> iterator_List] :=
> Module[{work, other},
> work = Transpose(a)FinancialData[name, first, iterator];
> other = FinancialData[name, #, iterator, "Value"] & /@ {rest};
> Transpose[Join[work, other]]
> ]
>
> (* Test *)
>
> GetFinancialData["EUR/USD", {"Open", "Close", "Low",
> "High"}, {"Dec 1 2006", "Dec 30 2009", "Day"}]
>
>
> (* Remark *)
>
>
> Works perfect. Anyway, the data so obtained does not seem to be
> reliable, I
> mean the source does not seem to be reliable. It does not coincide with
> other series that I got fromm other sources. Does anyone know how these
> series are being generated?
>
>
> E. Martin-SErrano
> _________________________________________
>
> -----Original Message-----
> From: robert prince-wright [mailto:robertprincewright(a)yahoo.com]
> Sent: Thursday, December 31, 2009 9:19 AM
> To: mathgroup(a)smc.vnet.net
> Subject: Financial Data - Currencies
>
> Does anyone know how to get the names corresponding to the currencies
> available from FinancialData? If you use the command below you get a
> list of
> 153 currencies - some of which are obscure so i was hoping to generate
> the
> names!
>
> currencyTickers = FinancialData["Currencies"]
>
> Also, why does FinancialData not give historical data for say GBP/USD?
> EUR/USD works, albeit over a limited time span, so you would think the
> data
> would be there for sterling. Several others don't work either.... perhaps
> this is a data server issue?
>
>
>
> R
>
>
>


--
DrMajorBob(a)yahoo.com