fzysw 2004-11-13 21:04
基于鹏搏资讯自动显示每季基金持股数量
如何基于鹏搏资讯自动显示基金持股合计数(如您所编的"基于鹏搏资讯自动显示股东人数" ) ,只是基金有的年报不持股,不会编了.:crying:
hx817 2004-11-13 22:05
重新修改公式,以后调整参数更方便,只需要调整开始参数 tx4,tx3,tx2,tx1
并且加入附图显示
[code]
{基于鹏搏资讯,因为F10资料经常变动,所以在变动后,
需要对应调整参数中的 tx4,tx3,tx2,tx1}
VARIABLE:d4='',d3='',d2='',d1='',
tx4='2004-09-30',tx3='2004-06-30',
tx2='2004-03-31',tx1='2003-12-31',
txhj='合计│ │ │';
{上面为文本的日期,下季度可对应修改,日期从大到小}
fd4:=10000*(STRTONUM(STRLEFT(tx4,4))-1900)+100*(STRTONUM(STRMID(tx4,6,2)))+(STRTONUM(STRRIGHT(tx4,2)));
fd3:=10000*(STRTONUM(STRLEFT(tx3,4))-1900)+100*(STRTONUM(STRMID(tx3,6,2)))+(STRTONUM(STRRIGHT(tx3,2)));
fd2:=10000*(STRTONUM(STRLEFT(tx2,4))-1900)+100*(STRTONUM(STRMID(tx2,6,2)))+(STRTONUM(STRRIGHT(tx2,2)));
fd1:=10000*(STRTONUM(STRLEFT(tx1,4))-1900)+100*(STRTONUM(STRMID(tx1,6,2)))+(STRTONUM(STRRIGHT(tx1,2)));
{上面自动将文本的日期转换为飞狐格式的日期,为后面附图显示时间用}
jjstar:=F10FIND('十一、基金持股',1);
jj3:=F10FIND('截止日期:'+tx3,jjstar);hj4:=F10FIND(txhj,jjstar);
jj2:=F10FIND('截止日期:'+tx2,jj3);hj3:=F10FIND(txhj,jj3);
jj1:=F10FIND('截止日期:'+tx1,jj2);hj2:=F10FIND(txhj,jj2);
jjend:=F10FIND('十二、高管介绍',jj1);hj1:=F10FIND(txhj,jj1);
if BETWEEN(hj4,jjstar,jj3) then d4:=LTRIM(F10TEXT(hj4+28,12));
if BETWEEN(hj3,jj3,jj2) then d3:=LTRIM(F10TEXT(hj3+28,12));
if BETWEEN(hj2,jj2,jj1) then d2:=LTRIM(F10TEXT(hj2+28,12));
if BETWEEN(hj1,jj1,jjend) then d1:=LTRIM(F10TEXT(hj1+28,12));
{转换字符串为数值}
s4:=STRTONUM(d4);s3:=STRTONUM(d3);s2:=STRTONUM(d2);s1:=STRTONUM(d1);
{显示方法一:解盘显示股东人数变动}
EXPLAIN(hj4>1,tx4+' 计:'+d4);EXPLAIN(hj3>1,tx3+' 计:'+d3);
EXPLAIN(hj2>1,tx2+' 计:'+d2);EXPLAIN(hj1>1,tx1+' 计:'+d1);
{显示方法二:对应显示为拄状线,附图时用}
STICKLINE(date>=fd4,0,s4,8,0);
STICKLINE(BETWEEN(date,fd3-1,fd4),0,s3,8,0);
STICKLINE(BETWEEN(date,fd2-1,fd3),0,s2,8,0);
STICKLINE(BETWEEN(date,fd1-1,fd2),0,s1,8,0);
[/code]
附公式
yyuu 2004-11-14 10:55
hx817老师你好:
基金持股能否帮忙加柱状,我对编辑指标一点不会。谢谢老师了
fzysw 2004-11-14 12:50
非常感谢hx817老师!!!!!!!!!!!!!!!!!!!!!!1
hx817 2004-11-14 13:14
请 fzysw 改为柱状显示,提供给其他狐友 :)
fzysw 2004-11-14 18:16
可参考HX817前辈的"基于鹏搏资讯自动显示股东人数"之中的方法套用,(见三楼)
为感谢大家,献上下一波热点版块,请多交流.
hx817 2004-11-15 14:15
百智投 中基金数据才 2个月,还是用 鹏搏资讯 的吧
netnova 2004-11-15 14:54
n1:=F10FIND('【 2】最近两期股东',1);
n2:=F10FIND('备注',n1)+6+72;
n3:=f10find('─',n2)-4;
if n1<>-1 then begin
gdStr:=F10TEXT(n2,n3-n2);
sl:=strlen(gdstr)/76;gds:='';
j:=0;
for i=1 to sl do begin
if strcmp(strmid(gdstr,(i-1)*76+48,1),'/')=1 then begin //判断本行是否接上行
j:=j+1;
s:=strmid(gdstr,(i-1)*76+3,36);//每行宽度固定为76个字符,3--36为股东名称
k:=strlen(s);
while strcmp(strmid(s,k,1),' ')=0 do k:=k-1; //记录多余空格的位置
gds:=gds+numtostr(j,0)+'.'+strmid(s,1,k)+'\n';//取股东名称,并加上序号
end else begin //如果本行是上行的续行,进行下面3行代码处理
s:=strmid(gdstr,(i-1)*76+3,36);
k:=strlen(s);
while strcmp(strmid(s,k,1),' ')=0 do k:=k-1;
gds:=strmid(gds,1,strlen(gds)-2)+strmid(s,1,k)+'\n';
end;
end;
explain(1,gdS); //十大股东的名称,都记录在字符串变量gds中,解盘输出
选股东:strfind(gds,'泰和证券投资基金',1)>0;
end;
用这个改了半天还是不会改
[color=Teal][align=right] 本贴由 netnova 于 2004-11-15 15:22 最后编辑 [/align][/color]
fengyun1014 2004-11-15 17:12
要是有一种实时的就好了
zjr1118 2006-4-1 13:39
感谢你的辛勤劳动:clap::clap::clap::smokin::smokin:
zhh0 2006-10-13 22:03
请教hx817
我在看你此贴的指导后,也想在飞狐中显示基金持股数,可我导入了你以上的公式后,并改动“六、基金持股”(原指标为十一)和“八、高管介绍”(原指标为十二),可在软件中还不管用原指标还是经改动后的指标都不能显示,希望能得到你的指点。谢谢!!
zhh0 2006-10-13 22:09
我认为我的问题可能是出在引入文本的日期上,但经多次改动都未能成功。
hx817 2006-10-13 22:40
这个需要理解了公式,再根据目前新的 F10 格式来修改