以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助]请金字塔老师帮忙改编成图表交易程序,万分感谢! (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166012) |
-- 作者:lqf3618 -- 发布时间:2018/10/22 16:32:43 -- [求助]请金字塔老师帮忙改编成图表交易程序,万分感谢! MA7: MA(C,7); MA16 : MA(CLOSE,16); FS:= MA16 + 2*STD(CLOSE,16); FS1:= MA16 - 2*STD(CLOSE,16); SJ:=BARSLAST(DATE<>REF(DATE,1) OR BARPOS=1)+1; SJE:=SJ>=0 AND TIME<=230000 ; JS:=TIME>=233000; TJ1:=MA7>MA16 AND C>MA7; TJ2:=MA7<MA16 AND C<MA7; CL:=SJE AND C>FS; CL2:=SJE AND C<FS1; TJ3:=IF(SJ=1,0,IF(CL,1,IF(CL2,-1,REF(TJ3,1)))); TJ6:=IF(SJ=1,0,IF(REF(TJ6,1)<>1 AND (SJE AND (CL OR (TJ1 AND TJ6=-1))),1,IF(REF(TJ6,1)<>-1 AND (SJE AND (CL2 OR (TJ2 AND TJ3=1))),-1,IF(JS,0,REF(TJ6,1))))); DRAWICON(REF(TJ6,1)<>1 AND TJ6=1,L,4); DRAWICON(REF(TJ6,1)<>-1 AND TJ6=-1,H,5); DRAWTEXT(REF(TJ6,1)=0 AND TJ6=1,L,\' 开多\'); DRAWTEXT(REF(TJ6,1)=0 AND TJ6=-1,H,\' 开空\'); DRAWTEXT(REF(TJ6,1)=-1 AND TJ6=1,L,\' 平空开多\'); DRAWTEXT(REF(TJ6,1)=1 AND TJ6=-1,H,\' 平多开空\'); DRAWTEXT(REF(TJ6,1)<>0 AND TJ6=0,L,\' 收盘平仓\'); STICKLINE(TJ6>0,H,MAX(O,C),0,1),COLORRED; STICKLINE(TJ6>0,MIN(O,C),L,0,1),COLORRED; STICKLINE(TJ6>0,O,C,4,1),COLORRED; STICKLINE(TJ6<0,H,L,0,0),COLORGREEN; STICKLINE(TJ6<0,O,C,4,0),COLORGREEN; STICKLINE(TJ6=0,H,L,0,0),COLORYELLOW; |
-- 作者:wenarm -- 发布时间:2018/10/22 16:48:50 -- 参数部分请自行填充。改写很简单,就是把你开平标记的条件放到开平语句中即可
MA7: MA(C,7);
DRAWTEXT(REF(TJ6,1)=0 AND TJ6=-1,H,\' 开空\'); DRAWTEXT(REF(TJ6,1)=-1 AND TJ6=1,L,\' 平空开多\'); DRAWTEXT(REF(TJ6,1)<>0 AND TJ6=0,L,\' 收盘平仓\'); [此贴子已经被作者于2018/10/22 16:49:53编辑过]
|
-- 作者:FireScript -- 发布时间:2018/10/22 16:53:05 -- 在其中添加一些代码,其他地方没动,另外你前面还有个变量定义有问题TJ3,这个你自行处理了,不是代码语法问题了。 DRAWTEXT(REF(TJ6,1)=0 AND TJ6=1,L,\' 开多\'); buy(holding=0 and REF(TJ6,1)=0 AND TJ6=1,1,market); DRAWTEXT(REF(TJ6,1)=0 AND TJ6=-1,H,\' 开空\'); buyshort(holding=0 and REF(TJ6,1)=0 AND TJ6=-1,1,market); DRAWTEXT(REF(TJ6,1)=-1 AND TJ6=1,L,\' 平空开多\'); if REF(TJ6,1)=-1 AND TJ6=1 then begin sellshort(holding<0,holding,market); buy(holding=0,1,market); end DRAWTEXT(REF(TJ6,1)=1 AND TJ6=-1,H,\' 平多开空\'); if REF(TJ6,1)=-1 AND TJ6=-1 then begin sell(holding>0,holding,market); buyshort(holding=0,1,market); end DRAWTEXT(REF(TJ6,1)<>0 AND TJ6=0,L,\' 收盘平仓\'); if time=CLOSETIME(0) then begin sell(holding>0,holding,market); sellshort(holding<0,holding,market); end |
-- 作者:lqf3618 -- 发布时间:2018/10/23 15:34:32 -- 万分感谢wenarm高手指点!!!!!! |
-- 作者:lqf3618 -- 发布时间:2018/10/23 15:35:19 -- 万分感谢FireScript高手指点!!!!! |