通达信NUMTOSTR函数自定义文字提示主要用于把公式计算出的数值转换成可读文字,再配合DRAWTEXT、DRAWTEXT_FIX等绘图函数,在K线图或副图上显示股票代码、名称、现价、涨跌幅均线数值、指标状态和买卖信号提示。它适合做盘中状态面板、复盘标注、信号说明和指标数值展示,能让原本只显示线条或数字的公式具备更直观的文字说明能力,减少看图时反复核对数值的时间。
在通达信公式系统中,NUMTOSTR的基本用法为NUMTOSTR(数值,小数位数),例如NUMTOSTR(CLOSE,2)表示把收盘价转换为保留两位小数的,NUMTOSTR(ZF,2)可把涨跌幅数值转换为两位小数文本。NUMTOSTR本身只负责数值转字符串,固定说明文字、单位符号和中文提示需要写在字符串常量中,再通过STRCAT函数拼接。由于STRCAT一次只连接两个字符串,多个同时显示时应采用嵌套写法,如STRCAT('收盘价:',NUMTOSTR(C,2)),追加百分号时可写成STRCAT('跌幅:',STRCAT(NUMTOSTR(ZF,2),'%'))。这种写法兼容性较好,适合大多数通达信版本。
通达信NUMTOSTR函数自定义文字提示指标的特点主要体现在动态显示和灵活排版上。它可以根据最新行情实时变化,不必手工修改文字;小数位数可控,价格、涨跌幅、均线值可分别保留不同精度;通过与DRAWTEXTFIX配合,文字可固定在屏幕左上角、右上角或指定比例位置,形成类似状态栏的信息面板;通过与DRAWTEXT配合,还能在具体K线位置标注金叉、死叉、突破、超买超卖等信号。该方式也存在一定限制:NUMTOSTR只转换数值,不直接处理日期格式和复杂文本;小数位过多容易造成文字拥挤;DRAWTEXTFIX使用相对坐标,不同分辨率和窗口大小下需要适当调整位置;字符串拼接层级过多时可读性下降,建议先定义数值变量再拼接显示。
使用方法上,先打开通达信公式管理器,进入技术指标公式或主图指标公式的新建界面,填写指标名称并选择周期。若做固定信息面板,可把显示条件设为ISLASTBAR,使文字只在最后一根K线显示;若做历史信号标注,可使用CROSS、REF、MA等条件配合DRAWTEXT公式编写完成后点击测试公式,确认无语法错误后保存,再在K线图输入指标名称调用。以下示例展示了一个包含代码、名称、收盘价、涨跌幅均线状态和金叉提示的自定义文字提示指标:
pascal
{通达信NUMTOSTR自定义文字提示指标示例}
MA5:=MA(C,5);
MA10:=MA(C,10);
ZF:=(C-REF(C,1))/REF(C,1)*100;
JINCHA:=CROSS(MA5,MA10);
SIJIN:=CROSS(MA10,MA5);
DRAWTEXT_FIX(ISLASTBAR,.01,.01,,STRCAT('代码:',STKLABEL));
DWTEXT_FIX(LASTBAR,.,.05,,STRCAT('名称',STKNAME));
DRAWTEXT_FIXISLASTBAR,01,.09,,STRCAT(':',NUMTOSTR(C,2DRAWTEXTIX(LASTBAR,.01,13,,STR('涨跌幅:',STRCAT(NUMTOSTR(ZF,),'%')));
DRAWTEXT_FIXISLASTBAR,01,.17,,STRCAT('MA5:',NUMTOSTR(MA5,2)));
DRAWTEXT(ISLASTBAR,.01,.21,,STRCAT('MA10:',TOSTR(MA10,2)));
DRAWTEXT_FIX(ISLASTBAR,.01,25,,STRCAT('均线状态:',IF(5>MA10,'多头排列','空头排列')));
DRAWTEXT(JINCHA,L*.99,'金叉');
RAWTEXT(SIJIN,H*1.,'死叉');
DRAWTEXT_FIXINCHA AND ISBAR,.01.29,,STRCAT('提示:MA5上穿MA10,价',NUMTOSTR(C,2)));
DWTEXT_FIX(SIJIN AND ISLAST,.01,.29,,CAT('提示:MA5下穿MA10,价',NUMTOSTR,2)));
实际,可根据显示效果调整DRAWTEXT_FIX中的坐标、纵向坐标和对齐方式。前两个坐标通常取至1之间的小数,数值越小越靠左或靠上;第三个对齐参数可按左对齐、右对齐或居中进行设置。NUMTOSTR的小数位参数应按品种和指标灵活选择,价格一般保留两位或三位,涨跌幅保留两位,成交量可先除以10000后再保留两位并拼接“万”字。若只想显示当前最后一根K线的提示,务必在固定文字条件中加入ISLASTBAR;若历史信号也能标注,则使用DRAWTEXT在对应价格位置输出。不同通达信版本对字符串拼接和函数名称可能存在细微差异,若STKLABEL、STKNAME不可用,可替换为本地版本支持的代码、名称函数;若加号拼接不稳定,统一使用STR嵌套写法更为稳妥。








