以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  为什么没有平多?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=29752)

--  作者: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线开始就执行代码?感觉测试起来跟想法不太一样

 

 


--  作者:zyttony1
--  发布时间:2012/10/11 15:23:31
--  

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

--  作者:RogarZ
--  发布时间:2012/10/11 15:41:05
--  

这一手是不是手工开的  手工开的程序化是不认的


--  作者: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编辑过]

--  作者:jzt321123
--  发布时间:2012/10/11 20:13:45
--  

运行模式如果是逐k线的话 就是没根k线走完一次


--  作者:zyttony1
--  发布时间:2012/10/12 15:06:14
--  

你好,是逐K线的,每根K线走完后,代码运行一次,应该按照从上到下执行吧,每一句代码是否都应该执行才对?


--  作者:zyttony1
--  发布时间:2012/10/12 15:08:32
--  

即使没有按照先平后开,那这句sell(1,holding,limitr,close)也应该执行啊


--  作者:lichenghu
--  发布时间:2012/10/12 15:17:52
--  
楼主您那手单子是手工开的吧!您的图表 日志里没有这手单子
--  作者: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


--  作者:jzt3321
--  发布时间:2012/10/13 21:57:33
--  

这个问题论坛搜搜一大堆