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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → DEBUGFILE和DEBUGFILE2的写法

   

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


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

主题:DEBUGFILE和DEBUGFILE2的写法

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


加好友 发短信
等级:论坛游侠 帖子:273 积分:365 威望:0 精华:1 注册:2011/4/13 11:57:13
DEBUGFILE和DEBUGFILE2的写法  发帖心情 Post By:2014/6/11 15:11:35 [只看该作者]

这两个函数的用户体验太那个什么了。现做一个详细的说明,为新手节约点时间(我就是这么好心)

一、debugfile只在最后一个周期才执行,debugfile2可作用于所有周期。这个大概谁都能明白。

二、两者都可以往指定文件输出特定的唯一的数字,但是
DEBUGFILE(PATH,STR,NUM),没有参数N,写了参数则公式通不过。始终输出打印时间。

DEBUGFILE2(PATH,STR,NUM,N),有参数N,小心了!N<=0不打印输出时间,N>0(不见得是整数)输出打印时间。不写参数N则公式通不过。

三、DEBUGFILE('D:\TEST.TXT','当前资产为%.2f',1234)

DEBUGFILE2('D:\TEST.TXT','当前资产为%.2f',1234,1)

%.2f’这个打印控制符里面的‘f’必须小写,否则公式能通过,但是数字输出为空。这算是小意思了,不算为难你。

四、DEBUGFILE除了可以输出指定数字以外,还可以输出一连串的字符串,包括把数字转化为字符串,没有控制符‘%.2f’了,例:
debugfile( 'D:\TEST.TXT' ,'当前价格:    '+numtostr(close,2) +'    '+'开盘价    '+numtostr(open,2),-1);
但是,你发现这个例子里面最后有个参数‘-1’,是什么?这是为难你的地方。DEBUGFILE本身没有输出时间控制参数N(见第二条),
所以这最后面的数字不是参数N,不是控制是否输出打印时间的。但是必须要有个数,随便是什么数,但是不能空。
空则公式通不过。
DEBUGFILE2除了可以输出指定数字以外,还可以输出一连串的字符串,包括把数字转化为字符串,没有控制符‘%.2f’了,例:
debugfile2( 'D:\TEST.TXT' ,'当前价格:    '+numtostr(close,2) +'    '+'开盘价    '+numtostr(open,2),-1,10);
请注意最后两个参数-1和10,因为DEBUGFILE2带有参数N(见第二条),所以该例句中最后一个数10是参数N,10>0因此要打印输出时间。
而前面那个-1,则代表填任意数字都行。后面两个数都必须填,少一个,则公式通不过。

五、总算是搞明白了。看下面的 debugfile2( 'D:\TEST.TXT' ,'当前价格:    '+numtostr(close,2) +'    '+'开盘价    '+numtostr(open,2),-1,10);
的输出结果:
2014-06-11 14:42:30.630 当前价格: 2154.00 开盘价2155
有什么不对吗?有。当前价格‘2154.00’带有小数,开盘价‘2155’没小数(不是也应该带小数吗?)哎,输不了那么多字符串,
debugfile2对输出字符串数量有限制,中文字符串一个顶几个,到后面输不出来小数了。
 
 

版主评定:好评,获得10个金币奖励好评,获得10个金币奖励
(理由:GOOD)
 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

给力了


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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:273 积分:365 威望:0 精华:1 注册:2011/4/13 11:57:13
  发帖心情 Post By:2014/6/11 23:54:08 [只看该作者]

呵呵,有10个金币奖励。这个函数用“%.0f”这样的打印控制符,来输出监控数字,费解且容易出错, 函数的说明远远没有使用的那般方便和强大。
建议废除这样的写法,或者至少在函数说明里面做更清晰的补充说明。加上:

用户也可以直接将需要监控的数字变量的数值转化为字符串,并且可以将多个字符串相加输出。
用法:DEBUGFILE2(PATH,STR,'',N),PATH为用户本地计算机计算机路径,STR为用户需要监控打印的字符串,''为一个空字符串(该字符串不会输出,但是该参数不可省略),
N为一个数字变量(用户可直接填数字或者填变量名)用以控制是否自动输出打印时间,N<=0不输出时间,N>0输出时间。例:
debugfile2( 'D:\TEST.TXT' ,'当前价格:    '+numtostr(close,2) ,‘’,1);
[此贴子已经被作者于2014/6/11 23:55:09编辑过]

 回到顶部