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


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

   

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


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

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

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


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

以下是引用fly在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

很遗憾,我加入了RUNMODE:1的语句,问题还是没有解决。我采用EXTGBDATA的方案,问题解决了。我后台同时跑了两个公式,其中一个就是我贴在上面的公式,我把它改成用EXTGBDATA,问题就解决了。另一个公式,完全是同样的内容,但公式同时交易了另外8个品种,我在公式首行加入了RUNMODE:1的语句,问题依然如故。我还有另外一台台式机,使用另外一个客户端帐号和资金帐号,同样的公式、同样交易一个品种或多个品种,问题仍然如故。看起来GLOBALVARIBLE定义全局变量是有问题。问题出在哪里,提请金字塔客服或开发人员测试解决,期待后续回复!


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2013/6/26 17:00:40 [只看该作者]

以下是引用ydian在2013/6/26 16:21:05的发言:

很遗憾,我加入了RUNMODE:1的语句,问题还是没有解决。我采用EXTGBDATA的方案,问题解决了。我后台同时跑了两个公式,其中一个就是我贴在上面的公式,我把它改成用EXTGBDATA,问题就解决了。另一个公式,完全是同样的内容,但公式同时交易了另外8个品种,我在公式首行加入了RUNMODE:1的语句,问题依然如故。我还有另外一台台式机,使用另外一个客户端帐号和资金帐号,同样的公式、同样交易一个品种或多个品种,问题仍然如故。看起来GLOBALVARIBLE定义全局变量是有问题。问题出在哪里,提请金字塔客服或开发人员测试解决,期待后续回复!

 

建议您将测试的日志系统与测试代码一并贴出来,我们帮你分析一下



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
ydian
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

以下是引用王锋在2013/6/26 17:00:40的发言:

 

建议您将测试的日志系统与测试代码一并贴出来,我们帮你分析一下

下面是我在另一台机器上使用一模一样的公式代码(仅使用的资金帐户号有变动,公式代码已经在上面帖过了,现在只是在首行加入RUNMODE:1),输出的日志记录片断如下(实际每5秒有一次日志记录,需要的话文件可以传给你们)。明天我还会继续开机测试,随时可以有最新的盘中日志记录。有需要的话,可以在明天下午QQ远程。

2013-06-26 11:05:14.890    IF外IFPKKD=-1
2013-06-26 11:05:14.890    IF外IFPDKK=-1
2013-06-26 11:05:14.890    IF外CALLSTOCKIF00VTHIGH=2121.80
2013-06-26 11:05:14.890    IF外CALLSTOCKIF00VTLOW=2094.20
2013-06-26 11:05:14.890    IF外DYNAINFO(207)110517.00000
2013-06-26 11:05:19.859    IF外HPPOINTIF=2567.20
2013-06-26 11:05:19.859    IF外LPPOINTIF=2211.60
2013-06-26 11:05:19.859    IF外IFPKKD=-1
2013-06-26 11:05:19.859    IF外IFPDKK=-1
2013-06-26 11:05:19.875    IF外CALLSTOCKIF00VTHIGH=2121.80
2013-06-26 11:05:19.875    IF外CALLSTOCKIF00VTLOW=2094.20
2013-06-26 11:05:19.875    IF外DYNAINFO(207)110522.00000
2013-06-26 11:05:24.875    IF外HPPOINTIF=2567.20
2013-06-26 11:05:24.875    IF外LPPOINTIF=2211.60


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2013/6/26 18:14:55 [只看该作者]

建议你将相关的测试代码一并发出来,这样我们才能帮你找出问题



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
ydian
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

以下是引用王锋在2013/6/26 18:14:55的发言:

建议你将相关的测试代码一并发出来,这样我们才能帮你找出问题

再次确认今天的测试结果,日志记录输出的变量值仍然为-1。下面是随手摘录的日志片断和公式完整代码(实际上我还有同一台电脑和不同电脑的其他公式使用了一样的处理并作了日志记录,日志记录变量值也是-1,需要的话可以通知我远程):

日志片断如下:

2013-06-27 14:55:15.386    IF外IFPKKD=-1
2013-06-27 14:55:15.386    IF外IFPDKK=-1
2013-06-27 14:55:15.401    IF外CALLSTOCKIF00VTHIGH=2126.60
2013-06-27 14:55:15.401    IF外CALLSTOCKIF00VTLOW=2111.60
2013-06-27 14:55:15.401    IF外DYNAINFO(207)145516.00000
2013-06-27 14:55:20.355    IF外HPPOINTIF=2185.00
2013-06-27 14:55:20.355    IF外LPPOINTIF=1998.80
2013-06-27 14:55:20.370    IF外IFPKKD=-1
2013-06-27 14:55:20.370    IF外IFPDKK=-1
2013-06-27 14:55:20.370    IF外CALLSTOCKIF00VTHIGH=2126.60
2013-06-27 14:55:20.370    IF外CALLSTOCKIF00VTLOW=2111.60
2013-06-27 14:55:20.370    IF外DYNAINFO(207)145521.00000
2013-06-27 14:55:28.370    IF外HPPOINTIF=2185.00
2013-06-27 14:55:28.370    IF外LPPOINTIF=1998.80

 

完整公式代码如下:


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

ACCOUNTONLINE:=TACCOUNT2(3,'803918')>0;
IF ACCOUNTONLINE=0 THEN DEBUGFILE('D:\HLPYIF_OFFLINE.TXT','803918不在线.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公式段结束/////////////////////////////////////////////////


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


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

你贴的都是变为-1之后的情况.这个全局变量值是什么时候由1变为-1的,看不出来.

您给我的日志也是,怎么会一开始执行,值就是-1;

 

已经在用15楼的代码跟踪

 

1分钟周期,固定时间间隔,高频.

2013-06-28 10:36:06.140    IF外IFPKKD=1
2013-06-28 10:36:06.140    IF外IFPDKK=1
2013-06-28 10:36:06.140    IF内CALLSTOCKIF00VTHIGH=2180.20------开多仓
2013-06-28 10:36:06.140    IF内HPPOINTIF=2180.00
2013-06-28 10:36:06.140    IF内LPPOINTIF=2095.00
2013-06-28 10:36:06.140    IF平空开多IFPKKD=1
2013-06-28 10:36:06.140    IF平空开多IFPDKK=1
2013-06-28 10:36:06.250    IF外IFPKKD=0
2013-06-28 10:36:06.250    IF外IFPDKK=1
2013-06-28 10:36:06.671    IF外IFPKKD=0
2013-06-28 10:36:06.671    IF外IFPDKK=1
2013-06-28 10:36:06.796    IF外IFPKKD=0
2013-06-28 10:36:06.796    IF外IFPDKK=1
2013-06-28 10:36:06.968    IF外IFPKKD=0

暂时如9楼所帖,值为1,正常

 

会继续跟踪的.

[此贴子已经被作者于2013/6/28 10:56:05编辑过]


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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
我本地测试与15楼同一时段的日志记录仍然是-1  发帖心情 Post By:2013/6/28 14:04:09 [只看该作者]

我贴在15楼的代码,我本地今天的日志记录,与15楼同一时间段,输出值仍然是-1。该时间段日志记录贴在下面。的确是一开始就成了-1。同样代码,为何你们测试输出值为1或0,而我在本地测试就是-1?另:我本地大约一个多星期以前的日志记录,有一天正常过,那天大约10点半以前是正常取值1或者0,大约10点半以后就成了-1,此后好象基本一直是-1。

 

2013-06-28 10:36:08.278    IF外IFPKKD=-1
2013-06-28 10:36:08.278    IF外IFPDKK=-1
2013-06-28 10:36:08.278    IF外CALLSTOCKIF00VTHIGH=2178.80
2013-06-28 10:36:08.278    IF外CALLSTOCKIF00VTLOW=2142.40
2013-06-28 10:36:08.278    IF外DYNAINFO(207)103539.00000
2013-06-28 10:36:14.263    IF外HPPOINTIF=2150.80
2013-06-28 10:36:14.263    IF外LPPOINTIF=1998.80
2013-06-28 10:36:14.263    IF外IFPKKD=-1
2013-06-28 10:36:14.263    IF外IFPDKK=-1
2013-06-28 10:36:14.278    IF外CALLSTOCKIF00VTHIGH=2182.60
2013-06-28 10:36:14.278    IF外CALLSTOCKIF00VTLOW=2142.40
2013-06-28 10:36:14.278    IF外DYNAINFO(207)103614.00000
2013-06-28 10:36:19.278    IF外HPPOINTIF=2150.80
2013-06-28 10:36:19.278    IF外LPPOINTIF=1998.80
2013-06-28 10:36:19.278    IF外IFPKKD=-1
2013-06-28 10:36:19.278    IF外IFPDKK=-1


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


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

刚我贴的17楼所说与15楼同一时段是说错了,我的意思是同样用15楼的代码,输出的同一时段日志记录,与16楼贴出的日志记录是不同的。

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


加好友 发短信
等级:新手上路 帖子:49 积分:250 威望:0 精华:0 注册:2013/2/28 21:31:38
今日的日志记录再次无悬念地全是-1  发帖心情 Post By:2013/7/1 15:44:28 [只看该作者]

如题

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


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2013/7/2 12:12:41 [只看该作者]

后台用extgbdata省事的多

 


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