以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  一分钟K线转5分钟K线  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=66116)

--  作者:zttzlh
--  发布时间:2014/6/13 9:00:01
--  一分钟K线转5分钟K线
请教,怎么把一分钟数据转化五分钟K线   ,要求不满足五根K线时,比如说只有三根,也把这三根合成一根K线,每根合成的k线放在第一根的位置上。



--  作者:FexTel
--  发布时间:2014/6/13 9:14:49
--  

1, 使用自定义周期划分自行对K线图进行时间切分

工具-市场与板块

 

2,自行绘制K线主图必须使用VBA编程,搜下历史帖。有相关范例,自行学习


--  作者:zttzlh
--  发布时间:2014/6/13 9:19:07
--  
图表可以实现的吧,只不过我说的要求要用到未来函数,主要就是在未来几根存在与否要进行一个判断,不知道怎么判断。有没有高手指点下
--  作者:zttzlh
--  发布时间:2014/6/13 9:20:17
--  
还有就是未来函数取不到值得话 能不能给个标志啊,直接图标上就没了,很坑爹啊
--  作者:FexTel
--  发布时间:2014/6/13 9:24:38
--  

1,您这相当于重新对时间进行切分,属于重新定义K线 

PEL编写的指标是基于K线图去做分析,即使编写出来也没完整定义的K线美观。所以建议使用VBA

如果您一定要取未来值,考虑下REFX函数


--  作者:zttzlh
--  发布时间:2014/6/13 9:28:44
--  
我只需要把五个一分钟的K线 合并,用stickline函数放到第一根上,每5跟K线有一根合成K线,不需要美观
--  作者:zttzlh
--  发布时间:2014/6/13 10:00:06
--  
基本实现,原来的思路,不满五根,画的K线一直在第一根上面,调整了下随着K线向后移动
input:offset(0,-10,10,1),t(5,5,60,5);
nn:=barslast(date<>ref(date,1));//从当天第一根开始
n:mod(nn,t)+1;
o5:if(n=1,open,ref(open,n-1)),NODRAW;
h5:if(n=1,h,hhv(h,n)),NODRAW;
l5:if(n=1,l,llv(l,n)),NODRAW;
c5:if(n=1,c,c),NODRAW;

if  n=5 then
begin
kred:STICKLINE( c5>o5,c5+offset ,o5+offset, 10,1 ,COLORRED);//空心实体
kred1:STICKLINE( c5>o5,h5+offset ,max(c5,o5)+offset, 0,1 ,COLORRED);//上引线
kred2:STICKLINE( c5>o5,min(c5,o5)+offset ,l5+offset, 0,1 ,COLORRED);//下引线
kgreen:STICKLINE( c5<=o5,c5+offset ,o5+offset, 10,1 ,COLORGREEN);//实心实体
kgreen1:STICKLINE( c5<=o5,h5+offset ,max(c5,o5)+offset, 0,1 ,COLORGREEN);
kgreen2:STICKLINE( c5<=o5,min(c5,o5)+offset ,l5+offset, 0,1 ,COLORGREEN);
end
//画最后几根
if n<5 and islastbar then
begin
akred:STICKLINE( c5>o5,c5+offset ,o5+offset, 10,1 ,COLORRED);//空心实体
akred1:STICKLINE( c5>o5,h5+offset ,max(c5,o5)+offset, 0,1 ,COLORRED);//上引线
akred2:STICKLINE( c5>o5,min(c5,o5)+offset ,l5+offset, 0,1 ,COLORRED);//下引线
akgreen:STICKLINE( c5<=o5,c5+offset ,o5+offset, 10,1 ,COLORGREEN);//实心实体
akgreen1:STICKLINE( c5<=o5,h5+offset ,max(c5,o5)+offset, 0,1 ,COLORGREEN);
akgreen2:STICKLINE( c5<=o5,min(c5,o5)+offset ,l5+offset, 0,1 ,COLORGREEN);
end


--  作者:zttzlh
--  发布时间:2014/6/13 10:01:04
--  
有没有高手看看不移动的话,怎么实现,K线放在第一根上面。。。。
--  作者:FexTel
--  发布时间:2014/6/13 10:03:38
--  
1,采用PEL去绘制,中间空的部分必须让它透明。那么相当于每根K线之间都会存在间隔
--  作者:zttzlh
--  发布时间:2014/6/13 10:07:59
--  
嗯  ,有间隔没关系的,就是把合成的线放到第一根上用到未来函数,未来函数在取不到值得情况下不好判断,不知道怎么解决这个问题...