分享

关于解决大智慧5分钟数据限定133天的问题

 zergoling 2013-11-08
上面是一位网友的原贴,我作了回复,但因我不需要这么多的数据,所以未做测试,问题未能完全解决。
5分钟数据每天48组,133*48=6384
1分钟数据每天240组,52*240=12480
这么多的数据没必要太执着,不过为了个别有需要的朋友,今天还是花了不少时间下载了一年的5分钟数据,并作全新安装测试。

只要有足够的5分钟数据,15、30、60分钟图本方法都能显示更多。


一、测试方案(只提供了600000这个股一年的5分钟数据)
  1、安装最新版的大智慧。
  2、解压附件中的dzh2_302.exe到安装目录,运行dzh2_302.exe。
  3、在选项中把5分钟数据的保存天数定为500天。
  4、在数据管理中心安装数据,选中解压后的600000_0804_0904_m.DAD,执行安装。
  5、切换到600000的五分钟图,这时应该能看到超过133天的数据。

二、应用方案(自己找地方下载一年的5分钟数据)
  1、备份所需的MIN.DAT后删除(各市场也有的,搞乱了别怪我。哈哈~~)。
  2、解压附件中的dzh2_302.exe到安装目录,运行dzh2_302.exe。
  3、在选项中把5分钟数据的保存天数定为500天。
  4、在数据管理中心安装数据,选中你下载的5分钟数据,如果是分月打包的需要重复多次执行安装。
  5、这时所有个股应该能看到超过133天的数据。

有朋友还要求1分钟的解决方案,这个程序好象也行的,但我不会再找这么多的1 分钟数据来做测试了。

_V4.1.9.302_带★的是修改过的
00557176    B8 85000000   MOV    EAX,85               ; 85(133) 5分钟限定天数
0055717B    3BC8          CMP    ECX,EAX
0055717D    8BD1          MOV    EDX,ECX
0055717F    EB 17         JMP    SHORT 00557198       ; ★

005571AE    6A 34         PUSH   34                   ; 34(52) 1分钟限定天数
005571B0    5A            POP    EDX
005571B1    8BC8          MOV    ECX,EAX
005571B3    3BC2          CMP    EAX,EDX
005571B5    EB 18         JMP    SHORT 005571CF       ; ★

005E3EA6    68 00020000   PUSH   200                  ; ★_其它周期基数

005E3EF2    68 00020000   PUSH   200                  ; ★_5分钟基数

005E3F47    68 00040000   PUSH   400                  ; ★_1分钟基数

005EF8B8    6BC9 32       IMUL   ECX,ECX,32           ;  ★_R

005F31CA    6BC9 32       IMUL   ECX,ECX,32           ;  ★_R

005F39B2    6BC0 32       IMUL   EAX,EAX,32           ;  ★SH_W

005F3C8F    6BC0 32       IMUL   EAX,EAX,32           ;  ★SZ_W

005F4757    6BC9 32       IMUL   ECX,ECX,32           ;  ★_R
[ 以上由 yy28 于 2009-4-9 17:17 编辑 ]


因为还有不明白的发短消息问,在这再说一下代码的修改。
_V4.1.9.302
00557176    B8 85000000   MOV    EAX,85               ; 85(133) 5分钟限定天数
0055717B    3BC8          CMP    ECX,EAX
0055717D    8BD1          MOV    EDX,ECX
0055717F    EB 17         JMP    SHORT 00557198       ; ★
上面是将限定值送到EAX与在选项中设定的值作判断,如果修改限定值,那么要给定一个值,所以修改跳转应该是比较合理。

005E3EF2    68 00020000   PUSH   200                  ; ★_5分钟的初始化基数
大智慧的数据管理是大文件结构,类似于磁盘管理。
它会对数据文件作初始化,这个PUSH  100    相当于生成一个8M的文件。
单就5分钟的MIN.DAT来说,如果用 PUSH  500   那么就会生成一个40M的文件。
这样的话后面的不用修改也能显示大于133天的数据,当然如果有一年的5分钟数据这个文件是大于40M的(约300M),问题是大智慧有10多个市场,其它市场我们不用的就有点浪费,不但占用磁盘,还占用内存。
所以修改下面的“倍频”是比较合理的。
005F31CA    6BC9 32       IMUL   ECX,ECX,32           ;  ★_R DAY.DAT,MIN.DAT,MIN1.DAT
005F39B2    6BC0 32       IMUL   EAX,EAX,32           ;  ★_W
005F3C8F    6BC0 32       IMUL   EAX,EAX,32           ;  ★_W
上面几个 “倍频”指令基本就是(基数*倍数)在需要的时候检查一下在文件中的有效值(实际储存的K线组数),如果有效值大于“倍频”值就用“倍频”值,小于就用有效值。

[ 以上由 yy28 于 2009-4-13 19:05 编辑 ]

还是直接修改基数更方便,那些“倍频”指令不必修改了。
005E3EA6    68 00020000   PUSH   200                  ; ★_其它周期基数
005E3EF2    68 00020000   PUSH   400                  ; ★_5分钟基数
005E3F47    68 00040000   PUSH   400                  ; ★_1分钟基数


[ 本帖最后由 yy28 于 2009-7-26 15:17 编辑 ]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多