以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- IF NOT(ISLASTBAR) THEN EXIT;对ATR的影响 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=1015) |
-- 作者:拈花逐影 -- 发布时间:2010/3/5 11:39:30 -- IF NOT(ISLASTBAR) THEN EXIT;对ATR的影响 我在程序中使用了TR,和ATR,发现如果在程序第一行使用了IF NOT(ISLASTBAR) THEN EXIT;结果完全不一样。 代码为 TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
则结果 2010-03-05 11:26:08.921 SRY01 ATR=1238.1
这显然是错的 不检测ISLASTBAR时结果正常 2010-03-05 11:26:28.468 SRY01 ATR=9.4
|
-- 作者:admin -- 发布时间:2010/3/5 11:47:13 -- 请提供完整的测试例子 |
-- 作者:拈花逐影 -- 发布时间:2010/3/5 11:58:33 -- TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); 和 IF NOT(ISLASTBAR) THEN EXIT; TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
|
-- 作者:admin -- 发布时间:2010/3/5 12:01:05 -- 2010-03-05 11:26:28.468 SRY01 ATR=9.4
你的如上打印东西是从什么地方搞到的。
TR2:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
IF NOT(ISLASTBAR) THEN EXIT;
这样搞可能就对了 |
-- 作者:拈花逐影 -- 发布时间:2010/3/5 12:07:02 -- 那只是是把变量输出到文件。 DEBUGFILE(\'E:\\LOGS\\两次平仓.txt\',STKLABEL&\' ATR=%.1f\',ATR);
我要问的正是这个。为什么ISLASTBAR有这个影响?照道理没有影响的. |
-- 作者:admin -- 发布时间:2010/3/5 12:14:49 -- 这个问题我们后面仔细差一下 |
-- 作者:拈花逐影 -- 发布时间:2010/3/5 12:20:49 -- 谢谢。这个问题挺重要的,涉及到程序化交易机制执行的根本问题。希望你们能够尽快解答。 |
-- 作者:admin -- 发布时间:2010/3/5 13:08:39 -- RC:=REF(CLOSE,1); IF NOT(ISLASTBAR) THEN EXIT; TR2:= MAX(MAX((HIGH-LOW),ABS(RC-HIGH)),ABS(RC-LOW));
这样改好就可以了,因为REF是带有统计性质的函数,对于金字塔的逐周期计算的系统来说,丢掉前面的数据不去统计,将影响后来的数据结果。 此外,这样还将你分别使用两次的函数归纳到一次使用,增加系统的效率 [此贴子已经被作者于2010-3-5 13:13:23编辑过]
|
-- 作者:拈花逐影 -- 发布时间:2010/3/5 14:09:54 -- 哦,是这样。谢谢。 |