以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 后台程序编写,帮看看那里有问题。 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=64775) |
-- 作者:系统使用者 -- 发布时间:2014/5/8 12:09:05 -- 后台程序编写,帮看看那里有问题。 根据阿火:后台下单模板;编写的模型。 if holding=0 then buy(val1>0,100,LIMIT,O,0); buyshort(val1>0,100,LIMIT,O,0); ee:=enterprice; //多头平仓 IF (h-ee)>3 and (h-ee)<50 THEN SELL(1,10,LIMIT,ee+3,0),ORDERQUEUE; SELL(1,10,LIMIT,EXITPRICE+3,0),ORDERQUEUE; IF (ee-l)>1 and (ee-l)<50 THEN SELL(1,10,LIMIT,ee-1,0),ORDERQUEUE; SELL(1,10,LIMIT,EXITPRICE-3,0),ORDERQUEUE; IF TSELLHOLDING(1)>0 THEN BEGIN //空头平仓 IF (h-ee)>1 and (h-ee)<50 THEN SELLSHORT(1,10,LIMIT,ee+1,0),ORDERQUEUE; SELLSHORT(1,10,LIMIT,EXITPRICE+3,0),ORDERQUEUE; IF (ee-l)>3 and (ee-l)<50 THEN SELLSHORT(1,10,LIMIT,ee-3,0),ORDERQUEUE; SELLSHORT(1,10,LIMIT,EXITPRICE-3,0),ORDERQUEUE; tm:=50;//撤单时间 cc800988:=holding; drawtextex(1,1,800,0,\'虚拟持仓为:\'+numtostr(cc800988,0));//在图表上输入虚拟持仓监控 if not(islastbar) or workmode<>1 then exit; xiadan800988:=cc800988-hold; if xiadan800988>0.5 and tsubmit(0)>tm then tcancelex(0,0,cc800988,stklabel);//撤单功能。 tsell(1,10,mkt); tsellshort(1,10,mkt); if xiadan800988>0.5 then begin cang:=min(xiadan800988,abs(hold)); if hold<0 then begin if (h-ee)>1 and (h-ee)<50 then tsellshort(1,10,LMT,tenterprice+1,0,\'800988\'),ALLOWREPEAT; tsellshort(1,10,LMT,TEXITPRICE+3,0,\'800988\'),ALLOWREPEAT; if (ee-l)>3 and (ee-l)<50 then tsellshort(1,10,LMT,tenterprice-3,0,\'800988\'),ALLOWREPEAT; tsellshort(1,10,LMT,TEXITPRICE-3,0,\'800988\'),ALLOWREPEAT; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平空 %.0f\',cang); end cang:=xiadan800988+min(hold,0); if cang>0 then begin if (TIME>=085600 AND TIME<=90000) then tbuy(1,100,LMT,DYNAINFO(54),0,\'800988\'); if (currenttime>=93000 and currenttime>=144000) then tbuy(1,100,LMT,O,0,\'800988\'),ALLOWREPEAT; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开多 %.0f\',cang); end end if xiadan800988<-0.5 then begin cang:=min(abs(xiadan800988),abs(hold)); if hold>0 then begin if (h-ee)>3 and (h-ee)<50 then tsell(1,10,LMT,tenterprice+3,0,\'800988\'),ALLOWREPEAT; tsell(1,10,LMT,TEXITPRICE+3,0,\'800988\'),ALLOWREPEAT; if (ee-l)>1 and (ee-l)<50 then tsell(1,10,LMT,tenterprice-1,0,\'800988\'),ALLOWREPEAT; tsell(1,10,LMT,TEXITPRICE-3,0,\'800988\'),ALLOWREPEAT; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平多 %.0f\',cang); end cang:=abs(xiadan800988)-max(hold,0); if cang>0 then begin if (TIME>=085600 AND TIME<=90000) then tbuyshort(1,100,LMT,DYNAINFO(55),0,\'800988\'); if (currenttime>=93000 and currenttime>=144000) then tbuyshort(1,100,LMT,O,0,\'800988\'),ALLOWREPEAT; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开空 %.0f\',cang); end end end hold:=cc800988; 在图上看不到与阿火一样的标示。 请问那里出了问题。 |
-- 作者:系统使用者 -- 发布时间:2014/5/8 12:10:14 -- 这是阿火模型; Globalvariable:hold=drawnull; //蓝色部分改为你自己的模型 buycond:=h>ref(hhv(h,10),1); sellcond:=l<ref(llv(l,10),1); if holding>0 and sellcond then sell(1,1,market); if holding<0 and buycond then sellshort(1,1,market); if holding=0 and buycond then buy(1,1,market); if holding=0 and sellcond then buyshort(1,1,market); cc800988:=holding;//这句放在信号稳定的地方 drawtextex(1,1,800,0,\'虚拟持仓为:\'+numtostr(cc800988,0));//在图表上输入虚拟持仓以便监控 if not(islastbar) or workmode<>1 then exit; xiadan800988:=cc800988-hold; if xiadan800988>0.5 then begin cang:=min(xiadan800988,abs(hold)); if hold<0 then begin tsellshort(1,cang,mkt,0,0,\'800988\'),allowrepeat; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平空 %.0f\',cang); end cang:=xiadan800988+min(hold,0); if cang>0 then begin tbuy(1,cang,mkt,0,0,\'800988\'),allowrepeat; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开多 %.0f\',cang); end end if xiadan800988<-0.5 then begin cang:=min(abs(xiadan800988),abs(hold)); if hold>0 then begin tsell(1,cang,mkt,0,0,\'800988\'),allowrepeat; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平多 %.0f\',cang); end cang:=abs(xiadan800988)-max(hold,0); if cang>0 then begin tbuyshort(1,cang,mkt,0,0,\'800988\'),allowrepeat; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开空 %.0f\',cang); end end hold:=cc800988; |
-- 作者:jinzhe -- 发布时间:2014/5/8 13:29:08 -- 把你的公式贴完整 |
-- 作者:系统使用者 -- 发布时间:2014/5/8 15:05:40 -- 完整 |
-- 作者:jinzhe -- 发布时间:2014/5/8 15:06:24 -- 贴完整的公式, |
-- 作者:系统使用者 -- 发布时间:2014/5/8 15:06:46 -- buy(val1>0,100,LIMIT,O,0); val1>0可以随便条件
|
-- 作者:系统使用者 -- 发布时间:2014/5/8 15:11:25 -- If holding=0 AND h>ref(hhv(h,3),1) Then buy(1,100,LIMIT,O,0); buyshort(1,100,LIMIT,O,0); [此贴子已经被作者于2014/5/8 15:11:48编辑过]
|
-- 作者:jinzhe -- 发布时间:2014/5/8 15:34:18 -- 代码不完整我不能确认到底是缺的那些代码问题还是其他问题,你贴出你写的全部代码 |