以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  跨周期调用没有值的问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=182116)

--  作者:dqj8848
--  发布时间:2020/9/9 18:23:40
--  跨周期调用没有值的问题
我先写了个孕线的公式IBXG放在30分种和1分钟图表上
代码如下:

IB:H<=ref(h,1) and L>=ref(l,1);  //判断当前K线是否为孕线
IBH:=IFN(IB,0,HIGH); //如当前K线为孕线,则取孕线最高价
IBL:=IFN(IB,0,LOW); //如当前K线为孕线,则取孕线最低价



然后,我在另个一个一分钟的图表上,想把 30分钟或一小时孕线的最高值和最低值取出来,

代码如下:

IB30:=STKINDI(STKLABEL,\'IBXG.IB\',0,4,-1);
IB30H:STKINDI(STKLABEL,\'IBXG.IBH30\',0,4,-1);
IB30L:STKINDI(STKLABEL,\'IBXG.IBL30\',0,4,-1);

IB60:=STKINDI(STKLABEL,\'IBXG.IB\',0,5,-1);
IB60H:STKINDI(STKLABEL,\'IBXG.IBH60\',0,5,-1);
IB60L:STKINDI(STKLABEL,\'IBXG.IBL60\',0,5,-1);

结果取到值不是0就是1,

麻烦帮我看一下,我的问题出在哪里?

--  作者:dqj8848
--  发布时间:2020/9/9 18:35:04
--  
我先写了个孕线的公式IBXG放在30分种和1小时图表上
代码如下:

IB:H<=ref(h,1) and L>=ref(l,1);  //判断当前K线是否为孕线
IBH:=IFN(IB,0,HIGH); //如当前K线为孕线,则取孕线最高价
IBL:=IFN(IB,0,LOW); //如当前K线为孕线,则取孕线最低价



然后,我在另个一个一分钟的图表上,想把 30分钟或一小时孕线的最高值和最低值取出来,

代码如下:

IB30:=STKINDI(STKLABEL,\'IBXG.IB\',0,4,-1);
IB30H:STKINDI(STKLABEL,\'IBXG.IBH30\',0,4,-1);
IB30L:STKINDI(STKLABEL,\'IBXG.IBL30\',0,4,-1);

IB60:=STKINDI(STKLABEL,\'IBXG.IB\',0,5,-1);
IB60H:STKINDI(STKLABEL,\'IBXG.IBH60\',0,5,-1);
IB60L:STKINDI(STKLABEL,\'IBXG.IBL60\',0,5,-1);

结果取到值不是0就是1,

麻烦帮我看一下,我的问题出在哪里?


--  作者:dqj8848
--  发布时间:2020/9/9 20:10:01
--  
是不是应该用下面的代码来取

//30分钟
30最高:CALLSTOCKEx(\'\',vtHIGH,4,-1,100),COLORblue;
30最低:CALLSTOCKEx(\'\',vtlow,4,-1,100),colorblue;
//60分钟
60最高:CALLSTOCKEx(\'\',vtHIGH,5,-1,100),COLORblue;
60最低:CALLSTOCKEx(\'\',vtlow,5,-1,100),colorblue;

怎么把 孕线的条件加上呢?

--  作者:FireScript
--  发布时间:2020/9/10 8:25:45
--  
 IBH30 IBH60 这2个变量你在被调用指标里面压根就没定义。

--  作者:FireScript
--  发布时间:2020/9/10 8:27:31
--  
而且被调用的指标是不可以用 “:=”定义的。必须用“:”的方式定义。
--  作者:dqj8848
--  发布时间:2020/9/10 9:14:51
--  
以下是引用FireScript在2020/9/10 8:27:31的发言:
而且被调用的指标是不可以用 “:=”定义的。必须用“:”的方式定义。
您好,我又重新写了一下,出来还是不太对,麻烦再邦我看一下
IBXG公式代码如下:
IB:H<=REF(H,1) AND L>=REF(L,1) ;

IBH:IFN(IB,0,HIGH);
IBL:IFN(ib,0,LOW);


调用公式代码如下:
IB30:=STKINDI(STKLABEL,\'IBXG.IB\',0,4,-1);
IB30H:STKINDI(STKLABEL,\'IBXG.IBH\',0,4,-1);
IB30L:STKINDI(STKLABEL,\'IBXG.IBL\',0,4,-1);

IB60:=STKINDI(STKLABEL,\'IBXG.IB\',0,5,-1);
IB60H:STKINDI(STKLABEL,\'IBXG.IBH\',0,5,-1);
IB60L:STKINDI(STKLABEL,\'IBXG.IBL\',0,5,-1);

出来主图上还是不对





--  作者:dqj8848
--  发布时间:2020/9/10 9:34:30
--  
搞定了,谢谢啦