//连续三根红线就做多,连续三根阴线就做空
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线开始就执行代码?感觉测试起来跟想法不太一样
这一手是不是手工开的 手工开的程序化是不认的
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)的位置
运行模式如果是逐k线的话 就是没根k线走完一次
你好,是逐K线的,每根K线走完后,代码运行一次,应该按照从上到下执行吧,每一句代码是否都应该执行才对?
即使没有按照先平后开,那这句sell(1,holding,limitr,close)也应该执行啊
请加上以下条件,再运行看看
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
这个问题论坛搜搜一大堆