| --  作者:zyttony1 --  发布时间:2012/10/11 15:21:01
 --  为什么没有平多?
 
 //连续三根红线就做多,连续三根阴线就做空runmode:0;
 ds:=ref(all(close<open,3),1);
 zs:=ref(all(close>open,3),1);
 if holding=0 then begin
 if ds then
 buy(1,1,limitr,open);
 end
 if holding=0 then begin
 if zs then
 buyshort(1,1,limitr,open);
 end
 //if holding>0 then begin
 sell(1,holding,limitr,close); // 这句问什么没有执行?有持仓,但是一直都没有平掉
 //end
 if holding<0 then begin
 sellshort(1,holding,limitr,close);
 end
 盈亏:asset-50000,colorred,linethick2;
       你好,请问上面的代码 sell(1,holding,limitr,close);  为什么没有执行?有1手多仓,启动了图表程序化,但是一直都没有平。   另外,请问代码是什么时候开始执行的?是每来一次行情就执行一遍代码,还是每次K线开始就执行代码?感觉测试起来跟想法不太一样     
 | 
    
      | --  作者:RogarZ --  发布时间:2012/10/11 17:04:14
 --
 
 LZ,我仔细看了下。你没有遵循 先平后开的原则   if holding=0 then begin(1)
 if zs then (2)buyshort(1,1,limitr,open);
 end
 //if holding>0 then begin
 sell(1,holding,limitr,close); //
 //end   红色平仓语句要写在开仓语句之前,你也没讲思路,所以不清是改放(1)的位置还是(2)的位置
 [此贴子已经被作者于2012-10-11 17:04:36编辑过] 
 | 
    
      | --  作者:fly --  发布时间:2012/10/12 16:02:29
 --
 
 请加上以下条件,再运行看看 if holding>0 AND ENTERBARS>1 then beginsell(1,holding,limitr,close);
 end if holding<0 AND ENTERBARS>1 then begin
 sellshort(1,holding,limitr,close);
 end
 
 |