python读取大智慧数据_大智慧数据读取器day.dat
var dzhpath ="D:\dzh2\data\"f = io.open(dzhpath ++ "sh\day.dat","rb")f.seek("set",0x0c)stknum = f.read({INT stknum}).stknum //保存的证券数量dataindex = {byte code[10];int daylinenum;WORD recordindex[25];}var
var dzhpath =
"D:\dzh2\data\"f = io.open(dzhpath ++ "sh\day.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 = ibreak
}
}
}
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 =
0for(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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)