设为首页收藏本站

『外汇堂』·专业外汇论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
楼主: kuhasu
打印 上一主题 下一主题

[其他] Dukascopy数据下载协作召集

[复制链接]
1#
发表于 2009-2-13 17:06:37 | 显示全部楼层
我载了10来个货币对。
用自己写的java程序载的。
10_sec的数据是从2003年8月开始。下载的压缩数据包每个货币对大概200多M(包括Bid和Ask)。解压后每个货币对大概1.6个G(包括Bid和Ask)
2#
发表于 2009-2-13 21:48:00 | 显示全部楼层
就是把一个Candle转成字符串而已。
比如这个Candle是2009-02-12 03:05:10这个时间的,Open是1.3242,Close是1.3223,那么
StringBuilder stamp = new StringBuilder();
//这时stamp是空的
stamp.append(time).append("[").append(format.format(time)).append("] / ");
//stamp的值变成8549823492[2009-02-12 03:05:10.000]/
stamp.append(open).append(" - ").append(close);
//stamp的值变成“8549823492[2009-02-12 03:05:12.000]/1.3242-1.3223”
仅此而已。
hashCode()方法只是为了唯一标识一个CandleData类而已。

如果你下载的是Bin格式的,才需要用他提供的例子。
他的CandleData这个类是为了读BIN格式的。你也不一定要用他的思路。他们网页上已经清楚的说明了各种文件的格式。
你完全可以自己写。
3#
发表于 2009-2-14 10:36:30 | 显示全部楼层
8549823492是1970 年1 月1 日00:00:00 GMT 以来到那个时间点经过的毫秒数。这个数字我是为了举例子随便写的。
hashCode()方法只是为了唯一标识一个CandleData类而已。
可参考阅读http://www.javaresearch.org/article/38075.htm
4#
发表于 2009-2-14 16:24:50 | 显示全部楼层
CandleData里的这个方法就是用来转换的啊。
public void fromBytes(byte[] bytes, int off) {
        time = getLong(bytes, off);
        open = getDouble(bytes, off + 1 * 8);
        close = getDouble(bytes, off + 2 * 8);
        low = getDouble(bytes, off + 3 * 8);
        high = getDouble(bytes, off + 4 * 8);
        vol = getDouble(bytes, off + 5 * 8);
    }
运算符和函数是什么意思,我想您google一下就会很容易找到了。
5#
发表于 2009-2-14 16:30:54 | 显示全部楼层
另外,统一回答一下你的短消息。
我载的是BIN,他是zip压缩的,java有自带的zip解压缩实现,c#也有很多免费的zip解压缩实现。
我没有转成txt,我要的就是二进制的。
某个目录下批量的转化,我想你很容易可以下写一个的。
另外,建议您仔细阅读他们网站上的说明。里面有很多有用的信息。
6#
发表于 2009-2-14 18:18:29 | 显示全部楼层
适合自己的才是最好的!
Good luck!
7#
发表于 2009-2-14 20:33:13 | 显示全部楼层
把文件都拼起来就成一个了~
你也可以不拼,要什么时间的数据,就读什么文件,反正文件命名都有规则的。
至于数据库,bad idea~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|外汇堂·专业外汇论坛    

GMT+8, 2024-5-13 12:58 , Processed in 0.169677 second(s), 25 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表