以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于画图函数stickline的使用  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=143502)

--  作者:ywf8231757
--  发布时间:2016/11/29 9:24:59
--  关于画图函数stickline的使用

老师您好:

    有个需求我看到论坛上已经问过好多遍了,但是至今也没有明确答案,这里我把内容详细的描述一下,看一下能否实现:

假设当前k线序号为n,指标加载为副图指标

1、如果当前k线的最高价和最低价,均高于n-1根k线的最高价和最低价,则从当前k线的最低价向最高价画柱状线stickline,红色

2、如果当前k线的最高价和最低价,均低于n-1根k线的最高价和最低价,则从当前k线的最高价向最低价画柱状线stickline,绿色

3、如果当前k线的最高价高于n-1根k线的最高价并且当前k线的最低价低于n-1根k线的最低价,此时观察第n-2根k线的颜色。

    如果第n-2根k线为红色,则从当前k线的最高价向第n-1根k线的最低价画柱状线stickline,红色。

    如果第n-2根k线为绿色,则从当前k线的最低价向第n-1根k线的最高价画柱状线stickline,绿色。

4、如果当前k线的最高价低于n-1根k线的最高价并且当前k线的最低价高于n-1根k线的最低价,此时观察第n-2根k线的颜色。

    如果第n-2根k线为红色,则从当前k线的最低价向第n-1根k线的最高价画柱状线stickline,红色。

    如果第n-2根k线为绿色,则从当前k线的最高价向第n-1根k线的最低价画柱状线stickline,绿色。

 

标注:第n-2根k线的颜色,是本指标在前面已经画出的stickline的颜色,而非主图中k线自身的颜色。

[此贴子已经被作者于2016/11/29 9:26:44编辑过]

--  作者:jinzhe
--  发布时间:2016/11/29 9:39:50
--  

这个是死循环,定义3,4需要先判断两根k线前的3,4

 


--  作者:ywf8231757
--  发布时间:2016/11/29 9:43:16
--  
可以强制定义数据起始的第1和第2根stickline为红色,for循环直接从3到datacount就可以了
--  作者:jinzhe
--  发布时间:2016/11/29 9:59:19
--  

如果第n-2根k线为红色,则从当前k线的最高价向第n-1根k线的最低价画柱状线stickline,红色。

这是把n和n-1这两根k线合并成一根画红线?


--  作者:ywf8231757
--  发布时间:2016/11/29 10:11:38
--  

不要合并,是两根线,幅图指标stickline与主图K线一一对应,只不过stickline划线的点位从“当前k线的最高价到n-1根k线的最低价”

画柱线需要两个价格垂直划线,上面就是与之对应的起始于终止的点位。


--  作者:jinzhe
--  发布时间:2016/11/29 10:26:24
--  

variable:n=1;
if barpos<=2 then n:=1;

if barpos>=3 and h>ref(h,1) and l>ref(l,1) then n:=1;//红
if barpos>=3 and h<ref(h,1) and l<ref(l,1) then n:=0;//绿
if barpos>=3 and h>ref(h,1) and l<ref(l,1) and mod(ref(n,2),2)=1 then n:=3;//红
if barpos>=3 and h>ref(h,1) and l<ref(l,1) and mod(ref(n,2),2)=0 then n:=2;//绿
if barpos>=3 and h<ref(h,1) and l>ref(l,1) and mod(ref(n,2),2)=1 then n:=5;//红
if barpos>=3 and h<ref(h,1) and l>ref(l,1) and mod(ref(n,2),2)=0 then n:=4;

stickline(n=1,h,l,10,1),colorred;
stickline(n=3,h,ref(l,1),10,1),colorred;
stickline(n=5,ref(h,1),l,10,1),colorred;

stickline(n=0,h,l,10,0),colorcyan;
stickline(n=2,ref(h,1),l,10,0),colorcyan;
stickline(n=4,h,ref(l,1),10,0),colorcyan;