Re: FinancialData still broken
- To: mathgroup at smc.vnet.net
- Subject: [mg120686] Re: FinancialData still broken
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Wed, 3 Aug 2011 19:20:04 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201108031106.HAA10833@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
In addition to the copy/paste garble defining k, "sp" was undefined,
leading to Part and StringSplit errors. It should have been "nl".
Historical[sym_, start_, end_] :=
Module[{k, lnk, s, z, nl, hd, tbl},
k = "http://finance.yahoo.com/q/hp?s=#&a=#&b=#&c=#&d=#&e=#&f=#&g=#";\
lnk = StringReplace[k, "#" -> sym, 1];
(* Note: Chart Month is zero based *)
s = DateList[start][[;; 3]];
lnk = StringReplace[lnk, "#" -> ToString[s[[2]] - 1], 1];
lnk = StringReplace[lnk, "#" -> ToString[s[[3]]], 1];
lnk = StringReplace[lnk, "#" -> ToString[s[[1]]], 1];
s = DateList[end][[;; 3]];
lnk = StringReplace[lnk, "#" -> ToString[s[[2]] - 1], 1];
lnk = StringReplace[lnk, "#" -> ToString[s[[3]]], 1];
lnk = StringReplace[lnk, "#" -> ToString[s[[1]]], 1];
z = Import[lnk];
nl = StringPosition[z, "\n"][[All, 1]];
(* Extract Heading *)
hd = StringTake[z, {nl[[13]] + 1, nl[[14]] - 2}];
hd = Append[StringSplit[hd, " "][[;; -3]], "Adj Close"];
hd = Join[{"Month", "Day", "Year"}, Rest[hd]];
(* Remove text from beginning and end *);
tbl = StringTake[z, {nl[[14]] + 1, nl[[-12]] - 1}];
tbl = StringReplace[tbl, "," -> ""];
tbl = StringSplit[tbl, "\n"];
tbl = Map[StringSplit, tbl];
TableForm[tbl, TableHeadings -> {Automatic, hd}]
]
Bobby
On Wed, 03 Aug 2011 06:06:40 -0500, Dana DeLouis <dana.del at gmail.com>
wrote:
> ...As you see, FinancialData says the price was 10.23.
> ...But I BOUGHT the stock through Janus Funds on that day, (10 Feb)
> ...and the price was 10.36.
>
> Don't know if this is of interest.
> Following Chris's example, this extracts data from the Historical Chart
> section at Yahoo Finance.
> There's probably a better way to write this.
> Here's the data on JANFX from 9-11 Feb, 2011
>
> Historical["JANFX","9 Feb 2011","11 Feb 2011"]
> Month Day Year Open High Low Close Volume Adj Close
> 1 Feb 11 2011 10.37 10.37 10.37 10.37 0 10.24
> 2 Feb 10 2011 10.36 10.36 10.36 10.36 0 10.23
> 3 Feb 9 2011 10.38 10.38 10.38 10.38 0 10.25
>
>
> Historical["JANFX", "1 Jun 2011", "31 Jul 2011"]
>
> <... Shows dividend on 30 June >
>
> One can change the ending character from d (daily) to w (for weekly),
> etc.
>
> Historical[sym_, start_, end_] := Module[
> {k, lnk, s, z, nl, hd, tbl},
> k = "http://finance.yahoo.com/q/hp?s=#&a=#&b=#&c=#&d=#&e=#&f=#&g=d=94;
> lnk = StringReplace[k, "#" -> sym, 1];
> (* Note: Chart Month is zero based *)
> s = DateList[start][[;; 3]];
> lnk = StringReplace[lnk, "#" -> ToString[s[[2]] - 1], 1];
> lnk = StringReplace[lnk, "#" -> ToString[s[[3]]], 1];
> lnk = StringReplace[lnk, "#" -> ToString[s[[1]]], 1];
> s = DateList[end][[;; 3]];
> lnk = StringReplace[lnk, "#" -> ToString[s[[2]] - 1], 1];
> lnk = StringReplace[lnk, "#" -> ToString[s[[3]]], 1];
> lnk = StringReplace[lnk, "#" -> ToString[s[[1]]], 1];
> z = Import[lnk];
> nl = StringPosition[z, "\n"][[All, 1]];
> (* Extract Heading *)
> hd = StringTake[z, {sp[[13]] + 1, sp[[14]] - 2}];
> hd = Append[StringSplit[hd, " "][[;; -3]], "Adj Close"];
> hd = Join[{"Month", "Day", "Year"}, Rest[hd]];
> (* Remove text from beginning and end *)
> tbl = StringTake[z, {nl[[14]] + 1, nl[[-12]] - 1}];
> tbl = StringReplace[tbl, "," -> ""];
> tbl = StringSplit[tbl, "\n"];
> tbl = Map[StringSplit, tbl];
> TableForm[tbl, TableHeadings -> {Automatic, hd}]
> ]
>
> = = = = = = = = = = = =
> HTH :>)
> Dana DeLouis
> $Version
> 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
>
>
>
>
> On Jul 21, 5:47 am, DrMajorBob <btre... at austin.rr.com> wrote:
>> Erroneous prices are randomly returned:
>>
>> FinancialData /@ {"ACEIX", "FCNTX", "JACNX", "JANFX", "JANWX",
>> "JMSCX", "JNGIX", "JNGLX", "JNMCX", "JNOSX", "JNSGX", "JNSTX",
>> "PTTAX", "RGACX", "STRFX"}
>>
>> {8.81, 72.4, 14., 10.64, 46.49, 12.48,
>> 5.03202*10^8, 26.48, 23.72, 45.35, 12.48,
>> 5.03241*10^8, 11.04, 31.44, 32.47}
>>
>> FinancialData /@ {"ACEIX", "FCNTX", "JACNX", "JANFX", "JANWX",
>> "JMSCX", "JNGIX", "JNGLX", "JNMCX", "JNOSX", "JNSGX", "JNSTX",
>> "PTTAX", "RGACX", "STRFX"}
>>
>> {5.03241*10^8, 72.4, 14., 10.64, 5.03241*10^8,
>> 5.03168*10^8, 32.61, 26.48, 23.72, 5.03168*10^8,
>> 5.03168*10^8, 3.1, 11.04, 5.03241*10^8, 32.47}
>>
>> Bobby
>>
>> --
>> DrMajor... at yahoo.com
>
>
>
--
DrMajorBob at yahoo.com
- References:
- Re: FinancialData still broken
- From: Dana DeLouis <dana.del@gmail.com>
- Re: FinancialData still broken