欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 这个循环写法应该怎么写

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4317人关注过本帖树形打印复制链接

主题:这个循环写法应该怎么写

帅哥哟,离线,有人找我吗?
FireScript
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/12/20 13:49:18    Post IP:180.169.30.6[显示全部帖子]

原帖已经回复,去原帖看下我的回复。你说的这个已经涵盖在那个代码里面了。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/12/20 14:08:31    Post IP:180.169.30.6[显示全部帖子]

图片点击可在新窗口打开查看

 

t:=STRRIGHT(STKLABEL ,2);
z:=STRTRIMRIGHT(STKLABEL ,t );//截取出品种名称,如AL,RB

上面是取得当前品种是那个品种,是al还是rb

下面这部分是拼接合约代码的代码

从01拼接到12

for i=1 to 12 do

begin

if i<10 then temp:=STRCAT(z,'0'+NUMTOSTR(i,0)); else if then temp:=STRCAT(z,NUMTOSTR(i,0));//拼接品种代码名称

//使用temp的代码

end



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/12/20 14:27:07    Post IP:180.169.30.6[显示全部帖子]

图片点击可在新窗口打开查看

t:=STRRIGHT(STKLABEL ,2);
z:=STRTRIMRIGHT(STKLABEL ,t );//截取出品种名称,如AL,RB

 

//n是从1到12.m也是1到12. 假设这2变量个是你比较之后取到的最大和次大合约对应的数值(1-12)。

 

if n<10 then k1code:=STRCAT(z,'0'+NUMTOSTR(n,0)); else if then k1code:=STRCAT(z,NUMTOSTR(n,0));//拼接品种代码名称

if m<10 then k2ode:=STRCAT(z,'0'+NUMTOSTR(m,0)); else if then k2code:=STRCAT(z,NUMTOSTR(m,0));//拼接品种代码名称

 

k1:callstock(k1code,vtclose,6,0);

k2:callstock(k2code,vtclose,6,0);//callstock参数你根据需求自己可以改下



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/12/20 15:49:13    Post IP:180.169.30.6[显示全部帖子]

我测试都正常啊, 你是不是改了什么。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/12/20 16:18:30    Post IP:180.169.30.6[显示全部帖子]

代码都贴出来吧


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/12/20 16:45:09    Post IP:180.169.30.6[显示全部帖子]

补充好数据先。我设置了只在最后一个K计算和显示。历史上的每个K都计算会卡死。

VARIABLE:arry[12]:=0;
t:=STRRIGHT(STKLABEL ,2);
z:=STRTRIMRIGHT(STKLABEL ,t );//截取出品种名称,如AL,RB
temp:='';

if ISLASTBAR then begin //如果不加这一句,历史K都走一次循环,会非常卡。
FOR  i=1 to 12 do
begin
if i<10 then temp:=STRCAT(z,'0'+NUMTOSTR(i,0)); else if then temp:=STRCAT(z,NUMTOSTR(i,0));//拼接品种代码名称
openints:=CALLSTOCK(temp,vtOPENINT,6,0);//直接引用持仓量
if not(openints) then arry[i]:=0;else if then arry[i]:=openints;//如果取不到持仓量数据,直接写入0.
end

op1:=0;//最大持仓量合约
op2:=0;//最小持仓量合约

for j=1 to 12 do
begin
if HOD2(arry, 0, arry[j])=1 then op1:=j;
if HOD2(arry, 0, arry[j])=2 then op2:=j;
if op1*op2 <>0 then break;
end
end

 

if op1<10 and op1<>0 then temp2:=STRCAT(z,'0'+NUMTOSTR(op1,0)); else if then temp2:=STRCAT(z,NUMTOSTR(op1,0));
if op2<10 and op2<>0 then temp3:=STRCAT(z,'0'+NUMTOSTR(op2,0)); else if then temp3:=STRCAT(z,NUMTOSTR(op2,0));

k1:CALLSTOCK(temp2,vtCLOSE,6,0);//价格
k2:CALLSTOCK(temp3,vtCLOSE,6,0);

k1code:op1;//显示当前那个合约是最大持仓量的合约

k2code:op2;//显示当前那个合约是第二大持仓量的合约



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/12/20 17:07:07    Post IP:180.169.30.6[显示全部帖子]

以下是引用jiaoyizhe在2017/12/20 17:04:11的发言:
哎,无解的问题,我怎么可能没补充数据

看 12楼的回复。  



命数如织,当如磐石。
 回到顶部