加载中…
个人资料
文和_股市脉冲波复利
文和_股市脉冲波复利
  • 博客等级:
  • 博客积分:0
  • 博客访问:486,425
  • 关注人气:353
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

[转载]大智慧数据读取器day.dat

(2014-11-01 12:25:30)
标签:

转载

分类: 数据接口/API

大智慧数据读取器

(2011-05-24 19:37:53)
标签:

杂谈

var dzhpath = "D:dzh2data"
f = io.open(dzhpath ++
"shday.dat","rb")
f.seek(
"set",0x0c)
stknum = f.read({INT stknum}).stknum
//保存的证券数量


dataindex = {
byte code[10];
int daylinenum;
WORD recordindex[25];
}

var codeoffset //代码index偏移量
setcode = function(code){
for(i=1;stknum;1){
f.seek(
"set",0x18 + (i - 1) * 0x40)
if(f.read({byte code[10]}).code == code){
codeoffset = i
break
}
}
}

code =
function(){
f.seek(
"set",0x18 + (codeoffset - 1) * 0x40)
return f.read(dataindex).code
}

daylinenum =
function(){ //该证券的日线数量
f.seek("set",0x18 + (codeoffset - 1) * 0x40 + 10)
return f.read({int daylinenum}).daylinenum
}

recordindex =
function(){ //该证券的日线索引
f.seek("set",0x18 + (codeoffset - 1) * 0x40 + 14)
return f.read({WORD recordindex[25]}).recordindex
}

dayline = {
//日线数据结构
int date;
float open;
float high;
float low;
float close;
float volume;
float amount;
word rise;
//rise和fall只对大盘有效
word fall;
}

setday =
function(dayoffset){ //dayoffset为0显示最后一根K线数据,-n代表前n天
f.seek("set",(0x41000 + recordindex()[math.floor((daylinenum() + dayoffset - 1) / 256) + 1] * 8192 + (daylinenum() + dayoffset - 1) % 256 * 32))
return f.read(dayline)
}


setcode(600033)
//可以输入任意正确的代码,本例支持沪市,未做容错处理
var CLOSE = {} //收盘价数组,从最后一根K线向前排序
for(i=0;1-daylinenum();-1){
table.push(CLOSE,setday(i).close)
}

MA =
function(n){ //计算n日均线
var ma = {}
for(i=0;daylinenum()-n;1){
var sum = 0
for(j=i+1;i+n;1){
sum += CLOSE[j] / n
}
table.push(ma,sum)
}
return ma
}

CROSS =
function(a,b){ //向上穿越函数
var crossday = {}
for(i=1;math.min(#a,#b);1){
try{
if(a[ i ] > b[ i ] and a[i + 1] <= b[i + 1])
table.push(crossday,i)
}
}
return crossday
}

s = setday(0)
io.open()
io.print(
"保存的沪市证券数量:",stknum)
io.print(
"查询的证券代码:",code())
io.print(
"日线数量:",daylinenum())
io.print(
"")
io.print(
"查询的数据日期:",time(s.date - 28800))
io.print(
"开盘价:",s.open)
io.print(
"最高价:",s.high)
io.print(
"最低价:",s.low)
io.print(
"收盘价:",s.close)
io.print(
"成交量:",s.volume)
io.print(
"成交额:",s.amount)
io.print(code() == 000001 ?
"上涨家数:" : "上涨家数只对大盘有效!",code() == 000001 ? s.rise : "")
io.print(code() == 000001 ?
"下跌家数:" : "下跌家数只对大盘有效!",code() == 000001 ? s.fall : "")
io.print(
"")
io.print(
"收盘价数组当日值:",CLOSE[1])
io.print(
"5日均线当日值:",MA(5)[1])
io.print(
"")
io.print(
"下面列出最近10个满足5日均线上穿10日均线的日期:")


for(i=1;math.min(10,#CROSS(MA(5),MA(10)));1){ //列出至多10个满足条件的日期
t = setday(1 - CROSS(MA(5),MA(10))[ i ]).date
io.print(time(t - 28800))
}

execute("pause")
io.close()
f.close()


http://www.aau.cn/thread-1900-1-1.html
分享 [转载]大智慧数据读取器day.dat [转载]大智慧数据读取器day.dat [转载]大智慧数据读取器day.dat [转载]大智慧数据读取器day.dat [转载]大智慧数据读取器day.dat

0

[转载]大智慧数据读取器day.dat

0

  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有