欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → PEL图表程序化,主图计算没有信号

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2602人关注过本帖树形打印复制链接

主题:PEL图表程序化,主图计算没有信号

帅哥哟,离线,有人找我吗?
jzt666
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:176 积分:0 威望:0 精华:0 注册:2019/2/22 9:45:36
PEL图表程序化,主图计算没有信号  发帖心情 Post By:2019/12/17 9:35:23    Post IP:118.249.120.119[只看该作者]

代码如下,为什么主图计算什么都没有
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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/12/17 9:48:51    Post IP:180.169.30.6[只看该作者]

 当前时间:=CurrentTime();
开仓时间:(当前时间>=091500 and 当前时间<120000);
平仓时间:(当前时间>=155000 and 当前时间<160000);

历史K上这个时间判断无效。CurrentTime 只有最新值。只要当前时间符合,历史K哪怕是在这个时间之外 也会显示满足“开仓时间”。


请用time函数做这个时间判断。注意用time必须是金字塔时间, 金字塔时间和北京时间差4小时。 金字塔时间18:00 对应北京时间14:00.



命数如织,当如磐石。
 回到顶部