runmode:0;
input:length(20,1,60,1);
vector:=27;
variable:stknames[vector]=0;
variable:stkamounts[vector]=0;
variable:stkposes[vector]=0;
stknames[1]:='cu00';
stknames[2]:='ru00';
stknames[3]:='zn00';
stknames[4]:='pb00';
stknames[5]:='wr00';
stknames[6]:='l00';
stknames[7]:='ta00';
stknames[8]:='al00';
stknames[9]:='p00';
stknames[10]:='v00';
stknames[11]:='cf00';
stknames[12]:='y00';
stknames[13]:='ro00';
stknames[14]:='srx00';
stknames[15]:='rb00';
stknames[16]:='ax00';
stknames[17]:='if00';
stknames[18]:='b00';
stknames[19]:='j00';
stknames[20]:='m00';
stknames[21]:='fu00';
stknames[22]:='er00';
stknames[23]:='c00';
stknames[24]:='wsx00';
stknames[25]:='wt00';
stknames[26]:='au00';
stknames[27]:='me00';
stkamounts[1]:=ema(callstock('cu00',vtamount,6,-1),length);
stkamounts[2]:=ema(callstock('ru00',vtamount,6,-1),length);
stkamounts[3]:=ema(callstock('zn00',vtamount,6,-1),length);
stkamounts[4]:=ema(callstock('pb00',vtamount,6,-1),length);
stkamounts[5]:=ema(callstock('wr00',vtamount,6,-1),length);
stkamounts[6]:=ema(callstock('l00',vtamount,6,-1),length);
stkamounts[7]:=ema(callstock('ta00',vtamount,6,-1),length);
stkamounts[8]:=ema(callstock('al00',vtamount,6,-1),length);
stkamounts[9]:=ema(callstock('p00',vtamount,6,-1),length);
stkamounts[10]:=ema(callstock('v00',vtamount,6,-1),length);
stkamounts[11]:=ema(callstock('cf00',vtamount,6,-1),length);
stkamounts[12]:=ema(callstock('y00',vtamount,6,-1),length);
stkamounts[13]:=ema(callstock('ro00',vtamount,6,-1),length);
stkamounts[14]:=ema(callstock('srx00',vtamount,6,-1),length);
stkamounts[15]:=ema(callstock('rb00',vtamount,6,-1),length);
stkamounts[16]:=ema(callstock('ax00',vtamount,6,-1),length);
stkamounts[17]:=ema(callstock('if00',vtamount,6,-1),length);
stkamounts[18]:=ema(callstock('b00',vtamount,6,-1),length);
stkamounts[19]:=ema(callstock('j00',vtamount,6,-1),length);
stkamounts[20]:=ema(callstock('fu00',vtamount,6,-1),length);
stkamounts[21]:=ema(callstock('m00',vtamount,6,-1),length);
stkamounts[22]:=ema(callstock('er00',vtamount,6,-1),length);
stkamounts[23]:=ema(callstock('c00',vtamount,6,-1),length);
stkamounts[24]:=ema(callstock('wsx00',vtamount,6,-1),length);
stkamounts[25]:=ema(callstock('wt00',vtamount,6,-1),length);
stkamounts[26]:=ema(callstock('au00',vtamount,6,-1),length);
stkamounts[27]:=ema(callstock('me00',vtamount,6,-1),length);
for i=1 to vector do begin
stkposes[i]:=i;
end
for j=2 to vector do begin
for i=vector downto j do begin
if stkamounts[i]<stkamounts[i-1] then begin
t:=stkamounts[i];
stkamounts[i]:=stkamounts[i-1];
stkamounts[i-1]:=t;
t1:=stkposes[i];
stkposes[i]:=stkposes[i-1];
stkposes[i-1]:=t1;
end
end
end
for i=1 to vector do begin
if stricmp(stklabel,stknames[stkposes[vector-i+1]])=0 then begin
if i<=10 then
mypos:i,noaxis,coloryellow,linethick2;
end
end
runmode:0;
input:length(20,1,60,1);
vector:=27;
variable:stknames[vector]=0;
variable:stktrades[vector]=0;
variable:stkposes[vector]=0;
stknames[1]:='cu00';
stknames[2]:='ru00';
stknames[3]:='zn00';
stknames[4]:='pb00';
stknames[5]:='wr00';
stknames[6]:='l00';
stknames[7]:='ta00';
stknames[8]:='al00';
stknames[9]:='p00';
stknames[10]:='v00';
stknames[11]:='cf00';
stknames[12]:='y00';
stknames[13]:='ro00';
stknames[14]:='srx00';
stknames[15]:='rb00';
stknames[16]:='ax00';
stknames[17]:='if00';
stknames[18]:='b00';
stknames[19]:='j00';
stknames[20]:='m00';
stknames[21]:='fu00';
stknames[22]:='er00';
stknames[23]:='c00';
stknames[24]:='wsx00';
stknames[25]:='wt00';
stknames[26]:='au00';
stknames[27]:='me00';
for i=1 to vector do begin
for j=1 to length do begin
stktrades[i]:=stktrades[i]+callstock(stknames[i],vtvol,6,-j)*(callstock(stknames[i],vthigh,6,-j)-callstock(stknames[i],vtlow,6,-j))*multiplier;
end
stktrades[i]:=stktrades[i]/length;
end
for i=1 to vector do begin
stkposes[i]:=i;
end
for j=2 to vector do begin
for i=vector downto j do begin
if stktrades[i]<stktrades[i-1] then begin
t:=stktrades[i];
stktrades[i]:=stktrades[i-1];
stktrades[i-1]:=t;
t1:=stkposes[i];
stkposes[i]:=stkposes[i-1];
stkposes[i-1]:=t1;
end
end
end
for i=1 to vector do begin
if stricmp(stklabel,stknames[stkposes[vector-i+1]])=0 then begin
if i<=10 then
mypos:i,noaxis,coloryellow,linethick2;
end
end
runmode:0;
input:length(20,1,60,1);
vector:=27;
variable:stknames[vector]=0;
variable:stktrades[vector]=0;
variable:stkposes[vector]=0;
stknames[1]:='cu00';
stknames[2]:='ru00';
stknames[3]:='zn00';
stknames[4]:='pb00';
stknames[5]:='wr00';
stknames[6]:='l00';
stknames[7]:='ta00';
stknames[8]:='al00';
stknames[9]:='p00';
stknames[10]:='v00';
stknames[11]:='cf00';
stknames[12]:='y00';
stknames[13]:='ro00';
stknames[14]:='srx00';
stknames[15]:='rb00';
stknames[16]:='ax00';
stknames[17]:='if00';
stknames[18]:='b00';
stknames[19]:='j00';
stknames[20]:='m00';
stknames[21]:='fu00';
stknames[22]:='er00';
stknames[23]:='c00';
stknames[24]:='wsx00';
stknames[25]:='wt00';
stknames[26]:='au00';
stknames[27]:='me00';
for i=1 to vector do begin
for j=1 to length do begin
stktrades[i]:=stktrades[i]+callstock(stknames[i],vtvol,6,-j)*(callstock(stknames[i],vthigh,6,-j)-callstock(stknames[i],vtlow,6,-j))*multiplier;
end
stktrades[i]:=stktrades[i]/length;
end
for i=1 to vector do begin
stkposes[i]:=i;
end
for j=2 to vector do begin
for i=vector downto j do begin
if stktrades[i]<stktrades[i-1] then begin
t:=stktrades[i];
stktrades[i]:=stktrades[i-1];
stktrades[i-1]:=t;
t1:=stkposes[i];
stkposes[i]:=stkposes[i-1];
stkposes[i-1]:=t1;
end
end
end
for i=1 to vector do begin
if stricmp(stklabel,stknames[stkposes[vector-i+1]])=0 then begin
if i<=10 then
mypos:i,noaxis,coloryellow,linethick2;
end
end
runmode:0;
length:=20;
bkname:='连续合约';
stks:=stkcount(bkname);
variable:stknames[stks]=0;
variable:stktrades[stks]=0;
variable:stkposes[stks]=0;
variable:mypos=0;
if date>ref(date,1) then begin
for i=1 to stks do begin
code:=stkfromblk(bkname,i);
stknames[i]:=strremove(code,0,2);
end
for i=1 to stks do begin
for j=1 to length do begin
stktrades[i]:=stktrades[i]+callstock(stknames[i],vtvol,6,-j)*(callstock(stknames[i],vthigh,6,-j)-callstock(stknames[i],vtlow,6,-j))*multiplier;
end
stktrades[i]:=stktrades[i]/length;
end
for i=1 to stks do begin
stkposes[i]:=i;
end
for j=2 to stks do begin
for i=stks downto j do begin
if stktrades[i]<stktrades[i-1] then begin
t:=stktrades[i];
stktrades[i]:=stktrades[i-1];
stktrades[i-1]:=t;
t1:=stkposes[i];
stkposes[i]:=stkposes[i-1];
stkposes[i-1]:=t1;
end
end
end
for i=1 to stks do begin
if stricmp(stklabel,stknames[stkposes[stks-i+1]])=0 then begin
mypos:=i;
end
end
end
位置:mypos,linethick0;
runmode:0;
length:=20;
bkname:='连续合约';
stks:=stkcount(bkname);
variable:stknames[stks]=0;
variable:stktrades[stks]=0;
variable:stkposes[stks]=0;
variable:mypos=0;
variable:cantrade=0;
if date>ref(date,1) then begin
for i=1 to stks do begin
code:=stkfromblk(bkname,i);
stknames[i]:=strremove(code,0,2);
end
for i=1 to stks do begin
stktrades[i]:=0;
for j=1 to length do begin
stktrades[i]:=stktrades[i]+callstock(stknames[i],vtamount,6,-j);
end
stktrades[i]:=stktrades[i]/length;
end
for i=1 to stks do begin
stkposes[i]:=i;
end
for j=2 to stks do begin
for i=stks downto j do begin
if stktrades[i]<stktrades[i-1] then begin
t:=stktrades[i];
stktrades[i]:=stktrades[i-1];
stktrades[i-1]:=t;
t1:=stkposes[i];
stkposes[i]:=stkposes[i-1];
stkposes[i-1]:=t1;
end
end
end
for i=1 to stks do begin
if stricmp(stklabel,stknames[stkposes[stks-i+1]])=0 then begin
mypos:=i;
end
end
if mypos<=round(stks/3) then
cantrade:=1;
end
可交易:cantrade,linethick0;