分享

【大智慧】DLL高手请过来,关于大智慧文本DLL函数的想法!

 青山孤松 2016-04-16
一、大智慧目前的F10文本函数:
1、当前股票的F10资料中查找字符串。
用法:
F10FIND(S,N),将从当前股票的F10资料的第N个字符开始查找字符串S,返回找到的位置,返回-1表示未找到。
例如:F10FIND('发行价',1),将从F10资料的第1个字符开始查找字符串'发行价',返回找到的位置。
2、取得当前股票的F10资料中指定范围的子字符串。
用法:
F10TEXT(N,M),将得到当前股票的F10资料中从第N个字符开使的M个字节长的字符串,M=0表示一直取到行尾,M<0表示之后的全部字符。
例如:F10TEXT(30,10),将得到F10资料中从第30个字符开使的10个字节长的字符串。

二、大智慧目前F10文本函数的缺点及改进方法:
大智慧的F10文本查找函数都要求从当前股票的F10资料中查找提取字符,这样就带来一个问题,比如我要查找股票发行价或者自定义的机构持仓数据,大智慧可以有两个方法实现:
1、建议自定义单值数据,操作比较麻烦,一般人不好处理;
2、在2000支股票中各建立一个F10文本文件,单不说建立非常麻烦,一般用户要想添加新的股票数据也不是一件容易的事,而且白白多增加了1999个文件,造成大智慧的系统更加宠大,减慢大智慧运行的速度。
建议:如果用户把所有股票的发行价都列到同一个文本文件里,例如添加如下行:
002453 14.96
002454 18.20
再将这个文件放到大智慧的指定文件夹里,这样用户就可以只用一个任何人都可以建立并随时添加修改的方法建立任意的数据,同时解决了上述两个方面的问题。
例如:在建立龙虎榜席位数据的时候,需要给每一个席位增加一个代码,这样就需要给2000支股票分别建立一个F10文本文件,当出现新席位的时候,还得给这2000支股票再更新一次,不仅工作量庞大,而且所有文件差不多都200M了,如果用上述方法则只需一个文件,100K即可。


三、增加一个文本查找函数,具体方法如下:
\dzh2\文件夹下面增加用于放置自定义文本文件的文件夹:DLLText(可默认建立),在这个文件夹下面,用户可建立001.txt100.txt,我想100txt应该够用了,DLL将这100个文件名称固化在里面,为什么选001-100来定名称,是为了方便用户以后增加自定义文件,而不需要重新修改DLL,至于文件对应的内容可以在文本首行添加说明。

文件格式:
1:001.txt
{发行价}
002453 14.96
002454 18.20
2:002.txt
{龙虎榜席位代码对应席位名称}
200000 机构专用
900344 华泰联合证券深圳益田路荣超商务中心
3:003.txt
{年报预告数据:股票代码 预告日期 利润下限 利润上限 预告内容}
000538 2011-01-08/   90558/  102632/预计2010年净利润为90,558~102,632万元,增长50%~70%
300037 2011-01-08/    8900/    9740/预计2010年度净利润8,900万元~9,740万元,增长48%~62%

函数格式:SELFFIND(文件名称,查找字符串,N,M)
DLLText下面的对应文本文件中查找字符串,返回找到的位置,得到从找到位置后的第N个字符开始的M个字节长的字符串,M=0表示一直取到行尾,M<0表示之后的全部字符。
1SELFFIND('001','002453',1,0),将从“001.txt”文件查找002453,在找到位置后面跳过1个字符读取后面整行的数据,最终得到002453的发行价:“14.96”;
           SELFFIND('001',STKLABEL,1,0),将从“001.txt”文件查找当前股票代码,在找到位置后面跳过1个字符读取后面整行的数据,最终得到发行价:“14.96”;STKLABEL也可以用其它直接或间接函数得到的文本代替,以下例子此位置的设计相同,不再说明。
2SELFFIND('002','200000',1,0),将从“002.txt”文件查找200000,在找到位置后面跳过1个字符读取整行的数据,最终得到200000对应的席位名称是:“机构专用”。
3SELFFIND('003',STKLABEL,1,10),假如当前股票是000538,将从“003.txt”文件查找000538,在找到位置后面跳过1个字符读取10个字符的数据,得到年报预告日期是:“2010-01-08”;
           SELFFIND('003',STKLABEL,12,8),假如当前股票是000538,将从“003.txt”文件查找000538,在找到位置后面跳过12个字符读取8个字符的数据,得到文本是:“   90558”,再通过文本转数字函数得到年报净利润下限数据;

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多