3

我想将 2009 年小麦合约的高/低/收盘数据导入 Excel。

我希望在 Python 中做到这一点,但如果有必要我会学习另一种语言。

我是期货编程的新手。如果上述问题是我的目标,我该如何实现?

PS我不确定首先在哪里或如何获取数据。这可能是一个复杂的问题,所以我将它发布在几个 Reddits/论坛上。任何人都可以提供的任何见解将不胜感激。

问候,麻雀


进度更新:2011-06-22 16:19

EliteTrader.com 用户 (kanellop) 的回应

主要的事情是...哪个是您的数据提供者...?如果我认为那是 Reuters DataLink ...并且您使用 Metastock ...那么您必须使用功能:下载器的转换并将这些数据传输到 Excel。

为了回答他的问题,我使用 ThinkorSwim 平台。平台接收数据并将其组织成价格图表,例如这张图表

kanellop 推荐的 Reuters DataLink 和 Metastock 都不是免费的。因此,拥有 ThinkorSwim然后为原始数据馈送付费似乎有点愚蠢。不应该有办法从我的平台上提取历史数据吗?

4

1 回答 1

1

为了获取期货数据,您将需要一个交易 API(例如T4 API,顺便说一句,T4 可免费使用 14 天),如果您使用 C#,那么将数据序列化为 CSV 文件是微不足道的。

它是这样的:

using(StreamWriter sw = new StreamWriter("fileName.csv"))
{
    foreach(Quote q in quotes)// assuming there is a Quote object and a list of quotes
    {
        sw.WriteLine("{0},{1},{2},{3}", q.Open, q.High, q.Low, q.Close);// something of the sort
    }
}

您将遇到的最困难的部分是使用交易 API 来提取必要的数据,但它带有示例(您可以在安装目录中找到),因此您应该能够在几天左右的时间内弄清楚。

更新:

您所要求的比使用商业 API 更具挑战性。这是可能的,你有几个选择,但没有一个是微不足道的:

  1. 直接从屏幕上抓取:制作一个可以截取屏幕截图并从图像中提取数据的应用程序。只能说不好玩!
  2. 如果它是桌面应用程序:您可以拦截进入您正在使用的应用程序的网络流量,即使您能够做到这一点,如果他们使用安全连接(即加密某些种类)。
  3. 如果它是一个 Web 应用程序:您可以在 C# 中创建一个浏览器,然后您可以从客户端获取的 HTML 页面中抓取数据……如果他们使用的是 JavaScript,那么这将变得更加复杂!

归根结底,如果您只支付第三方费用给您数据,然后实际尝试开发“拦截”来自 ThinkOrSwim 数据的软件,那将会便宜得多。

于 2011-06-22T23:43:17.987 回答