当我试图在Mathematica中绘制一些财务时间序列时,我遇到了下图所示的问题:
2000年之后似乎不再处理数据了
有没有办法解决这个问题?
从Bloomberg或Excel导出时间序列以在Mathematic中使用它们的最佳格式(使用版本8)。
我知道FinancialData函数。但是,由于不知道确切的符号,因此直接使用Mathematica非常困难。
答案 0 :(得分:6)
为什么不使用WolframAlpha [...]函数 - 它导入原生Mathematica格式并上升到当前日期:
timeseries = WolframAlpha["msft close Jan 1, 2010 to Jan 21 2011",
{{"DateRangeSpecified:Close:FinancialData", 1}, "TimeSeriesData"}];
DateListPlot[timeseries]
这只是输入的一个例子。我不确定你需要什么样的数据,但是你可以通过WolframAlpha函数获得很多数据。阅读本文:
答案 1 :(得分:5)
使用DateFunction
选项告诉DateListPlot
如何转换日期:
DateFunction -> (DateList[{#, {"MonthNameShort", "YearShort"}}] &)
(括号很重要。)
答案 2 :(得分:3)
这是一个将这些日期字符串转换为Mathematica可以更好处理的格式的函数:
dateConv = With[{s = StringSplit[#, "-"]}, {DateList[{s[[2]], "YearShort"}][[1]],
DateList[s[[1]]][[2]]}] &
你可以尝试
DateListPlot[data, DateFunction -> dateConv]
编辑:我最初尝试DateList[{"Nov-11", {"MonthNameShort", "YearShort"}}]
,但这告诉我String "Nov-
11" cannot be interpreted as a date in format {"MonthNameShort",
"YearShort"}.
。也许是一个错误?