以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请问老师,以下的开多语句该怎么写,编译老是通不过 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166214) |
-- 作者:cjy123 -- 发布时间:2018/10/30 13:30:38 -- 请问老师,以下的开多语句该怎么写,编译老是通不过 请问老师,以下的开多语句该怎么写,编译老是通不过,谢谢! |
-- 作者:wenarm -- 发布时间:2018/10/30 13:41:07 -- buy是函数,不能用冒号 buy(((cross(CLOSE,ma1) or z4) and CLOSE>ma3),2,market);
|
-- 作者:FireScript -- 发布时间:2018/10/30 13:45:17 -- 定义的变量不要和已有的关键词冲突,关键词一般是显眼蓝色的。 |
-- 作者:cjy123 -- 发布时间:2018/10/30 14:06:51 -- 老师帮我看一下这个编写得是否有错误好吗 老师帮我看一下这个系统编写得是否有错误好吗,怎么编译老通不过,谢谢! MA1:=MA(CLOSE,A); MA2:=MA(CLOSE,B); MA3:=MA(CLOSE,D); z1:=ref(hhv(h,10),ENTERBARS+1);//开仓前10个K最高价 p1:=hhv(h,ENTERBARS+1);//临时变量a p2:=ref(hhv(h,10),ENTERBARS-9);//临时变量b //2个临时变量是因为部分函数不能在if语句下使用 if ENTERBARS+1>0 and ENTERBARS+1<=9 then z2:=p1; else if then z2:=p2;// 开仓后10个K,不满足10个K按照已有的K去统计 z3:=cross(CLOSE,ma1);//收盘价上穿ma1 z4:=c>ma1+MINDIFF and c<=ma1+15*MINDIFF;//收盘价在ma1+(1-15)点范畴之内。 Z5:=REF(LLV(LOW,10),ENTERBARS+1); P3:=LLV(LOW,ENTERBARS+1); P4:=REF(LLV(LOW,10),ENTERBARS-9); if ENTERBARS+1>0 and ENTERBARS+1>=9 then z6:=p3; else if then z6:=p4; Z7:=cross(ma1,CLOSE); Z8:=c<ma1-MINDIFF and c>=ma1-15*MINDIFF; buy(((cross(CLOSE,ma1) or z4) and CLOSE>ma3),2,market); if buy then begin (((z1>z2) or z3 or z4) and holding>0); buy(1,2,market); end K1:=(MA1>MA2) AND (ASKPRICE<=MA2-25*MINDIFF); K2:=(MA1<MA2) AND (ASKPRICE<=MA1-25*MINDIFF); SELL((K1 OR K2),0,MARKETR); BUYSHORT((CROSS(MA1,CLOSE) OR Z8) AND CLOSE<MA3,2,MARKET); if BUYSHORT then begin (((z5>z6) or z7 or z8) and holding>0); buyshort(1,2,market); end K3:=(MA1<MA2) AND (BIDPRICE>=MA2+25*MINDIFF); K4:=(MA1>MA2) AND (BIDPRICE>=MA1+25*MINDIFF); SELLSHORT((K3 OR K4),0,MARKETR); 系统思路是好下: 指标: 5日均线 10日均线 60日均线 当价格在60日均线以上只开多,在60日均线以下只开空.
开多:价格在60日均线以上,当前根K线收盘价至下向上突破5日均线或当前根K线收盘价>5日均线(1-15个基点)范围内,在下根K线开盘以市价开多2手. 加仓:当开多后10根K线最高价>开多前10根K线最高价,当价格再次回调至5日均线附近时,当前根K线收盘价至下向上突破5日均线或当前根K线收盘价 >5日均线(1-15个基点)范围内,在下根K线开盘以市价加多2手,以此累推. 止损:当5日均线>10日均线时,当价格<(10日均线-25点),以市价全部平仓. 当5日均线<10日均线时,当价格<(5日均线-25点),以市价全部平仓.
开空:价格在60日均线以下,当前根K线收盘价至上向下突破5日均线或当前根K线收盘价<5日均线(1-15个基点)范围内,在下根K线开盘以市价开空2手. 止损:当5日均线<10日均线时,当价格>(10日均线+25点),以市价全部平仓. 当5日均线>10日均线时,当价格>(5日均线+25点),以市价全部平仓. |
-- 作者:FireScript -- 发布时间:2018/10/30 14:26:30 -- 你这里,我修改个样式给你看下: 开仓:buy(((cross(CLOSE,ma1) or z4) and CLOSE>ma3),2,market); if (((z1>z2) or z3 or z4) and holding>0) then begin buy(1,2,market); end 你原先写的不符合基本语法了。我给你调整下基本语法。后面开空的也是同理修改下试下。 还有那个均线参数A B D不知道你是否定义了,如果没有你补充下定义。
|
-- 作者:cjy123 -- 发布时间:2018/10/30 14:50:50 -- 好的,谢谢老师 好的,谢谢老师 |
-- 作者:cjy123 -- 发布时间:2018/10/30 17:27:05 -- 老师您好,按您的提示修改了,可是反应到图表上全都是乱了,并没有按我原来的思路开平仓,是不是哪里出了问题了搞错了,麻烦您能不能帮我检查一下,谢谢 |
-- 作者:FireScript -- 发布时间:2018/10/31 9:47:14 -- 帖下你自己修改后的代码。你改过之后的代码不贴出来,我怎么知道你的问题在什么地方呢。 |