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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 定义的全局变量只能取值1或0,但DEBUGFILE显示值成了-1,请问什么原因务请回复!

   

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


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

主题:定义的全局变量只能取值1或0,但DEBUGFILE显示值成了-1,请问什么原因务请回复!

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


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
定义的全局变量只能取值1或0,但DEBUGFILE显示值成了-1,请问什么原因务请回复!  发帖心情 Post By:2013/6/24 15:36:49 [只看该作者]

在后台程式化(固定时间间隔,5秒轮询一次)公式语句中定义了两个变量:

GLOBALVARIABLE:IFPKKD=1;
GLOBALVARIABLE:IFPDKK=1;

并设定,交易指令发生以后,上面对应的变量取值为0。也就是说,上面两个全局变量按道理取值只能是1或0,但是DEBUGFILE输出的日志记录显示这两个变量是-1(实际情况是有时候为1或0,大部情况是-1),请问这是为什么?务请金字塔相关人员有个准确回复!

下面是全部公式语句:

 


//RUNMODE:0;
INPUT:offset(2,1,40,1);
INPUT:initialasset(10000000,1000000,100000000,1000000);
GLOBALVARIABLE:AccountID='807697';  //指定交易账户

ACCOUNTONLINE:=TACCOUNT2(3,'807697')>0;
IF ACCOUNTONLINE=0 THEN DEBUGFILE('D:\HLPYIF_OFFLINE.TXT','807697不在线.0f',0);
IF ACCOUNTONLINE=0 THEN EXIT;  //当帐户不在线时停止执行后面语句

TRADETIME:=(DYNAINFO(207)>091502) AND (DYNAINFO(207)<151458); //限定交易时间内交易
IF TRADETIME<>1 THEN EXIT;

//GLOBALVARIABLE:IFBUYHOLDHY=1;
//GLOBALVARIABLE:IFSELLHOLDHY=1;
GLOBALVARIABLE:IFPKKD=1;
GLOBALVARIABLE:IFPDKK=1;

MULTIPIF:=300;

LOTSIF:=INTPART(initialasset/CALLSTOCK('IF00',vtCLOSE,5,-1)/MULTIPIF/9);

 

//IF (DYNAINFO(207)>=091500 AND DYNAINFO(207)<091600) OR (DYNAINFO(207)>=101500 AND DYNAINFO(207)<101600) OR (DYNAINFO(207)>=111500 AND DYNAINFO(207)<111600) OR (DYNAINFO(207)>=131500 AND DYNAINFO(207)<131600) OR (DYNAINFO(207)>=141500 AND DYNAINFO(207)<141600) THEN EXIT;
//错开换月时间

//IF交易指令
HPPOINTIF:=HHV(CALLSTOCK('IF00',vtHIGH,5,-offset),6);//高点
LPPOINTIF:=LLV(CALLSTOCK('IF00',vtLOW,5,-offset),6);//低点
PrebuyholdIF:=TBUYHOLDINGEX(AccountID,'IF00',1);//持有当前连续合约的多仓数
PresellholdIF:=TSELLHOLDINGEX(AccountID,'IF00',1); //持有当前连续合约的空仓数
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外HPPOINTIF=%.2f',HPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外LPPOINTIF=%.2f',LPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外IFPKKD=%.0f',IFPKKD);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外IFPDKK=%.0f',IFPDKK);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外CALLSTOCKIF00VTHIGH=%.2f',CALLSTOCK('IF00',vtHIGH,5,0));
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外CALLSTOCKIF00VTLOW=%.2f',CALLSTOCK('IF00',vtLOW,5,0));
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外DYNAINFO(207)%.5f',DYNAINFO(207));

//IF交易触发条件
HBIF:=CALLSTOCK('IF00',vtHIGH,5,0)>HPPOINTIF;
LBIF:=CALLSTOCK('IF00',vtLOW,5,0)<LPPOINTIF;
//IF开始交易
IF HBIF AND IFPKKD=1  THEN //平空开多
BEGIN
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内CALLSTOCKIF00VTHIGH=%.2f',CALLSTOCK('IF00',vtHIGH,5,0));
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内HPPOINTIF=%.2f',HPPOINTIF);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内LPPOINTIF=%.2f',LPPOINTIF);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内IFPKKD=%.0f',IFPKKD);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内IFPDKK=%.0f',IFPDKK);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内DYNAINFO(207)%.5f',DYNAINFO(207));
  SENDMAIL(1,'yangdian@simpleasset.com;ztb2@hotmail.com;anniesun@hotmail.com','联想台式机金字塔公式HLPYIF公式语句定义的IF交易指令预警邮件','预警时间:'&NUMTOSTR(DYNAINFO(207),0)&'  品种:IF'&'  交易动作:平空开多'&'  预警价格:'&NUMTOSTR(CALLSTOCK('IF00',vtHIGH,5,0),2));
  IFPKKD:=0;//已发指令记录,防固定轮询追单
  IF PresellholdIF>0 THEN
  TSELLSHORT(1,PresellholdIF,MKT,0,0,AccountID,'IF00');  //平空,平空手数取此前持有的空单手数
  IF PrebuyholdIF=0 THEN
  TBUY(1,LOTSIF,MKT,0,0,AccountID,'IF00');//开多,开多手数根据最新价格计算
END
  
IF LBIF AND IFPDKK=1 THEN //平多开空,第二个条件防固定轮询追单
BEGIN
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内CALLSTOCKIF00VTLOW=%.2f',CALLSTOCK('IF00',vtLOW,5,0));
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内HPPOINTIF=%.2f',HPPOINTIF);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内LPPOINTIF=%.2f',LPPOINTIF);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内IFPKKD=%.0f',IFPKKD);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内IFPDKK=%.0f',IFPDKK);
  DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF内DYNAINFO(207)%.5f',DYNAINFO(207));
  SENDMAIL(1,'yangdian@simpleasset.com;ztb2@hotmail.com;anniesun@hotmail.com','联想台式机金字塔公式HLPYIF公式语句定义的IF交易指令预警邮件','预警时间:'&NUMTOSTR(DYNAINFO(207),0)&'  品种:IF'&'  交易动作:平多开空'&'  预警价格:'&NUMTOSTR(CALLSTOCK('IF00',vtLOW,5,0),2));
  IFPDKK:=0;
  IF PrebuyholdIF>0 THEN
  TSELL(1,PrebuyholdIF,MKT,0,0,AccountID,'IF00');   //平多,平多手数取此前持有的多单手数
  IF PresellholdIF=0 THEN
  TBUYSHORT(1,LOTSIF,MKT,0,0,AccountID,'IF00');     //开空,开空手数根据最新净资产和价格计算
END
/////////////////////////////////IF公式段结束/////////////////////////////////////////////////


 回到顶部
帅哥哟,离线,有人找我吗?
ydian
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
  发帖心情 Post By:2013/6/24 15:38:10 [只看该作者]

补充:使用的是序列模式

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/6/24 16:05:17 [只看该作者]

明日开盘后测试


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2013/6/24 16:13:39 [只看该作者]

后台怎么用 GLOBALVARIABLE?这个函数是图表使用的。

后台使用EXTGBDATASET    EXTGBDATA



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
ydian
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
  发帖心情 Post By:2013/6/24 16:37:02 [只看该作者]

以下是引用RogarZ在2013/6/24 16:13:39的发言:

后台怎么用 GLOBALVARIABLE?这个函数是图表使用的。

后台使用EXTGBDATASET    EXTGBDATA

EXTGBDATASET  EXTGBDATA全局变量将读变量值存在硬盘,类似于注册表变量,关机之后变量值仍然存在,如果不同公式用同一变量名,将发生紊乱。但没有在你们的任何资料上看到过后台只能用EXTGBDATASET    EXTGBDATA,并且参加过数次你们在上海的培训,专门与培训老师作过交流,专门请教过培训老师GLOBALVARIBLE的用法,专门请教过GLOBALVARIBLE用于后台程序化交易的问题。如果真的后台不能用GLOBALVARIBLE,请金字塔方面给出一个权威的答复或说明,并建议在手册和软件自带的函数说明里明确。


 回到顶部
帅哥哟,离线,有人找我吗?
ydian
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
  发帖心情 Post By:2013/6/24 16:43:16 [只看该作者]

以下是引用jinzhe在2013/6/24 16:05:17的发言:
明日开盘后测试

测试时请注意:公式开始部分有帐户不在线时停止执行后面语句的EXIT语句,你们测试时别忘了把这个去掉或修改成其他你们使用的资金帐户,否则不登录那个帐户的话永远不会执行后面的语句


 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2013/6/24 17:03:22 [只看该作者]

GLOBALVARIBLE 的返回值与EXTGBDATA的返回值是一样的  它的设计初衷就是让图表也有类似EXTGBDATA效果的函数。

你上海的培训谁给你讲的?



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
ydian
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
  发帖心情 Post By:2013/6/25 8:20:40 [只看该作者]

以下是引用RogarZ在2013/6/24 17:03:22的发言:

GLOBALVARIBLE 的返回值与EXTGBDATA的返回值是一样的  它的设计初衷就是让图表也有类似EXTGBDATA效果的函数。

你上海的培训谁给你讲的?

左冬祥老师,很负责的一位老师。针对我的问题,你的建议是把GLOBLVARIBLE换为EXTGBDATA对吗?我觉得如果GLOBALVARIBLE若不能用于后台,还是应该在手册或客户端函数说明里明确说明啊。


 回到顶部
帅哥哟,离线,有人找我吗?
fly
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2013/6/25 15:17:17 [只看该作者]

请加上以下语句,使其运行在序列模式下.

RUNMODE:1;

跟踪出来,IFPKKD和IFPDKK两个全局变量的变化,也都正常.   您本地再试试

2013-06-25 14:48:38.484    IF外IFPKKD=1
2013-06-25 14:48:38.484    IF外IFPDKK=1
2013-06-25 14:48:38.484    IF平空开多IFPKKD=1
2013-06-25 14:48:38.484    IF平空开多IFPDKK=1
2013-06-25 14:48:39.437    IF外IFPKKD=0
2013-06-25 14:48:39.437    IF外IFPDKK=1
2013-06-25 14:48:40.437    IF外IFPKKD=0
2013-06-25 14:48:40.437    IF外IFPDKK=1
2013-06-25 14:48:41.437    IF外IFPKKD=0
2013-06-25 14:48:41.437    IF外IFPDKK=1
2013-06-25 14:48:42.437    IF外IFPKKD=0
2013-06-25 14:48:42.437    IF外IFPDKK=1



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
ydian
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
  发帖心情 Post By:2013/6/25 20:45:57 [只看该作者]

本来在公式首行有RONMODE:0,后来考虑到在公式编辑界面上运行模式一栏直接点选序列模式,所以就把RONMODE注释掉了。我明天再测试下。

 回到顶部
总数 20 1 2 下一页