去评论
彩虹桥投资充电站

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

李志敏
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,学习更多通达信指标公式编写知识。

  • 鍏嶈垂鎸囨爣鍒嗕韩銆愮簿鍝佹寚鏍囥戞捣楸间箣閲戜紭鍖栫増鈥斺旂ǔ瀹氬彲闈犵殑
  • 鍏嶈垂鎸囨爣鍒嗕韩閫氳揪淇°愭父璧勯噾榫欑獊鐮淬戜富鍥炬寚鏍 锛屽姪浣犺偂
  • 鍏嶈垂鎸囨爣鍒嗕韩閫氳揪淇°愰緳鑸熸姄榫欍 鎵嬫満鐢佃剳閫氱敤鍓夋寚鏍
  • 鍏嶈垂鎸囨爣鍒嗕韩閫氳揪淇♀滄瀬闄愭礂鐩樷濆壇鍥炬寚鏍囬夎偂鍏紡--鍚姩
  • 鍏嶈垂鎸囨爣鍒嗕韩0729|鈥嬧嬧嬧嬮氳揪淇¢珮鑳滅巼銆愮珵浠疯繛鏉挎墦濡
  • 鍏嶈垂鎸囨爣鍒嗕韩鍛ㄦ湯绂忓埄閾佹爲寮鑺辫繘鍑荤増鎸囨爣婧愮爜涓诲浘闄勫浘閫