开发股票分析软件

SH600016 2008-04-10 01:18:28
正在开发一个股票分析软件,有兴趣的大家来我的博客交流一下:http://blog.sun0769.com/user1/23688/

今天刚完成了读取通达信日线行情数据部份,呵呵,大概完成了整个软件的15%左右吧,下面是部份代码,我看到这里有很多人想知道怎样读取日线的行情数据,贴出来给大家分享一下,呵呵,不要全部搬抄,有些数据结构我没有贴出来,这只不过是核心部份,:)

public void getDaily(String dailyFile,String m_date) {
//dailyFile 行情软件中的日线数据,m_date 只要此日之后的日线数据
DailyStruct dailyRecord; //转换后的日线记录
double lastClosePrice; //昨天收盘价
FileChannel fileChannel;
MappedByteBuffer mapBuffer;
long fileSize, count;
int date;

m_records = new DataSet<String, DailyStruct>(); //清空

lastClosePrice = 0.00;
if (new File(dailyFile).exists()) {
try {
fileChannel = new FileInputStream(dailyFile).getChannel();
fileSize = fileChannel.size();
mapBuffer = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, fileSize);
mapBuffer.order(ByteOrder.LITTLE_ENDIAN); //低字节二进制文件
count = 0;
while (count < fileSize) {
date = mapBuffer.getInt();
if (String.Of(date).compareTo(m_date) >= 0) {
dailyRecord = new DailyStruct();
dailyRecord.m_f001 = String.Of(date); //日期
dailyRecord.m_f002 = mapBuffer.getInt() / 100.00; //开盘价
dailyRecord.m_f003 = mapBuffer.getInt() / 100.00; //最低价
dailyRecord.m_f004 = mapBuffer.getInt() / 100.00; //最高价
dailyRecord.m_f005 = mapBuffer.getInt() / 100.00; //收盘价
dailyRecord.m_f006 = mapBuffer.getFloat() / 10000.00; //成交额
dailyRecord.m_f007 = mapBuffer.getInt() / 10000.00; //成交量
mapBuffer.getInt(); //保留?
dailyRecord.m_f008 = lastClosePrice; //昨收盘价
lastClosePrice = dailyRecord.m_f005;
m_records.put(dailyRecord.m_f001, dailyRecord);
count += 32;
}
}
m_records.toList();
fileChannel.close();
} catch (IOException e) {
MSG.ShowMessage("更新指数的日线数据文件(" + dailyFile + ")时,出现了以下错误:\n" + e.getLocalizedMessage());
}
}
}

...全文
250 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaoyi_ipanel 2008-10-09
  • 打赏
  • 举报
回复
帮顶~

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧