以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- PEL图表程序化,主图计算没有信号 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173575) |
-- 作者:jzt666 -- 发布时间:2019/12/17 9:35:23 -- PEL图表程序化,主图计算没有信号 代码如下,为什么主图计算什么都没有 INPUT:ZS(30,1,100,1); INPUT:ZY(80,1,100,1); INPUT:HT(40,1,100,1); VARIABLE:N=0; SS:=1; 当前时间:=CurrentTime(); 开仓时间:=(当前时间>=091500 and 当前时间<120000); 平仓时间:=(当前时间>=155000 and 当前时间<160000); CYC:=BARSLAST(DATE<>REF(DATE,1))+1; REFH:=REF(HHV(HIGH,CYC),CYC);//昨日高点 REFL:=REF(LLV(LOW,CYC),CYC); //昨日低点 KD:=CROSS(C, REFH);//开多条件 KK:=CROSS(REFL, C);//开空条件 DTZY:=CLOSE-AVGENTERPRICE>=ZY*MINDIFF;//多头止盈 KTZY:=AVGENTERPRICE-CLOSE>=ZY*MINDIFF;//空头止盈 DTZS:=AVGENTERPRICE-CLOSE>=ZS*MINDIFF;//多头止损 KTZS:=CLOSE-AVGENTERPRICE>=ZS*MINDIFF;//空头止损 BKHIGH:=HHV(HIGH,ENTERBARS+1);//持仓最高 SKLOW:=LLV(LOW,ENTERBARS+1); //持仓最低 DTHT:=CLOSE<BKHIGH-HT*MINDIFF;//多头回头 KTHT:=CLOSE>SKLOW+HT*MINDIFF; //空头回头 //MSGOUT(HOLDING<>0, \'持仓均价:\'+NUMTOSTR(AVGENTERPRICE, 0)); //MSGOUT(HOLDING<>0, \'开多最高:\'+NUMTOSTR(BKHIGH, 0)); //MSGOUT(HOLDING<>0, \'开空最低:\'+NUMTOSTR(SKLOW, 0)); IF TODAYBAR=1 THEN N:=0; //开多 IF KD AND N=0 AND 开仓时间 THEN BEGIN
BUY(HOLDING=0, SS, MARKET);
N:=1; END //开空 IF KK AND N=0 AND 开仓时间 THEN BEGIN
BUYSHORT(HOLDING=0, SS, MARKET);
N:=1; END //平多头 IF DTZY AND HOLDING>0 AND ENTERBARS>0 THEN 多止盈:SELL(1,SS,MARKET); IF DTZS AND HOLDING>0 AND ENTERBARS>0 THEN 多止损:SELL(1,SS,MARKET); IF DTHT AND HOLDING>0 AND ENTERBARS>0 THEN 多回头:SELL(1,SS,MARKET); //平空头 IF KTZY AND HOLDING>0 AND ENTERBARS>0 THEN 空止盈:SELLSHORT(1,SS,MARKET); IF KTZS AND HOLDING>0 AND ENTERBARS>0 THEN 空止损:SELLSHORT(1,SS,MARKET); IF KTHT AND HOLDING>0 AND ENTERBARS>0 THEN 空回头:SELLSHORT(1,SS,MARKET); //时间平仓 IF CurrentTime>=155000 AND CurrentTime<160000 THEN 时间平多:SELL(1,HOLDING,MARKETR); IF CurrentTime>=155000 AND CurrentTime<160000 THEN 时间平空:SELLSHORT(1,HOLDING,MARKETR);
|
-- 作者:FireScript -- 发布时间:2019/12/17 9:48:51 -- 当前时间:=CurrentTime(); 开仓时间:(当前时间>=091500 and 当前时间<120000); 平仓时间:(当前时间>=155000 and 当前时间<160000); 历史K上这个时间判断无效。CurrentTime 只有最新值。只要当前时间符合,历史K哪怕是在这个时间之外 也会显示满足“开仓时间”。 请用time函数做这个时间判断。注意用time必须是金字塔时间, 金字塔时间和北京时间差4小时。 金字塔时间18:00 对应北京时间14:00. |