-- 作者: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 begin sell(1,holding,limitr,close);
end
if holding<0 AND ENTERBARS>1 then begin sellshort(1,holding,limitr,close); end
|