去评论
彩虹桥投资充电站

通达信美国线(竹线)指标公式源码

李志敏
2024/01/30 13:55:21

今天看到有人问了一个有意思的问题,想把通达信的主图K线改变为美国线(也叫竹线),但是这个美国线需要实现没有开盘价,只有收盘价。每根K线收盘价的横线与下一个k线柱子之间有一点空隙分隔开。成交量也要和美国线柱子粗细差不多。(如下图)

虽然通达信可以设置主图为美国线,但是美国线包含开盘价和收盘价,没办法只显示收盘价。

解决这个问题,需要重新画线,主要使用通达信的画线函数。通达信的画线函数不多,也就那么几个能用的,画竖线和横线,涉及到两个函数STICKLINE、DRAWSL,之前已经讲过,这里简单介绍一下,不详细说了。

STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY);

当满足COND条件时,在PRICE1和PRICE2位置之间画柱线;

WIDTH表示柱线的宽度,如果WIDTH为4,就是标准间距;

EMPTY表示柱线是实心还是空心,如果EMPTY为0就是实心柱,为1就是实线空心柱。

DRAWSL(COND,PRICE,SLOPE,LEN,DIRECT);

当满足满足COND条件时,从PRICE位置起画斜线;

SLOPE表示斜率,SLOPE为0的时候,就表示画水平线;

LEN表示长度,当画的线为水平线时,长度为延伸的周期数;

DIRECT表示延伸方向,画水平线时,DIRECT为0向右画线。


先简单写一个公式,看看效果如何:

STICKLINE(O,H,L,0,0);DRAWSL(O,C,0,1,0);

使用DRAWSL函数,以收盘价画横线,横线太长了。DRAWSL画线最短就是1个周期,没办法进一步缩短。可以用与背景颜色相同的颜色——黑色,把多余的横线覆盖,解决问题横线太长的问题(如下图)

STICKLINE函数画柱线,WIDTH表示柱线的宽度,4表示标准间距,柱线宽度为4时如下图

宽度大于4,柱线开始重叠(如下图,柱线宽度为5)

利用这个特性,如果柱线是黑色实心,就可以用来覆盖多余的横线。


只有收盘价的通达信美国线(竹线)指标公式:

STICKLINE(O,H,L,3,1),COLORBLACK;{把图上原有K线涂黑覆盖}DRAWSL(O,C,0,1,0),COLORWHITE;{向右画长度为1个周期的白色横线}STICKLINE(O,REF(C,1),REF(C,1),6,0),COLORBLACK;{以前一根K线的收盘价为基准,画宽度为6的黑色实心柱线(实际是画的宽度为6的黑色横线),覆盖多余的白色横线}STICKLINE(O,H,L,0,0),COLORWHITE;{从最高价到最低价画宽度为0的白色柱线};

成交量柱线:

STICKLINE(VOL,0,VOL,0,1);

公式写完,发现有个Bug没法解决,当收盘价和前一天相同时,收盘价会被覆盖,不能显示。

想了想没有特别好的解决方法,只能弃坑跑路了。

友情提醒:本文仅供学习交流,不构成任何投资建议。投资有风险,入市需谨慎!

关注公众号技术Pie,学习更多通达信指标公式编写知识。

  • 免费指标分享【精选指标】通达信趋势黄金柱主图指标,助
  • 免费指标分享【技术指标】通达信 捉牛观猴避熊 k线主图
  • 免费指标分享0029【选股指标】通达信高胜率 《山谷淘金
  • 免费指标分享【选股指标】通达信87.4%胜率抄底指标 白金
  • 免费指标分享寻龙趋势主图寻龙MACD共振寻龙方向标通达信
  • 免费指标分享「周末福利」史上最全指标公式,T+0分时、