| 以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [原创] (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=135744)  | 
    
| --  作者:我不是新手 -- 发布时间:2016/7/19 11:21:42 -- [原创] 老师帮我看看这代码出错在哪了、是不是这开平仓的顺序搞错了,放在图表中这信号都是错的、 我检查了一个上午了都没找出原因、麻烦了、谢谢!! INPUT:P(6,2,150,2),S(12,2,150,2),M(20,2,100,6); variable:zs=c,hl=c; MA6:MA(C,P); MA12:MA(C,S); MA20:MA(C,M); buycond:C>ref(hhv(h,5),1) AND C>MA20 ;//开多 sellcond:C<ref(llv(l,5),1) AND C<MA20 ;//开空 K1:CROSS(MA12,MA6); K2:CROSS(MA6,MA12); HH:=HHV(H,ENTERBARS+1 ); LL:=LLV(L,ENTERBARS+1 ); if holding>0 then begin  多止损:zs;  if l<zs then sell(1,1,limitr,min(o,zs)-mindiff);  else if K1 then sell(1,1,limitr,c); end if holding<0 then begin  空止损:zs;  if h>zs then sellshort(1,1,limitr,max(o,zs)+mindiff);  else if K2 then sellshort(1,1,limitr,c); end //盈 if  HOLDING>0 AND HH<=AVGENTERPRICE+0.03*AVGENTERPRICE then begin//多盈 sell(1,1,MARKET); end if HOLDING<0 AND  LL>=AVGENTERPRICE-0.03*AVGENTERPRICE then begin //空盈 sellshort(1,1,MARKET); end if holding=0 and buycond then begin  buy(1,1,limitr,c);  zs:=AVGENTERPRICE-0.01*AVGENTERPRICE;  hl:=c; end if holding=0 and sellcond then begin  buyshort(1,1,limitr,c);  zs:=AVGENTERPRICE+0.01*AVGENTERPRICE;  hl:=c; end if holding>0 and enterbars>0 and HH>=hl+0.02*AVGENTERPRICE then begin  hl:=AVGENTERPRICE;  zs:=hl+0.01*AVGENTERPRICE; end if holding<0 and enterbars>0 and LL<=hl-0.02*AVGENTERPRICE then begin  hl:=AVGENTERPRICE;  zs:=hl-0.01*AVGENTERPRICE; end 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY;  | 
    
| --  作者:jinzhe -- 发布时间:2016/7/19 13:21:40 -- 请具体的讲一下,错误的信号在哪里,正确的该是什么样的  | 
    
| --  作者:我不是新手 -- 发布时间:2016/7/19 14:53:40 -- 这里开仓条件是破前5根的最高点并且大于20日均线开仓、 止损是1%,若盈利2% 上移止盈1%,还有一种出场方式是金叉和死叉出场、 但是这个加载到图表上是当根K线就出场了,你可以把代码放到公司里面去看看、、我觉得逻辑没错啊 
         | 
    
| --  作者:jinzhe -- 发布时间:2016/7/19 15:21:35 -- INPUT:P(6,2,150,2),S(12,2,150,2),M(20,2,100,6); 
 
 
 HH:=HHV(H,ENTERBARS+1 ); 
 
  if l<enterprice*0.99 and enterbars>0 then 止损多1:sell(1,1,limitr,min(o,zs)-mindiff);  if h>enterprice*1.01 and enterbars>0 then 止损空1: sellshort(1,1,limitr,max(o,zs)+mindiff); 
 //盈 
 
  |