{历史流通盘——Wind}
//确定F10种类
F10:=IF(F10FIND('Wind资讯就是',1)>0,2,0);
IF F10=0 THEN EXIT;//非Wind资讯退出
//F10数据查找
QSW:=F10FIND('股本结构→',1000);//起
IF QSW<0 THEN EXIT;//没找到退出
LTW:=F10FIND('├────',F10FIND('【2:历次变更状况】',QSW+150))+74;//取起始行位置
IF LTW<0 THEN EXIT;
JSW:=F10FIND('└────',LTW+100);//取尾部行位置
FHS:=CEILING((JSW-LTW)/74),LINETHICK;//数据行数
//DRAWTEXT(BARPOS=SYSPARAM(2),10,F10TEXT(LTW,0));
JS:=1;
VARIABLE:GBW[FHS]=0,GBT[FHS]='STR',GBS[FHS]='STR';
HW:=0;
FOR j=1 TO FHS DO BEGIN
HW:=F10FIND('|',IF(j=1,LTW,HW+74));//取字符串所在位置
IF HW>JSW THEN BREAK;//超出尾部行位置跳出循环
LS:=2;
SJT:=F10TEXT(HW+LS,10);//取时间字符串
IF j<FHS AND STRLEN(LTRIM(RTRIM(SJT)))>4 THEN BEGIN
GBW[js]:=HW;
GBT[js]:=SJT;//时间
GBS[js]:=RTRIM(F10TEXT(HW+30,10));//取流通股字符串
JS:=JS+1;
END;
END;
JS:=JS-1,LINETHICK;
//DRAWTEXT(SYSPARAM(2)+2=BARPOS AND GBW[1]>1,12,GBT[2]+' '+GBS[2]),COLORFFEE66;
变动次数:IF(STRTONUM(GBS[JS])=0,JS-1,JS),LINETHICK;
XSK:=12;//显示间隔
N:=IF(datacount-变动次数*XSK<0 or 变动次数=1,1,datacount-变动次数*XSK),LINETHICK;
KS:=IF(MOD(DATACOUNT-BARPOS,XSK)=0,1,0);
sj:=BARSSINCE(BARPOS>=N)+1;
s:=sum(KS,sj);
ss:=s[datacount]-s+1,LINETHICK1;
{显示}
RH:=STRTONUM(GBS[1])*0.2;
FILLRGN(1,(-1)*RH/3,RH/3),COLOR666666;
//POLYLINE(1,0),COLORFF00,LINETHICK1;
STICKLINE(KS and SS=2,0,STRTONUM(GBS[1]),15,1),COLORFF;
DRAWTEXT(KS and SS=2,STRTONUM(GBS[1])*0.98,GBS[1]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=2,100,GBT[1]),COLORFFEE00,ALIGN,PXUP10;
IF JS<2 THEN EXIT;
STICKLINE(KS and SS=3,0,STRTONUM(GBS[2]),15,1),COLORFF;
DRAWTEXT(KS and SS=3,STRTONUM(GBS[2])*0.98,GBS[2]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=3,100,GBT[2]),COLORFFEE00,ALIGN,PXUP10;
IF JS<3 THEN EXIT;
STICKLINE(KS and SS=4,0,STRTONUM(GBS[3]),15,1),COLORFF;
DRAWTEXT(KS and SS=4,STRTONUM(GBS[3])*0.98,GBS[3]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=4,100,GBT[3]),COLORFFEE00,ALIGN,PXUP10;
IF JS<4 THEN EXIT;
STICKLINE(KS and SS=5,0,STRTONUM(GBS[4]),15,1),COLORFF;
DRAWTEXT(KS and SS=5,STRTONUM(GBS[4])+RH,GBS[4]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=5,100,GBT[4]),COLORFFEE00,ALIGN,PXUP10;
IF JS<5 THEN EXIT;
STICKLINE(KS and SS=6,0,STRTONUM(GBS[5]),15,1),COLORFF;
DRAWTEXT(KS and SS=6,STRTONUM(GBS[5])+RH,GBS[5]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=6,100,GBT[5]),COLORFFEE00,ALIGN,PXUP10;
IF JS<6 THEN EXIT;
STICKLINE(KS and SS=7,0,STRTONUM(GBS[6]),15,1),COLORFF;
DRAWTEXT(KS and SS=7,STRTONUM(GBS[6])+RH,GBS[6]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=7,100,GBT[6]),COLORFFEE00,ALIGN,PXUP10;
IF JS<7 THEN EXIT;
STICKLINE(KS and SS=8,0,STRTONUM(GBS[7]),15,1),COLORFF;
DRAWTEXT(KS and SS=8,STRTONUM(GBS[7])+RH,GBS[7]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=8,100,GBT[7]),COLORFFEE00,ALIGN,PXUP10;
IF JS<8 THEN EXIT;
STICKLINE(KS and SS=9,0,STRTONUM(GBS[8]),15,1),COLORFF;
DRAWTEXT(KS and SS=9,STRTONUM(GBS[8])+RH,GBS[8]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=9,100,GBT[8]),COLORFFEE00,ALIGN,PXUP10;
IF JS<9 THEN EXIT;
STICKLINE(KS and SS=10,0,STRTONUM(GBS[9]),15,1),COLORFF;
DRAWTEXT(KS and SS=10,STRTONUM(GBS[9])+RH,GBS[9]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=10,100,GBT[9]),COLORFFEE00,ALIGN,PXUP10;
IF JS<10 THEN EXIT;
STICKLINE(KS and SS=11,0,STRTONUM(GBS[10]),15,1),COLORFF;
DRAWTEXT(KS and SS=11,STRTONUM(GBS[10])+RH,GBS[10]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=11,100,GBT[10]),COLORFFEE00,ALIGN,PXUP11;
IF JS<11 THEN EXIT;
STICKLINE(KS and SS=12,0,STRTONUM(GBS[11]),15,1),COLORFF;
DRAWTEXT(KS and SS=12,STRTONUM(GBS[11])+RH,GBS[11]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=12,100,GBT[11]),COLORFFEE00,ALIGN,PXUP12;
IF JS<12 THEN EXIT;
STICKLINE(KS and SS=13,0,STRTONUM(GBS[12]),15,1),COLORFF;
DRAWTEXT(KS and SS=13,STRTONUM(GBS[12])+RH,GBS[12]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=13,100,GBT[12]),COLORFFEE00,ALIGN,PXUP10;
IF JS<13 THEN EXIT;
STICKLINE(KS and SS=14,0,STRTONUM(GBS[13]),15,1),COLORFF;
DRAWTEXT(KS and SS=14,STRTONUM(GBS[13])+RH,GBS[13]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=14,100,GBT[13]),COLORFFEE00,ALIGN,PXUP10;
IF JS<14 THEN EXIT;
STICKLINE(KS and SS=15,0,STRTONUM(GBS[14]),15,1),COLORFF;
DRAWTEXT(KS and SS=15,STRTONUM(GBS[14])+RH,GBS[14]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=15,100,GBT[14]),COLORFFEE00,ALIGN,PXUP10;
IF JS<15 THEN EXIT;
STICKLINE(KS and SS=16,0,STRTONUM(GBS[15]),15,1),COLORFF;
DRAWTEXT(KS and SS=16,STRTONUM(GBS[15])+RH,GBS[15]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=16,100,GBT[15]),COLORFFEE00,ALIGN,PXUP10;
IF JS<16 THEN EXIT;
STICKLINE(KS and SS=17,0,STRTONUM(GBS[16]),15,1),COLORFF;
DRAWTEXT(KS and SS=17,STRTONUM(GBS[16])+RH,GBS[16]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=17,100,GBT[16]),COLORFFEE00,ALIGN,PXUP10;
{
最新回复
ahfyxl (2008-8-29 18:24:23)
QUOTE:
股市浪子老师的.......CODE:
{历史流通盘——Wind}
//确定F10种类
F10:=IF(F10FIND('Wind资讯就是',1)>0,2,0);
IF F10=0 THEN EXIT;//非Wind资讯退出
//F10数据查找
QSW:=F10FIND('股本结构→',1000);//起
IF QSW<0 THEN EXIT;//没找到退出
LTW:=F10FIND('├────',F10FIND('【2:历次变更状况】',QSW+150))+74;//取起始行位置
IF LTW<0 THEN EXIT;
JSW:=F10FIND('└────',LTW+100);//取尾部行位置
FHS:=CEILING((JSW-LTW)/74),LINETHICK;//数据行数
//DRAWTEXT(BARPOS=SYSPARAM(2),10,F10TEXT(LTW,0));
JS:=1;
VARIABLE:GBW[FHS]=0,GBT[FHS]='STR',GBS[FHS]='STR';
HW:=0;
FOR j=1 TO FHS DO BEGIN
HW:=F10FIND('|',IF(j=1,LTW,HW+74));//取字符串所在位置
IF HW>JSW THEN BREAK;//超出尾部行位置跳出循环
LS:=2;
SJT:=F10TEXT(HW+LS,10);//取时间字符串
IF j<FHS AND STRLEN(LTRIM(RTRIM(SJT)))>4 THEN BEGIN
GBW[js]:=HW;
GBT[js]:=SJT;//时间
GBS[js]:=RTRIM(F10TEXT(HW+30,10));//取流通股字符串
JS:=JS+1;
END;
END;
JS:=JS-1,LINETHICK;
//DRAWTEXT(SYSPARAM(2)+2=BARPOS AND GBW[1]>1,12,GBT[2]+' '+GBS[2]),COLORFFEE66;
变动次数:IF(STRTONUM(GBS[JS])=0,JS-1,JS),LINETHICK;
XSK:=12;//显示间隔
N:=IF(datacount-变动次数*XSK<0 or 变动次数=1,1,datacount-变动次数*XSK),LINETHICK;
KS:=IF(MOD(DATACOUNT-BARPOS,XSK)=0,1,0);
sj:=BARSSINCE(BARPOS>=N)+1;
s:=sum(KS,sj);
ss:=s[datacount]-s+1,LINETHICK1;
{显示}
RH:=STRTONUM(GBS[1])*0.2;
FILLRGN(1,(-1)*RH/3,RH/3),COLOR666666;
//POLYLINE(1,0),COLORFF00,LINETHICK1;
STICKLINE(KS and SS=2,0,STRTONUM(GBS[1]),15,1),COLORFF;
DRAWTEXT(KS and SS=2,STRTONUM(GBS[1])*0.98,GBS[1]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=2,100,GBT[1]),COLORFFEE00,ALIGN,PXUP10;
IF JS<2 THEN EXIT;
STICKLINE(KS and SS=3,0,STRTONUM(GBS[2]),15,1),COLORFF;
DRAWTEXT(KS and SS=3,STRTONUM(GBS[2])*0.98,GBS[2]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=3,100,GBT[2]),COLORFFEE00,ALIGN,PXUP10;
IF JS<3 THEN EXIT;
STICKLINE(KS and SS=4,0,STRTONUM(GBS[3]),15,1),COLORFF;
DRAWTEXT(KS and SS=4,STRTONUM(GBS[3])*0.98,GBS[3]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=4,100,GBT[3]),COLORFFEE00,ALIGN,PXUP10;
IF JS<4 THEN EXIT;
STICKLINE(KS and SS=5,0,STRTONUM(GBS[4]),15,1),COLORFF;
DRAWTEXT(KS and SS=5,STRTONUM(GBS[4])+RH,GBS[4]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=5,100,GBT[4]),COLORFFEE00,ALIGN,PXUP10;
IF JS<5 THEN EXIT;
STICKLINE(KS and SS=6,0,STRTONUM(GBS[5]),15,1),COLORFF;
DRAWTEXT(KS and SS=6,STRTONUM(GBS[5])+RH,GBS[5]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=6,100,GBT[5]),COLORFFEE00,ALIGN,PXUP10;
IF JS<6 THEN EXIT;
STICKLINE(KS and SS=7,0,STRTONUM(GBS[6]),15,1),COLORFF;
DRAWTEXT(KS and SS=7,STRTONUM(GBS[6])+RH,GBS[6]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=7,100,GBT[6]),COLORFFEE00,ALIGN,PXUP10;
IF JS<7 THEN EXIT;
STICKLINE(KS and SS=8,0,STRTONUM(GBS[7]),15,1),COLORFF;
DRAWTEXT(KS and SS=8,STRTONUM(GBS[7])+RH,GBS[7]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=8,100,GBT[7]),COLORFFEE00,ALIGN,PXUP10;
IF JS<8 THEN EXIT;
STICKLINE(KS and SS=9,0,STRTONUM(GBS[8]),15,1),COLORFF;
DRAWTEXT(KS and SS=9,STRTONUM(GBS[8])+RH,GBS[8]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=9,100,GBT[8]),COLORFFEE00,ALIGN,PXUP10;
IF JS<9 THEN EXIT;
STICKLINE(KS and SS=10,0,STRTONUM(GBS[9]),15,1),COLORFF;
DRAWTEXT(KS and SS=10,STRTONUM(GBS[9])+RH,GBS[9]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=10,100,GBT[9]),COLORFFEE00,ALIGN,PXUP10;
IF JS<10 THEN EXIT;
STICKLINE(KS and SS=11,0,STRTONUM(GBS[10]),15,1),COLORFF;
DRAWTEXT(KS and SS=11,STRTONUM(GBS[10])+RH,GBS[10]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=11,100,GBT[10]),COLORFFEE00,ALIGN,PXUP11;
IF JS<11 THEN EXIT;
STICKLINE(KS and SS=12,0,STRTONUM(GBS[11]),15,1),COLORFF;
DRAWTEXT(KS and SS=12,STRTONUM(GBS[11])+RH,GBS[11]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=12,100,GBT[11]),COLORFFEE00,ALIGN,PXUP12;
IF JS<12 THEN EXIT;
STICKLINE(KS and SS=13,0,STRTONUM(GBS[12]),15,1),COLORFF;
DRAWTEXT(KS and SS=13,STRTONUM(GBS[12])+RH,GBS[12]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=13,100,GBT[12]),COLORFFEE00,ALIGN,PXUP10;
IF JS<13 THEN EXIT;
STICKLINE(KS and SS=14,0,STRTONUM(GBS[13]),15,1),COLORFF;
DRAWTEXT(KS and SS=14,STRTONUM(GBS[13])+RH,GBS[13]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=14,100,GBT[13]),COLORFFEE00,ALIGN,PXUP10;
IF JS<14 THEN EXIT;
STICKLINE(KS and SS=15,0,STRTONUM(GBS[14]),15,1),COLORFF;
DRAWTEXT(KS and SS=15,STRTONUM(GBS[14])+RH,GBS[14]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=15,100,GBT[14]),COLORFFEE00,ALIGN,PXUP10;
IF JS<15 THEN EXIT;
STICKLINE(KS and SS=16,0,STRTONUM(GBS[15]),15,1),COLORFF;
DRAWTEXT(KS and SS=16,STRTONUM(GBS[15])+RH,GBS[15]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=16,100,GBT[15]),COLORFFEE00,ALIGN,PXUP10;
IF JS<16 THEN EXIT;
STICKLINE(KS and SS=17,0,STRTONUM(GBS[16]),15,1),COLORFF;
DRAWTEXT(KS and SS=17,STRTONUM(GBS[16])+RH,GBS[16]),COLOREEFF,ALIGN;
DRAWTEXT(KS and SS=17,100,GBT[16]),COLORFFEE00,ALIGN,PXUP10;
{
0.gif