Re: For interest: oil prices with FX for comparison

*To*: mathgroup at smc.vnet.net*Subject*: [mg103890] Re: For interest: oil prices with FX for comparison*From*: Chris Degnen <degnen at cwgsy.net>*Date*: Sat, 10 Oct 2009 07:11:46 -0400 (EDT)*References*: <200910081149.HAA13464@smc.vnet.net> <han6ab$pie$1@smc.vnet.net>

On 9 Oct, 12:20, DrMajorBob <btre... at austin.rr.com> wrote: > > None of those file Imports work at my machine. (M7, iMac Snow Leopard) > Ok, this version should be 'copy&paste'-proof. The double whitespace that was getting converted to a single space is now explicitly written, e.g. StringReplace[#, " " <> " " .. -> ","]} Will I be foiled again?! (I doubt there's any problem with Import.) Incidentally, it takes a while to load because the oil price spreadsheet is quite large, and then the DateList conversions for the FX data aren't very quick either. Scaling the oil price in different currencies shows some interesting FX differences. Any coding improvement tips would be cheerfully received. Regards (*Oil price in dollars*) spotPrices = First@Import[ "http://www.eia.doe.gov/emeu/international/Crude1.xls";]; spotPriceWTI = Cases[spotPrices[[All, {1, 4}]], {_List, _?NumericQ}]; oilUSD = Select[spotPriceWTI, #[[1, 1]] >= 2000 &]; (*Oil price in euros*) 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; oilEUR = DeleteCases[{Cases[euData5, {#[[1]], _}], #[[2]]} & /@ oilUSD, {{}, _}]; (*Oil price in sterling*) 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; oilGBP = DeleteCases[{Cases[ukData5, {#[[1]], _}], #[[2]]} & /@ oilUSD, {{}, _}]; (*Oil Chart showing prices in dollars,euros and sterling*) Manipulate[ DateListPlot[{oilUSD, {#[[1, 1, 1]], EuroScaleFactor*#[[2]]/#[[1, 1, 2]]} & /@ oilEUR, {#[[1, 1, 1]], SterlingScaleFactor*#[[2]]/#[[1, 1, 2]]} & /@ oilGBP}, ImageSize -> 600, PlotLabel -> Style["Oil Prices - USD, EUR and GBP", Bold], Joined -> True, PlotRange -> {Automatic, {0, 160}}], {{EuroScaleFactor, 1}, 0, 2.5, Appearance -> "Labeled"}, {{SterlingScaleFactor, 1}, 0, 2.5, Appearance -> "Labeled"}]

**References**:**For interest: oil prices with FX for comparison***From:*"Chris Degnen" <degnen@cwgsy.net>