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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → IF NOT(ISLASTBAR) THEN EXIT;对ATR的影响

   

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


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

主题:IF NOT(ISLASTBAR) THEN EXIT;对ATR的影响

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


加好友 发短信
等级:新手上路 帖子:42 积分:343 威望:0 精华:0 注册:2009/12/11 0:14:00
IF NOT(ISLASTBAR) THEN EXIT;对ATR的影响  发帖心情 Post By:2010/3/5 11:39:30    Post IP:122.84.106.108[只看该作者]

我在程序中使用了TR,和ATR,发现如果在程序第一行使用了IF NOT(ISLASTBAR) THEN EXIT;结果完全不一样。

代码为

TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:= MA(TR2,14);


使用IF NOT(ISLASTBAR) THEN EXIT;

则结果

2010-03-05 11:26:08.921    SRY01 ATR=1238.1
2010-03-05 11:26:08.921    SRY01 TR2=6183.0

 

这显然是错的

不检测ISLASTBAR时结果正常

2010-03-05 11:26:28.468    SRY01 ATR=9.4
2010-03-05 11:26:28.468    SRY01 TR2=6.0

 

 


为什么这样?检测ISLASTBAR还对哪些函数有影响?


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/3/5 11:47:13    Post IP:218.80.195.118[只看该作者]

请提供完整的测试例子


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


加好友 发短信
等级:新手上路 帖子:42 积分:343 威望:0 精华:0 注册:2009/12/11 0:14:00
  发帖心情 Post By:2010/3/5 11:58:33    Post IP:122.84.106.108[只看该作者]

TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:= MA(TR2,14);

IF NOT(ISLASTBAR) THEN EXIT;

TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:= MA(TR2,14);

 


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/3/5 12:01:05    Post IP:218.80.195.118[只看该作者]

2010-03-05 11:26:28.468    SRY01 ATR=9.4
2010-03-05 11:26:28.468    SRY01 TR2=6.0

 

你的如上打印东西是从什么地方搞到的。

 

TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:= MA(TR2,14);

 

IF NOT(ISLASTBAR) THEN EXIT;

 

这样搞可能就对了


 回到顶部
帅哥哟,离线,有人找我吗?
拈花逐影
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:42 积分:343 威望:0 精华:0 注册:2009/12/11 0:14:00
  发帖心情 Post By:2010/3/5 12:07:02    Post IP:122.84.106.108[只看该作者]

那只是是把变量输出到文件。

 DEBUGFILE('E:\LOGS\两次平仓.txt',STKLABEL&' ATR=%.1f',ATR);
 DEBUGFILE('E:\LOGS\两次平仓.txt',STKLABEL&' TR2=%.1f',TR2);

 

我要问的正是这个。为什么ISLASTBAR有这个影响?照道理没有影响的.


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/3/5 12:14:49    Post IP:218.80.195.118[只看该作者]

这个问题我们后面仔细差一下


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


加好友 发短信
等级:新手上路 帖子:42 积分:343 威望:0 精华:0 注册:2009/12/11 0:14:00
  发帖心情 Post By:2010/3/5 12:20:49    Post IP:122.84.106.108[只看该作者]

谢谢。这个问题挺重要的,涉及到程序化交易机制执行的根本问题。希望你们能够尽快解答。


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/3/5 13:08:39    Post IP:218.80.195.118[只看该作者]

RC:=REF(CLOSE,1);

IF NOT(ISLASTBAR) THEN EXIT;

TR2:= MAX(MAX((HIGH-LOW),ABS(RC-HIGH)),ABS(RC-LOW));
ATR:= MA(TR2,14);

 

这样改好就可以了,因为REF是带有统计性质的函数,对于金字塔的逐周期计算的系统来说,丢掉前面的数据不去统计,将影响后来的数据结果。

此外,这样还将你分别使用两次的函数归纳到一次使用,增加系统的效率

[此贴子已经被作者于2010-3-5 13:13:23编辑过]

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


加好友 发短信
等级:新手上路 帖子:42 积分:343 威望:0 精华:0 注册:2009/12/11 0:14:00
  发帖心情 Post By:2010/3/5 14:09:54    Post IP:122.84.106.108[只看该作者]

哦,是这样。谢谢。

 回到顶部