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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 怎么改成循环语句??

   

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


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

主题:怎么改成循环语句??

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


加好友 发短信
等级:新手上路 帖子:67 积分:431 威望:0 精华:0 注册:2010/10/12 9:26:32
怎么改成循环语句??  发帖心情 Post By:2011/8/3 1:52:54    Post IP:125.77.155.95[只看该作者]

  怎么把以下代码写成循环语句?

if abc>13 then

       sss:=def14;

else if abc>12 then

       sss:=def13;

else if abc>11 then

       sss:=def12;

else if abc>10 then

       sss:=def11;

else if abc>9 then

       sss:=def10;

else if abc>8 then

       sss:=def9;

else if abc>7 then

       sss:=def8;

else if abc>6 then

       sss:=def7;

else if abc>5 then

       sss:=def6;

else if abc>4 then

       sss:=def5;

else if abc>3 then

       sss:=def4;

else if abc>2 then

       sss:=def3;

else if abc>1 then

       sss:=def2;

 

if abc<-13 then

       sss:=xyz14;

else if abc<-12 then

       sss:=xyz13;

else if abc<-11 then

       sss:=xyz12;

else if abc<-10 then

       sss:=xyz11;

else if abc<-9 then

       sss:=xyz10 ;

else if abc<-8 then

       sss:=xyz9;

else if abc<-7 then

       sss:=xyz8;

else if abc<-6 then

       sss:=xyz7 ;

else if abc<-5 then

       sss:=xyz6;

else if abc<-4 then

       sss:=xyz5;

else if abc<-3 then

       sss:=xyz4;

else if abc<-2 then

       sss:=xyz3;

else if abc<-1 then

       sss:=xyz2;


 回到顶部
帅哥哟,离线,有人找我吗?
26327756l
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:676 积分:2548 威望:0 精华:3 注册:2011/4/13 16:18:50
  发帖心情 Post By:2011/8/3 9:07:46    Post IP:58.246.57.26[只看该作者]

使用数组

仅供参考

 

VARIABLE:def[14]=0,xyz[14]=0;
for i=13 to 1  do

begin
if abc>i then sss:=def[i+1];

if abc<-i then sss:=xyz[i+1];
end


 回到顶部
帅哥哟,离线,有人找我吗?
弦外之音
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:67 积分:431 威望:0 精华:0 注册:2010/10/12 9:26:32
  发帖心情 Post By:2011/8/3 9:49:11    Post IP:110.80.58.17[只看该作者]

以下是引用26327756l在2011-8-3 9:07:46的发言:

使用数组

仅供参考

 

VARIABLE:def[14]=0,xyz[14]=0;
for i=13 to 1  do

begin
if abc>i then sss:=def[i+1];

if abc<-i then sss:=xyz[i+1];
end

def14 , def13 , def12  不是某个计算公式,而是分别用来定义某个条件下的价格,跟 def[14] ,def[13] , def[12] 不一样,怎么用数组??

 回到顶部
帅哥哟,离线,有人找我吗?
26327756l
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:676 积分:2548 威望:0 精华:3 注册:2011/4/13 16:18:50
  发帖心情 Post By:2011/8/3 10:04:37    Post IP:58.246.57.26[只看该作者]

VARIABLE:def[14]=0,xyz[14]=0;

def[] 和xyz[] 可以存放不同价格

你要分开赋值,就好比

def[1]:=1231;

def[2]:=34343;

def[3]:=54545;

……


 回到顶部
帅哥哟,离线,有人找我吗?
弦外之音
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:67 积分:431 威望:0 精华:0 注册:2010/10/12 9:26:32
  发帖心情 Post By:2011/8/3 10:19:03    Post IP:110.80.58.17[只看该作者]

以下是引用26327756l在2011-8-3 10:04:37的发言:

VARIABLE:def[14]=0,xyz[14]=0;

def[] 和xyz[] 可以存放不同价格

你要分开赋值,就好比

def[1]:=1231;

def[2]:=34343;

def[3]:=54545;

……

if abc>13 then

       sss:=def14;

else if abc>12 then

       sss:=def13;

 

上面用的是else if  ,else if abc>12 的前提是条件abc>13没有触发到。这个在数组中有体现吗??


 回到顶部
帅哥哟,离线,有人找我吗?
fly
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/8/3 10:21:13    Post IP:58.246.57.26[只看该作者]

ELSE IF的属于分支结构,如何能划到循环里去.

逻辑上就说不过去



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2011/8/3 10:24:51    Post IP:58.246.57.26[只看该作者]

你要那样改就不能是循环了


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
弦外之音
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:67 积分:431 威望:0 精华:0 注册:2010/10/12 9:26:32
  发帖心情 Post By:2011/8/3 10:29:05    Post IP:110.80.58.17[只看该作者]

那应该怎么改?原始代码的运算很慢,每次加载都要缓冲好几秒,怎么让它运算快一些呢??

 回到顶部
帅哥哟,离线,有人找我吗?
26327756l
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:676 积分:2548 威望:0 精华:3 注册:2011/4/13 16:18:50
  发帖心情 Post By:2011/8/3 10:35:23    Post IP:58.246.57.26[只看该作者]

VARIABLE:def[14]=0,xyz[14]=0;
for i=13 to 1  do

begin
if abc<i+1 and abc>i then sss:=def[i+1];

 

if abc>-i-1 and abc<-i then sss:=xyz[i+1]

end

 

这样设计 符合elseif 的逻辑 ,细节上有点出入,你的具体的情况不明,只写思路,仅供参考。


 回到顶部
帅哥哟,离线,有人找我吗?
弦外之音
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:67 积分:431 威望:0 精华:0 注册:2010/10/12 9:26:32
  发帖心情 Post By:2011/8/3 10:46:22    Post IP:110.80.58.17[只看该作者]

以下是引用26327756l在2011-8-3 10:35:23的发言:

VARIABLE:def[14]=0,xyz[14]=0;
for i=13 to 1  do

begin
if abc<i+1 and abc>i then sss:=def[i+1];

 

if abc>-i-1 and abc<-i then sss:=xyz[i+1]

end

 

这样设计 符合elseif 的逻辑 ,细节上有点出入,你的具体的情况不明,只写思路,仅供参考。

 

abc<i+1 and abc>i 的结果只能是abc不存在

 

if abc>13 then

       sss:=def14;

else if abc>12 then //-------------abc=13

       sss:=def13;

else if abc>11 then //-------------abc=12

       sss:=def12;

else if abc>10 then //-------------abc=11

       sss:=def11;

上述代码所要表达的意思是,从abc=2开始一直到abc=14,取最后一个满足条件的abc,得到最后一个满足条件的abc时的sss。

 


 回到顶部
总数 14 1 2 下一页