李志敏 发表于 2024-1-30 13:55:21

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

<p data-first-child >今天看到有人问了一个有意思的问题,想把通达信的主图K线改变为美国线(也叫竹线),但是这个美国线需要实现没有开盘价,只有收盘价。每根K线收盘价的横线与下一个k线柱子之间有一点空隙分隔开。成交量也要和美国线柱子粗细差不多。(如下图)</p><p >虽然通达信可以设置主图为美国线,但是美国线包含开盘价和收盘价,没办法只显示收盘价。</p><p >解决这个问题,需要重新画线,主要使用通达信的画线函数。通达信的画线函数不多,也就那么几个能用的,画竖线和横线,涉及到两个函数STICKLINE、DRAWSL,之前已经讲过,这里简单介绍一下,不详细说了。</p><p ><b>STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY);</b></p><p >当满足COND条件时,在PRICE1和PRICE2位置之间画柱线;</p><p >WIDTH表示柱线的宽度,如果WIDTH为4,就是标准间距;</p><p >EMPTY表示柱线是实心还是空心,如果EMPTY为0就是实心柱,为1就是实线空心柱。</p><p ><b>DRAWSL(COND,PRICE,SLOPE,LEN,DIRECT);</b></p><p >当满足满足COND条件时,从PRICE位置起画斜线;</p><p >SLOPE表示斜率,SLOPE为0的时候,就表示画水平线;</p><p >LEN表示长度,当画的线为水平线时,长度为延伸的周期数;</p><p >DIRECT表示延伸方向,画水平线时,DIRECT为0向右画线。</p><p class="ztext-empty-paragraph"><br/></p><p >先简单写一个公式,看看效果如何:</p><pre><code class="language-text">STICKLINE(O,H,L,0,0);DRAWSL(O,C,0,1,0);</code></pre><p >使用DRAWSL函数,以收盘价画横线,横线太长了。DRAWSL画线最短就是1个周期,没办法进一步缩短。可以用与背景颜色相同的颜色——黑色,把多余的横线覆盖,解决问题横线太长的问题(如下图)</p><p >STICKLINE函数画柱线,WIDTH表示柱线的宽度,4表示标准间距,柱线宽度为4时如下图</p><p >宽度大于4,柱线开始重叠(如下图,柱线宽度为5)</p><p >利用这个特性,如果柱线是黑色实心,就可以用来覆盖多余的横线。</p><p class="ztext-empty-paragraph"><br/></p><p >只有收盘价的通达信美国线(竹线)指标公式:</p><pre><code class="language-text">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的白色柱线};</code></pre><p >成交量柱线:</p><pre><code class="language-text">STICKLINE(VOL,0,VOL,0,1);</code></pre><p >公式写完,发现有个Bug没法解决,当收盘价和前一天相同时,收盘价会被覆盖,不能显示。</p><p >想了想没有特别好的解决方法,只能弃坑跑路了。</p><p >友情提醒:本文仅供学习交流,不构成任何投资建议。投资有风险,入市需谨慎!</p><p ><b>关注公众号技术Pie,学习更多通达信指标公式编写知识。</b></p>
页: [1]
查看完整版本: 通达信美国线(竹线)指标公式源码