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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 条件语句

   

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


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

主题:条件语句

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


加好友 发短信
等级:新手上路 帖子:53 积分:0 威望:0 精华:0 注册:2019/11/6 22:58:39
条件语句  发帖心情 Post By:2019/12/10 16:47:01    Post IP:218.75.76.114[只看该作者]

我有两个条件condA和condB,哪个条件先满足就先执行它的语句改怎么写。用两个if分开写吗。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/12/10 16:51:57    Post IP:180.169.30.6[只看该作者]

 分开写2个if语句。但是如果同时满足 就按照代码前后顺序执行。


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


加好友 发短信
等级:新手上路 帖子:53 积分:0 威望:0 精华:0 注册:2019/11/6 22:58:39
  发帖心情 Post By:2019/12/11 16:59:10    Post IP:218.75.76.114[只看该作者]

我分开写了两个if语句,但是测试的时候发现会先后开两个仓,在先后平两个仓。我语句里用了holding=0的判断

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/12/11 17:10:44    Post IP:180.169.30.6[只看该作者]

 方便的话,帖下你的代码。


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


加好友 发短信
等级:新手上路 帖子:53 积分:0 威望:0 精华:0 注册:2019/11/6 22:58:39
  发帖心情 Post By:2019/12/11 17:25:39    Post IP:218.75.76.114[只看该作者]

开多条件1:=ALL(cond1,zz) && High>=MA1 && HOLDING = 0;
开多价格1:=MA1;
开多条件2:=HIGH>=MA4 && High>= Middlehv && HOLDING = 0 ;
开多价格2:=max(MA4,Middlehv);

if KD:=开多条件1>0 then begin
   priceKD:= MAX(OPEN,开多价格1);
    BUY(1,Tc,LIMITR,priceKD+1);
end

if KD:=开多条件2>0  then begin
   priceKD:= MAX(OPEN,开多价格2);
   BUY(1,Tc,LIMITR,priceKD+1);
end

if PD:=平多条件>0 then begin
   pricePD:= Min(Open,平多价格1);
  SELL(1,Tc,LIMITR,pricePD-1);

end

会出现两个先后买入,然后先后卖出。我的本意哪个条件先满足,就先执行,另一个不用执行。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/12/12 9:12:20    Post IP:180.169.30.6[只看该作者]

 看代码逻辑应该不会出现你说的问题。然后这里最好改下,你之前写的不规范。
if 开多条件1 then begin
   priceKD:= MAX(OPEN,开多价格1);
    BUY(1,Tc,LIMITR,priceKD+1);
end

if 开多条件2  then begin
   priceKD:= MAX(OPEN,开多价格2);
   BUY(1,Tc,LIMITR,priceKD+1);
end



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


加好友 发短信
等级:新手上路 帖子:53 积分:0 威望:0 精华:0 注册:2019/11/6 22:58:39
  发帖心情 Post By:2019/12/12 11:24:33    Post IP:115.193.149.79[只看该作者]

如何控制在一根k线上只允许开一次仓

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/12/12 11:31:04    Post IP:180.169.30.6[只看该作者]

if enterbars=-1 or enterbars>0 then 
buy();


用开仓历史来控制

 回到顶部