【问题标题】:Date Format for MathematicaMathematica 的日期格式
【发布时间】:2012-01-17 14:51:52
【问题描述】:

当我试图在 Mathematica 中绘制一些金融时间序列时,我遇到了下图所示的问题:

似乎 2000 年后不再处理数据

有办法解决吗?

从 Bloomberg 或 Excel 导出时间序列以在 Mathematic 中使用它们的最佳格式是什么(使用版本 8)。

我知道 FinancialData 函数。但是,由于不知道确切的符号,因此直接使用 Mathematica 非常困难。

【问题讨论】:

  • 有趣的是,DateList[{"Nov 2011", {"MonthName", " ", "Year"}}] 不起作用(尝试一下),即使StringMatchQ["Nov 2011", DatePattern[{"MonthName", " ", "Year"}]] 提供了True。我怀疑一个错误。

标签: datetime wolfram-mathematica quantitative-finance


【解决方案1】:

为什么不使用 WolframAlpha[...] 函数 - 它以 Mathematica 格式导入本机并更新到当前日期:

    timeseries = WolframAlpha["msft close Jan 1, 2010 to Jan 21 2011",
{{"DateRangeSpecified:Close:FinancialData", 1}, "TimeSeriesData"}];
DateListPlot[timeseries]

这只是一个输入示例。我不确定你到底需要什么样的数据,但你可以通过 WolframAlpha 函数获得很多数据。阅读:

1) WolframAlpha 2)Data Formats in Wolfram|Alpha

【讨论】:

  • @Vitaly,非常感谢您的回答。我一回来工作就试试这个!
【解决方案2】:

使用DateFunction 选项告诉DateListPlot 如何转换日期:

DateFunction -> (DateList[{#, {"MonthNameShort", "YearShort"}}] &)

(括号很重要。)

【讨论】:

  • 我做的完全一样,但DateList[{"Nov-11", {"MonthNameShort", "YearShort"}}]给了我DateString::str
  • 这似乎不适用于 Windows 上的非英语语言环境(尝试使用匈牙利语和美国英语,但仅适用于英语)
  • 这些日期最有可能反映每月收盘价。最好您可以指定DateList 是在月底而不是月初。您显然可以对 DateList 后转换进行更改,但如果选项存在会很好......或者它可能存在但我不知道??
  • @MikeHoneychurch 您可以使用DatePlus 移动到月底(可能是+1 个月,-1 天)。
  • @Brett 这就是我目前所做的,但只是观察到如果可以通过某种选项来完成,那就太好了。
【解决方案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"}.。也许是一个错误?

【讨论】:

  • 它对我有用,但我通常使用 DateList[{"Nov-11", {"MonthNameShort", "-", "YearShort"}}] 并且它总是有效。
  • @b.gatessucks 它在 Mma 8.0.4 (Windows) 中不起作用,无论是否指定分隔符。在我决定从我的答案中创建解决方法之前,我也尝试过分隔符形式。
  • 我确认它适用于 Windows 7 和 Linux 64 位上的 Mma 8.0.4。
  • @b.gatessucks 谢谢!它必须是特定于 XP 的,否则我的 Mma 安装已损坏
  • @b.gatessucks 我想通了:在 Windows 上,它只有在我将语言环境设置为美国英语时才有效。
猜你喜欢
  • 2010-11-03
  • 2017-12-17
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多