- 金币:
-
- 奖励:
-
- 热心:
-
- 注册时间:
- 2010-10-7
|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
通达信日K线资料是存在 C:\new_gxzq_v6\Vipdoc\sh\lday(上海股票)
C:\new_gxzq_v6\Vipdoc\sz\lday (深圳股票)两个地方,文件是以DAY为扩展名的。文件是以二进制格式存放。
每天的记录为32个字节。
* 以深发展1997年1月2日的数据为例:
* 00000000h: 36 B8 30 01 72 06 00 00 86 06 00 00 60 06 00 00 ;
* 00000010h: 72 06 00 00 77 69 D4 4C 68 FE 66 00 74 06 00 00 ;
* 以下是分解 00000000h:|36 B8 30 01|72 06 00 00|86 06 00 00|60 06 00 00|;
* [36 B8 30 01] = * 0x0130B836 = 19970102 日期[unsigned long]
* [72 06 00 00] = 0x00000672 = 1650/100 = 16.50 开盘[unsigned long]
* [86 06 00 00] = 0x00000686 = 1670/100 = 16.70 最高[unsigned long]
* [60 06 00 00] = 0x00000660 = 1632/100 = 16.32 最低[unsigned long]
* 00000010h:|72 06 00 00|77 69 D4 4C|68 FE 66 00|74 06 00 00|;
* [72 06 00 00] = 0x00000672 = 1650/100 = 16.50 收盘[unsigned long]
* [77 69 D4 4C] = 0x4CD46977 = 111365048.0 成交额[float]
* [68 FE 66 00] = 0x0066FE68 = 6749800 成交量[unsigned long]
* [74 06 00 00] = 0x00000674 = 1652/100 = 16.52 上日收盘[unsigned long](保留)
废话少讲,直接给出程式,不明的请留言。
CLEAR
SET PATH TO r:\
gnfilehandle= FOPEN('r:\sz000001.day',0)
nsize = FSEEK(gnfilehandle, 0, 2)
IF nsize <= 0
WAIT WINDOW "This file is empty!" NOWAIT
= FCLOSE(gnfilehandle)
RETURN
ENDIF
CREATE CURSOR gp(date_ N(10),bv N(10,2),hv N(10,2),lv N(10,2),cv N(10,2),amo N(20,3),vol N(20),refcv N(10,2))
= FSEEK(gnfilehandle, 0, 0) && 移动指针到开始
FOR i=1 TO nsize/32
cstring = FREAD(gnfilehandle,32)
*日期
tdate=EVALUATE("0x" + RIGHT(TRANSFORM(ASC(SUBSTR(cstring,4,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,3,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,2,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,1,1)), "@0"),2))
*开盘
tbv=EVALUATE("0x" + RIGHT(TRANSFORM(ASC(SUBSTR(cstring,8,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,7,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,6,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,5,1)), "@0"),2))/100
*最高
thv=EVALUATE("0x" + RIGHT(TRANSFORM(ASC(SUBSTR(cstring,12,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,11,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,10,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,9,1)), "@0"),2))/100
*最低
tlv=EVALUATE("0x" + RIGHT(TRANSFORM(ASC(SUBSTR(cstring,16,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,15,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,14,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,13,1)), "@0"),2))/100
*收盘
tcv=EVALUATE("0x" + RIGHT(TRANSFORM(ASC(SUBSTR(cstring,20,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,19,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,18,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,17,1)), "@0"),2))/100
*成交额
tamo=f16to10(RIGHT(TRANSFORM(ASC(SUBSTR(cstring,24,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,23,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,22,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,21,1)), "@0"),2))
*成交量
tvol=EVALUATE("0x" +RIGHT(TRANSFORM(ASC(SUBSTR(cstring,28,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,27,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,26,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,25,1)), "@0"),2))
*昨日收盘
trefcv=EVALUATE("0x" + RIGHT(TRANSFORM(ASC(SUBSTR(cstring,32,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,31,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,30,1)), "@0"),2)+;
RIGHT(TRANSFORM(ASC(SUBSTR(cstring,29,1)), "@0"),2))/100
INSERT INTO gp(date_ ,bv ,hv ,lv ,cv,amo,vol,refcv) ;
VALUES (tdate ,tbv ,thv ,tlv ,tcv,tamo,tvol,trefcv)
ENDFOR
= FCLOSE(gnfilehandle) |
-
|
|