以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  判断高低价时有闪烁问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=139067)

--  作者:zxsd
--  发布时间:2016/9/2 12:57:19
--  判断高低价时有闪烁问题
 代码如下:

MA60_HOUR:=STKINDI(\'\',\'MA.MA1(60)\',0,5,0);

HOUR_AA:=IF(MA60_HOUR<>REF(MA60_HOUR,1),1,0);

AA_HIGH:=HHV(HIGH,BARSLAST(HOUR_AA)),NOAXIS;
AA_LOW:=LLV(LOW,BARSLAST(HOUR_AA)),NOAXIS;

IF HOUR_AA THEN
BEGIN
HIGH_60:=HIGH;
LOW_60:=LOW;
END

IF HOUR_AA<>1 THEN
BEGIN
HIGH_60:=IF(AA_HIGH>HIGH_60,AA_HIGH,HIGH_60);
LOW_60:=IF(AA_LOW<LOW_60,AA_LOW,LOW_60);
END


这段的目的是,用在15分钟周期上,每次小时周期开始,到小时周期结束显示出这一小时中的最高价和最低价

但是实盘测试时候发现,不知道为什么HIGH_60、LOW_60这两个变量会闪烁,表现为:
如果当前这根15分钟周期K线没有创新高,那么HIGH_60就会随着最新价的变化在“这一小时的最高价”与“当前K线最高价”之间闪烁(如果创新高则不闪)
如果当前这根15分钟周期K线没有创新低,那么LOW_60就会随着最新价的变化在“这一小时的最低价”与“当前K线最低价”之间闪烁(如果创新低则不闪)

(好像HOUR_AA=1时不会闪,忘记了)

我想在小周期上时时稳定的得到小时最高低价,就这个问题,感谢帮助!

--  作者:pyd
--  发布时间:2016/9/2 13:00:58
--  

15分钟引用1小时的是会闪烁,需要向前一个周期引用

MA60_HOUR:=STKINDI(\'\',\'MA.MA1(60)\',0,5,-1);

[此贴子已经被作者于2016-9-2 13:01:09编辑过]

--  作者:zxsd
--  发布时间:2016/9/2 13:27:53
--  
 那如果我改成这样,是不是也可以呢:

原始:
MA60_HOUR:=STKINDI(\'\',\'MA.MA1(60)\',0,5,0);
HOUR_AA:=IF(MA60_HOUR<>REF(MA60_HOUR,1),1,0);

修改:
MA60_HOUR:=STKINDI(\'\',\'MA.MA1(60)\',0,5,0);
MA60_HOUR_REF:=VALUEWHEN(MA60_HOUR<>REF(MA60_HOUR,1),REF(MA60_HOUR,1));
HOUR_AA:=IF(MA60_HOUR_REF<>REF(MA60_HOUR_REF,1),1,0);

把时时引用的小时MA60用VALUEWHEN改为上一个小时的MA60

--  作者:zxsd
--  发布时间:2016/9/2 13:49:44
--  
 不行啊,我现在实盘看着,18:00这根15分钟线最高价是这根K线的不是一小时的
--  作者:zxsd
--  发布时间:2016/9/2 13:52:50
--  
HOUR_AA在18:00这根线上判断为1
--  作者:zxsd
--  发布时间:2016/9/2 13:54:58
--  
 闪烁原因是HOUR_AA这个条件闪烁,无法正确判断当前K线是不是小时周期的第一根K线
--  作者:wenarm
--  发布时间:2016/9/2 14:05:04
--  

 你3楼的逻辑上就有问题。

小引大,避免闪烁的就向前引一根,用2楼的方式实现