以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- [分享]EXIT命令慎用,请确认一下 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=8865) |
-- 作者:vincentwoo -- 发布时间:2011/11/8 13:16:46 -- [分享]EXIT命令慎用,请确认一下 今天指标发现有异常,调试完成后,
发现前半段有一个EXIT的代码。在K线模式下,如果前一个K是状态是EXIT的,后一个K线,EXIT的语句,还有REF之类的语句取到的值就为0,请版主确认一下是为什么的呢?
M:=BARSLAST(DATE<>REF(DATE,1))+1; IF M <= 3 THEN EXIT; TESTMVALUE:M,LINETHICK0; TESTC:REF(C,1),LINETHICK0;
m=4的时候,TESTC是零,为什么呀????????????? |
-- 作者:fly -- 发布时间:2011/11/8 13:43:51 -- 你用以下在图表上调试一下,看看就知道了 这里的IF M <= 3 THEN EXIT;根本就没起作用
M:=BARSLAST(DATE<>REF(DATE,1))+1; TESTMVALUE:M,LINETHICK0;
可能跟EXIT前的条件判断有关.
象以下写出来的,就是好好的. //不是品种CU,不执行后续程序 |
-- 作者:vincentwoo -- 发布时间:2011/11/8 14:20:52 --
这里的 IF M <= 3 THEN EXIT;根本就没起作用
~~~~~~~~~ 忘了告诉你,我是在3分钟K线模式下,做期货没有人用日K线吧。上面的代码,我是试过,才贴出来的!V2.75.... 今天这个版本还有发现其它的问题,信号有问题,重新开程序,或者滑点设置不一样,程序就会不一样。 [此贴子已经被作者于2011-11-8 14:23:54编辑过]
|
-- 作者:fly -- 发布时间:2011/11/8 15:31:05 -- 代码,是分钟K线上使用的. 未在日K线上用 |
-- 作者:admin -- 发布时间:2011/11/8 15:59:01 -- M:=BARSLAST(DATE<>REF(DATE,1))+1; TESTMVALUE:M,LINETHICK0; TESTC:REF(C,1),LINETHICK0;
IF M <= 3 THEN EXIT;
这样改就好了 因为逐K线模式下,每个周期都要调用公式,REF等统计函数,需要每次调用时来保存上次调用的数据,你在他前面用了EXIT,结果将导致前面3个周期没有保存统计数据,结果造成出错 |
-- 作者:vincentwoo -- 发布时间:2011/11/8 16:11:37 -- 这个说法让人信服,我在改策略了,尽量不用EXIT了。 |