以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  老师,帮我看一下哪里错了  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=74111)

--  作者:IF左边
--  发布时间:2015/1/7 15:07:41
--  老师,帮我看一下哪里错了
在40倍线未下穿60倍线之前,只开一次仓,这样写之后,还是40倍线未下穿60倍线之前,出现连续的开仓信号。哪里写错了,老师帮我看一下。
variable:n=0;
if 平空开多条件 and holding=0  and n=0 then begin
   sellshort(1,0,market);
   buy(holding=0,1,market);
   n:=1;
end
 
if cross(ma60,ma40)  and n=1 then begin n:=0;
end


--  作者:IF左边
--  发布时间:2015/1/7 15:09:23
--  
图中紫线是40倍线,绿线是60倍线
--  作者:IF左边
--  发布时间:2015/1/7 15:09:50
--  

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

--  作者:IF左边
--  发布时间:2015/1/7 15:11:08
--  
还有,开仓后,马上就平了,不知止损与保本这样写的,不知哪里错了,也麻烦帮我检查一下,
if l<=AVGENTERPRICE-2*atr then begin
    sell(1,0,market);
   end//多头2N止损
if hhv(h,enterbars+1)>=enterprice+2*atr and hhv(h,enterbars+1)<enterprice+6*atr and l<=enterprice and enterbars>0 then begin//多头2N保本
   sell(1,0,market);//多头2N保本
   end
if hhv(h,enterbars+1)>enterprice+6*atr  and l<hhv(h,enterbars+1)-2*atr then begin
   sell(1,0,market);
   end//多头6N利后回撤2N平仓


--  作者:pyd
--  发布时间:2015/1/7 15:12:20
--  
条件写错了,平空前holding<0,你写一个holding=0怎么会平仓
--  作者:IF左边
--  发布时间:2015/1/7 15:19:56
--  
这个holding=0是表示没有持仓的情况下开多单,先平后开的原则,
--  作者:IF左边
--  发布时间:2015/1/7 15:21:58
--  
现在开仓是可以开,主要问题是两个,一是开仓后,40倍线没有下穿60倍线,还会出现开仓信号。二是有一些单子,开仓后马上又开仓价平了。感觉限制开仓与止损或保本的语句没有写对。
--  作者:jinzhe
--  发布时间:2015/1/7 15:32:27
--  

1.不会的,是你的错觉,不满足条件必然不会有信号,有信号必然满足条件

2.你加个enterbars>0的条件,