前言
最近整理通达信公式里的角度类写法,把一段四周期均线角度加色带填充的源码拿出来做技术笔记。重点记录ATAN角度换算、NODRAW中间变量、DRAWBAND填充边界这几个函数的用法,顺带排查未来函数。纯代码层面拆解,不涉及任何使用建议。

源码
pascal
N1:=5;N2:=10;N3:=25;N4:=60;
JD1:ATAN((MA(C,N1)/REF(MA(C,N1),1)-1)*100)*180/3.1816,NODRAW;
JD2:ATAN((MA(C,N2)/REF(MA(C,N2),1)-1)*100)*180/3.1816,NODRAW;
JD3:ATAN((MA(C,N3)/REF(MA(C,N3),1)-1)*100)*180/3.1816,NODRAW;
JD4:ATAN((MA(C,N4)/REF(MA(C,N4),1)-1)*100)*180/3.1816,NODRAW;
DRAWBAND(JD3,RGB(128,0,0),0,RGB(0,128,0));
STICKLINE(JD4>=0,-80,-65,1,0),COLORRED;
STICKLINE(JD4<=0,-80,-65,1,0),COLORBLUE;
逻辑拆解、坑点说明
1、角度换算公式 。ATAN((MA/REF(MA,1)-1)*100)*180/3.1816 这一段,先算均线环比变化率乘100,再取反正切得到弧度,最后乘180除3.1816转成角度。3.1816约等于π的近似值,这里用近似常数做换算,属于公式里常见的简化写法,和标准π值有微小差异,但作为绘图用途影响不大,学习者知道这一点即可。
2、NODRAW的坑。JD1到JD4都带NODRAW,意味着这四个输出只算数值不画线。新手容易误以为写了输出就会显示,实际图上只有后面的色带和柱线。如果想让某条角度线显示出来,需要去掉对应行的NODRAW。
3、DRAWBAND的边界参数 。DRAWBAND(JD3,RGB(128,0,0),0,RGB(0,128,0)) 第一个参数是上边界(JD3),第二个是上边界颜色,第三个是下边界(0),第四个是下边界颜色。注意它填充的是两条边界之间的区域,这里以JD3和0为界,正负角度自动分色。坑点在于JD3是变量边界,色带会随角度变化而伸缩,不是固定宽度。
4、STICKLINE的纵坐标区间 。STICKLINE(JD4>=0,-80,-65,1,0) 在-80到-65这个固定纵坐标区间画柱,这个区间和角度数值本身没有直接关系,纯粹是选一个图表下方空白位置做方向标记。坑点:如果主图其他指标也占用这个纵坐标区间,会出现图形重叠,需要调整区间数值。
5、信号重绘排查。全段未出现BACKSET、ZIG、PEAK、TROUGH等未来函数,REF只取前一周期的确定值,DRAWBAND和STICKLINE基于当前已确定的角度值绘制,不存在未来数据引用,信号不会重绘。

适用场景
这段代码适合作为通达信公式中"角度计算+色带填充+方向柱标记"的组合写法学习素材。角度换算部分可迁移到其他均线类指标,DRAWBAND的变量边界填充思路可用于制作正负分界类绘图效果,STICKLINE的固定区间画柱手法常用于在副图底部做状态标记。仅限编程学习,不构成任何参考。
本指标公式仅用于编程技术学习研究,不构成任何参考,市场有风险,请自主理性判断。
本指标系本人整理原创,最早发布在股策网,本文为二次拆解分享。