以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=188434)

--  作者:金台369
--  发布时间:2021/5/24 10:16:43
--  一个思路,请老师帮助实现
老师,我自己编写了个指标,在5分钟周期上,显示振幅TR柱体,并对与前面7组相比最低的那个进行变色显示,
TR1 : (H-L)/MINDIFF,NODRAW;

STICKLINE(C ,0,TR1,8,1,COLORBLUE);
STICKLINE(TR1<REF(TR1,1),0,TR1,8,1),COLORblue;

极缩:=BARSCOUNT(C)>7 AND LLV(TR1,7)=TR1;
STICKLINE(极缩  and ISLASTBAR<>1 ,0,TR1,8,0,COLORYELLOW);

我的问题是,我希望在1分钟周期上,在主图上能比较5分钟周期的TR,出现极缩信号时,在主图上用蓝色空框线将该组K框起来,框线的上沿为该组K也即对应5分钟K的最高价,框线的下沿为该组K也即对应5分钟K的最低价。

--  作者:FireScript
--  发布时间:2021/5/24 10:58:53
--  
 你意思是要在5分钟周期范围下的1分钟 也同样标记出来?

--  作者:金台369
--  发布时间:2021/5/24 11:07:41
--  
不是,是在一分钟周期上,比较5分钟周期的TR,出现极缩信号时,将极缩的该组K用空框线框起来
--  作者:FireScript
--  发布时间:2021/5/24 11:18:32
--  
 对我的意思就是满足条件的五分钟周期下的1分钟周期都标记出来。
--  作者:金台369
--  发布时间:2021/5/24 11:25:49
--  
哦,那是吧
--  作者:FireScript
--  发布时间:2021/5/24 13:08:45
--  
 这个要用另外一段代码了。
被调用代码,也就是你现在用的这段代码。假设指标名称是AX
TR1 : (H-L)/MINDIFF,NODRAW;

STICKLINE(C ,0,TR1,8,1,COLORBLUE);
STICKLINE(TR1<REF(TR1,1),0,TR1,8,1),COLORblue;

极缩:BARSCOUNT(C)>7 AND LLV(TR1,7)=TR1;//为了能进行调用,这里定义方式用:
STICKLINE(极缩  and ISLASTBAR<>1 ,0,TR1,8,0,COLORYELLOW);

1分钟周期上的指标代码如下。但是注意这个指标必须是序列模式。否则不行。
cd1:mod(time,500)=0,NODRAW;
cd2:ref(cd1,1),NODRAW;
cd3:"AX.极缩#MIN5";

P1:=HHV(H,5);
P2:=REFX(LLV(L,5),4);
DRAWRECT(cd2 and cd3 ,P2 ,cd1 or ISLASTBAR ,P1 ,true ,COLORYELLOW,1,vtDOT);


实际效果:
1分钟

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看
5分钟满足条件的位置 用笑脸标记下。

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

--  作者:金台369
--  发布时间:2021/5/24 14:12:33
--  
不好意思,老师,我带入后,在1分钟周期上每个5分钟的方框都出来了,
--  作者:FireScript
--  发布时间:2021/5/24 14:18:57
--  
 你确定你正常调用了指标吗? 我上面代码是需要新建一个指标来进行调用的。

被调用代码,也就是你现在用的这段代码。假设指标名称是AX
TR1 : (H-L)/MINDIFF,NODRAW;

STICKLINE(C ,0,TR1,8,1,COLORBLUE);
STICKLINE(TR1<REF(TR1,1),0,TR1,8,1),COLORblue;

极缩:BARSCOUNT(C)>7 AND LLV(TR1,7)=TR1;//为了能进行调用,这里定义方式用:
STICKLINE(极缩  and ISLASTBAR<>1 ,0,TR1,8,0,COLORYELLOW);


这部分代码是需要进行调用的,且指标名称必须和下面调用函数里保持一致。


1分钟周期上的指标代码如下。但是注意这个指标必须是序列模式。否则不行。
cd1:mod(time,500)=0,NODRAW;
cd2:ref(cd1,1),NODRAW;
cd3:"AX.极缩#MIN5";

P1:=HHV(H,5);
P2:=REFX(LLV(L,5),4);
DRAWRECT(cd2 and cd3 ,P2 ,cd1 or ISLASTBAR ,P1 ,true ,COLORYELLOW,1,vtDOT);

--  作者:金台369
--  发布时间:2021/5/24 15:34:20
--  
可以了,还有问题,仔细翻看了很多品种,比较了5分钟的TR信号,有两个问题
1、偶尔出现框内出现1到2根或3根K线的情况,
2、总感觉出现了错位,会有出现的框架明显振幅较大,而它旁边的组合K振幅明显不大。
3、有好多品种比如苹果、锰硅,硅铁等,没有任何信号出现。

--  作者:FireScript
--  发布时间:2021/5/24 15:45:41
--  
1.是不是缺五分钟数据,本地没有看到没信号或者是框内不足五个K的情况。你在有问题的品种上,切换到五分钟触发下补充数据,再切回到1分钟看下情况。
2.“总感觉出现了错位,会有出现的框架明显振幅较大,而它旁边的组合K振幅明显不大。”这个就截图详细说明下吧。