mugger 发表于 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/
stamp.append(open).append(" - ").append(close);
//stamp的值变成“8549823492/1.3242-1.3223”
仅此而已。
hashCode()方法只是为了唯一标识一个CandleData类而已。

如果你下载的是Bin格式的,才需要用他提供的例子。
他的CandleData这个类是为了读BIN格式的。你也不一定要用他的思路。他们网页上已经清楚的说明了各种文件的格式。
你完全可以自己写。

kuhasu 发表于 2009-2-14 00:50:15

谢谢!


@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
long temp;
temp = Double.doubleToLongBits(close);
result = prime * result + (int) (temp ^ (temp >>> 32));

呢?

还有8549823492是怎么得出来的呢,转换到时间的算法呢?

[ 本帖最后由 kuhasu 于 2009-2-14 00:52 编辑 ]

mugger 发表于 2009-2-14 10:36:30

8549823492是1970 年1 月1 日00:00:00 GMT 以来到那个时间点经过的毫秒数。这个数字我是为了举例子随便写的。
hashCode()方法只是为了唯一标识一个CandleData类而已。
可参考阅读http://www.javaresearch.org/article/38075.htm

kuhasu 发表于 2009-2-14 15:28:21

谢谢!
举个例子,对于日期时间的longlong型和价格、数量的8 byte long double(8位长双精度)型
01.01.2004 08:00,80.61,80.71,79.8,83.73,252937

000000F9CEBAB800         01.01.2004 08:00
4054270A3D70   A3D7      80.61
40542D70A3D70A3D         80.71
4053F33333   33   3333         79.8
4054EEB851EB851F         83.73
410EE0480000   00   00      252937


用java或者C#,怎样进行数据转换呢
还有就是
temp = Double.doubleToLongBits(close);
result = prime * result + (int) (temp ^ (temp >>> 32));
变量我明白,运算符和函数就不懂,请教下,谢谢

mugger 发表于 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一下就会很容易找到了。

mugger 发表于 2009-2-14 16:30:54

另外,统一回答一下你的短消息。
我载的是BIN,他是zip压缩的,java有自带的zip解压缩实现,c#也有很多免费的zip解压缩实现。
我没有转成txt,我要的就是二进制的。
某个目录下批量的转化,我想你很容易可以下写一个的。
另外,建议您仔细阅读他们网站上的说明。里面有很多有用的信息。

kuhasu 发表于 2009-2-14 16:41:51

原帖由 mugger 于 2009-2-14 16:30 发表 http://www.forex-town.com/images/common/back.gif
另外,统一回答一下你的短消息。
我载的是BIN,他是zip压缩的,java有自带的zip解压缩实现,c#也有很多免费的zip解压缩实现。
我没有转成txt,我要的就是二进制的。
某个目录下批量的转化,我想你很容易可以下写一 ...


谢谢:) 我编程方面实在是菜,尤其用C#,java处理数据方面。所以还是决定直接下载那个csv了,尽管稍微慢些。

附上反编译的swf文件。批量下载的时候月份需要注意的是是从0开始代表1月的。

mugger 发表于 2009-2-14 18:18:29

适合自己的才是最好的!:lol
Good luck!

kuhasu 发表于 2009-2-14 18:33:51

回复 18# 的帖子

呵呵,这个东西有什么适合不适合自己的,反正搞完数据也是要共享的。
只不过有方便工具,有几个人互相合作,速度快些罢了。
也不是人人都精通数据转换的数据编程,而且精通一种语言的其他的也不一定精通,熟悉编译的不一定熟悉反编译,
只是这样而已。所以才想到了协作的方式。

bin的文件都是单个的,一段儿一段儿的,那你单个文件怎么用呢?还没有数据库的存储是以一大堆bin做基础的吧:)

mugger 发表于 2009-2-14 20:33:13

把文件都拼起来就成一个了~
你也可以不拼,要什么时间的数据,就读什么文件,反正文件命名都有规则的。
至于数据库,bad idea~
页: 1 [2] 3
查看完整版本: Dukascopy数据下载协作召集