Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:条件语句

1楼
thomasv 发表于:2019/12/10 16:47:01
我有两个条件condA和condB,哪个条件先满足就先执行它的语句改怎么写。用两个if分开写吗。
2楼
FireScript 发表于:2019/12/10 16:51:57
 分开写2个if语句。但是如果同时满足 就按照代码前后顺序执行。
3楼
thomasv 发表于:2019/12/11 16:59:10
我分开写了两个if语句,但是测试的时候发现会先后开两个仓,在先后平两个仓。我语句里用了holding=0的判断
4楼
FireScript 发表于:2019/12/11 17:10:44
 方便的话,帖下你的代码。
5楼
thomasv 发表于:2019/12/11 17:25:39
开多条件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

会出现两个先后买入,然后先后卖出。我的本意哪个条件先满足,就先执行,另一个不用执行。
6楼
FireScript 发表于:2019/12/12 9:12:20
 看代码逻辑应该不会出现你说的问题。然后这里最好改下,你之前写的不规范。
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

7楼
thomasv 发表于:2019/12/12 11:24:33
如何控制在一根k线上只允许开一次仓
8楼
yukizzc 发表于:2019/12/12 11:31:04
if enterbars=-1 or enterbars>0 then 
buy();


用开仓历史来控制
共8 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.08008 s, 3 queries.