[PEL] 复制代码
//以下代码对SC合约无效,SC合约代码无法很好的构建
VARIABLE:codeArr[12]:='';//codeArr 品种代码数组;volArr 成交量数组;
STR:=STRTRIMRIGHT( STKLABEL, '0123456789');
//过滤掉垃圾合约
IF STRCMP(STR,'WR')=0 OR STRCMP(STR,'BB')=0 OR STRCMP(STR,'JR')=0 OR STRCMP(STR,'LR')=0 OR STRCMP(STR,'PM')=0 OR STRCMP(STR,'RS')=0 OR STRCMP(STR,'RI')=0 THEN EXIT;
//双年份合约,豆一和白糖虽然取消双年份,但是金字塔为保证老用户策略的正常操作,所以保持不变。因此依旧需要区分。
if STRCMP(STR,'AY')=0 or STRCMP(STR,'BUY')=0 OR STRCMP(STR,'SRY')=0 THEN BEGIN
STR:=STRREPLACE(STR , 'Y','X' );
END
//生成每个月的合约代码 并存入到数组中。
for i=1 to 12 do //默认按照该品种有12个月份的合约。
begin
codeArr[i]:= STRCAT(str,STRRIGHT(NUMTOSTR(i/100,2),2));
end
sumvol:0;
for j=1 to 12 do
begin
code:=codeArr[j];//code就是合约代码
vox:=CALLSTOCK(code,vtvol,6,0);//调用当日的日线成交量数据
sumvol:=sumvol+vox;
end
仅供参考,部分品种(如原油)无法奏效。 添加品种到板块 使用 ADDTOBLOCK函数即可。
上面代码 你如果是图表,你只能每个品种上运行一次 才能把全部品种的结果计算出来。没有其他快捷方式。单次运行只能计算出当前品种各个月的成交量累计值。 |