图表型指标的编写技巧_股票公式教程_000001在线网_Www.000001zx.com
图表型指标的编写技巧
近期发现理想论坛有一些朋友写指标时,对于一些超大型列表类的指标,会出现两个问题:第一是画面不美观排列混乱,第二是输出语句太多,但由于大智慧对输出语句数量有一定的限制,导致指标不能完成;我写了一个简单的指标做范例,希望能帮助初学者快速提高这方面的技巧。
注意:本示例指标数据函数用的是大智慧最新版的云函数,不带云函数的版本不要使用,否则会导致大智慧异常退出。
28个数据,全部使用右对齐排列,显示这28个数据只用了四个输出语句。

请理想论坛的软件高手多留意咱这个帖子,如果实在没办法实现,请告之:建议软件高手开发股票池的自动朗读软件
以下是指标源码部分及指标中用到的一些技巧说明:
 
{1:设定报告期,后面很多内容都将直接调用这里的字符串数据,这里将报告期期单独列出来是为减少将来修改的工作量,这个非常重要,很多朋友写指标时就不会考虑到这一点}
BG01:='"报告期=20122Q"';
BG02:='"报告期=20121Q"';
BG03:='"报告期=20114Q"';
BG04:='"报告期=20113Q"';
{2:列表,这里设了三个坐标,写的时候会略显麻烦,但对于调试画面的美观度、整洁度有相当大的帮助,下面第四、五行加了两个灰框背景主要是为了提高画面的可阅读性}
X00:=10;{X轴起始} Y00:=10;{Y轴起始} Y01:=15;{行宽}
DRAWRECTABS(X00+50,Y00-6,X00+375,Y00+Y01*5,RGB(0,0,0)),COLOR999999,LAYER5;
DRAWRECTABS(X00-5,Y00-6,X00+430,Y00+Y01*1-2,RGB(,0,255)),COLORdddddd,LAYER6;
DRAWRECTABS(X00-5,Y00+Y01*2-1,X00+430,Y00+Y01*3-1,RGB(60,60,60)),COLOR333333,LAYER6;
DRAWRECTABS(X00-5,Y00+Y01*4-1,X00+430,Y00+Y01*5-1,RGB(60,60,60)),COLOR333333,LAYER6;
DRAWRECTABS(X00-5,Y00-6,X00+430,Y00+Y01*5,RGB(0,0,0)),COLORffffff,LAYER4;
{3、计算机构持仓比,这里用的大智慧最新7版的云函数,由于前面单独设了报告期,日后就不用修改了,提高了指标编辑效率}
基金01:=DFIXTREEDOT('基金持股比例',BG01,1)+DFIXTREEDOT('基金管理公司持股比例',BG01,1);
基金02:=DFIXTREEDOT('基金持股比例',BG02,1)+DFIXTREEDOT('基金管理公司持股比例',BG02,1);
基金03:=DFIXTREEDOT('基金持股比例',BG03,1)+DFIXTREEDOT('基金管理公司持股比例',BG03,1);
基金04:=DFIXTREEDOT('基金持股比例',BG04,1)+DFIXTREEDOT('基金管理公司持股比例',BG04,1);
社保01:=DFIXTREEDOT('社保基金持股比例',BG01,1)+DFIXTREEDOT('企业年金持股比例',BG01,1);
社保02:=DFIXTREEDOT('社保基金持股比例',BG02,1)+DFIXTREEDOT('企业年金持股比例',BG02,1);
社保03:=DFIXTREEDOT('社保基金持股比例',BG03,1)+DFIXTREEDOT('企业年金持股比例',BG03,1);
社保04:=DFIXTREEDOT('社保基金持股比例',BG04,1)+DFIXTREEDOT('企业年金持股比例',BG04,1);
保险01:=DFIXTREEDOT('保险机构持股比例',BG01,1)+DFIXTREEDOT('保险产品持股比例',BG01,1);
保险02:=DFIXTREEDOT('保险机构持股比例',BG02,1)+DFIXTREEDOT('保险产品持股比例',BG02,1);
保险03:=DFIXTREEDOT('保险机构持股比例',BG03,1)+DFIXTREEDOT('保险产品持股比例',BG03,1);
保险04:=DFIXTREEDOT('保险机构持股比例',BG04,1)+DFIXTREEDOT('保险产品持股比例',BG04,1);
券商01:=DFIXTREEDOT('券商持股比例',BG01,1)+DFIXTREEDOT('券商集合理财产品持股比例',BG01,1);
券商02:=DFIXTREEDOT('券商持股比例',BG02,1)+DFIXTREEDOT('券商集合理财产品持股比例',BG02,1);
券商03:=DFIXTREEDOT('券商持股比例',BG03,1)+DFIXTREEDOT('券商集合理财产品持股比例',BG03,1);
券商04:=DFIXTREEDOT('券商持股比例',BG04,1)+DFIXTREEDOT('券商集合理财产品持股比例',BG04,1);
QFII01:=DFIXTREEDOT('QFII持股比例',BG01,1);
QFII02:=DFIXTREEDOT('QFII持股比例',BG02,1);
QFII03:=DFIXTREEDOT('QFII持股比例',BG03,1);
QFII04:=DFIXTREEDOT('QFII持股比例',BG04,1);
私募01:=DFIXTREEDOT('信托计划持股比例',BG01,1)+DFIXTREEDOT('阳光私募持股比例',BG01,1)+DFIXTREEDOT('投资公司持股比例',BG01,1)+DFIXTREEDOT('资产管理计划持股比例',BG01,1);
私募02:=DFIXTREEDOT('信托计划持股比例',BG02,1)+DFIXTREEDOT('阳光私募持股比例',BG02,1)+DFIXTREEDOT('投资公司持股比例',BG02,1)+DFIXTREEDOT('资产管理计划持股比例',BG02,1);
私募03:=DFIXTREEDOT('信托计划持股比例',BG03,1)+DFIXTREEDOT('阳光私募持股比例',BG03,1)+DFIXTREEDOT('投资公司持股比例',BG03,1)+DFIXTREEDOT('资产管理计划持股比例',BG03,1);
私募04:=DFIXTREEDOT('信托计划持股比例',BG04,1)+DFIXTREEDOT('阳光私募持股比例',BG04,1)+DFIXTREEDOT('投资公司持股比例',BG04,1)+DFIXTREEDOT('资产管理计划持股比例',BG04,1);
机构01:=DFIXTREEDOT('机构持股比例合计',BG01,1);
机构02:=DFIXTREEDOT('机构持股比例合计',BG02,1);
机构03:=DFIXTREEDOT('机构持股比例合计',BG03,1);
机构04:=DFIXTREEDOT('机构持股比例合计',BG04,1);

{4:字符显示区,前面写一个空9可以节省后面过多的字符,通过对数据前面增加空格(STRRIGHT函数)就可以很轻松地对字符进行对齐,而且仅用一个输出语句就将整个季度的数据显示出来,有些朋友每一个数据用一个输出语句,这样是极期浪费的,这种方法一旦数据太多的时候,大智慧就会拒绝再加输出语句}
空9:=' ';
DRAWTEXTABS(X00,Y00+Y01*0-2, '<*c=ffffff*>'+'季报周期基金持仓-社保持仓-保险持仓-券商持仓-QFII持仓-私募持仓全部机构'),LAYER0;
DRAWTEXTABS(X00,Y00+Y01*1, '<*c=dddddd*>'+STRMID(BG01,9,4)+'-'+STRMID(BG01,13,1)+'季'
+STRRIGHT(空9+ifs(基金01=0,'0',NUMTOSTRN(基金01,2)),9)
+STRRIGHT(空9+ifs(社保01=0,'0',NUMTOSTRN(社保01,2)),9)
+STRRIGHT(空9+ifs(保险01=0,'0',NUMTOSTRN(保险01,2)),9)
+STRRIGHT(空9+ifs(券商01=0,'0',NUMTOSTRN(券商01,2)),9)
+STRRIGHT(空9+ifs(QFII01=0,'0',NUMTOSTRN(QFII01,2)),9)
+STRRIGHT(空9+ifs(私募01=0,'0',NUMTOSTRN(私募01,2)),9)
+STRRIGHT(空9+ifs(机构01=0,'0',NUMTOSTRN(机构01,2)),9));
DRAWTEXTABS(X00,Y00+Y01*2, '<*c=dddddd*>'+STRMID(BG02,9,4)+'-'+STRMID(BG02,13,1)+'季'
+STRRIGHT(空9+ifs(基金02=0,'0',NUMTOSTRN(基金02,2)),9)
+STRRIGHT(空9+ifs(社保02=0,'0',NUMTOSTRN(社保02,2)),9)
+STRRIGHT(空9+ifs(保险02=0,'0',NUMTOSTRN(保险02,2)),9)
+STRRIGHT(空9+ifs(券商02=0,'0',NUMTOSTRN(券商02,2)),9)
+STRRIGHT(空9+ifs(QFII02=0,'0',NUMTOSTRN(QFII02,2)),9)
+STRRIGHT(空9+ifs(私募02=0,'0',NUMTOSTRN(私募02,2)),9)
+STRRIGHT(空9+ifs(机构02=0,'0',NUMTOSTRN(机构02,2)),9));
DRAWTEXTABS(X00,Y00+Y01*3, '<*c=dddddd*>'+STRMID(BG03,9,4)+'-'+STRMID(BG03,13,1)+'季'
+STRRIGHT(空9+ifs(基金03=0,'0',NUMTOSTRN(基金03,2)),9)
+STRRIGHT(空9+ifs(社保03=0,'0',NUMTOSTRN(社保03,2)),9)
+STRRIGHT(空9+ifs(保险03=0,'0',NUMTOSTRN(保险03,2)),9)
+STRRIGHT(空9+ifs(券商03=0,'0',NUMTOSTRN(券商03,2)),9)
+STRRIGHT(空9+ifs(QFII03=0,'0',NUMTOSTRN(QFII03,2)),9)
+STRRIGHT(空9+ifs(私募03=0,'0',NUMTOSTRN(私募03,2)),9)
+STRRIGHT(空9+ifs(机构03=0,'0',NUMTOSTRN(机构03,2)),9));
DRAWTEXTABS(X00,Y00+Y01*4, '<*c=dddddd*>'+STRMID(BG04,9,4)+'-'+STRMID(BG04,13,1)+'季'
+STRRIGHT(空9+ifs(基金04=0,'0',NUMTOSTRN(基金04,2)),9)
+STRRIGHT(空9+ifs(社保04=0,'0',NUMTOSTRN(社保04,2)),9)
+STRRIGHT(空9+ifs(保险04=0,'0',NUMTOSTRN(保险04,2)),9)
+STRRIGHT(空9+ifs(券商04=0,'0',NUMTOSTRN(券商04,2)),9)
+STRRIGHT(空9+ifs(QFII04=0,'0',NUMTOSTRN(QFII04,2)),9)
+STRRIGHT(空9+ifs(私募04=0,'0',NUMTOSTRN(私募04,2)),9)
+STRRIGHT(空9+ifs(机构04=0,'0',NUMTOSTRN(机构04,2)),9));
{5:数据由于全部取两个小数,会导致数据为0时显示“0.00”,因此第四部分加了一个判断句[ifs(机构03=0,'0',],将数据为0时去掉小数,利于画面的整洁,更便于识别机构持仓的变化趋势}
{6:对数据变化比较大的,还可以适量地加一些色彩判断句,便于查阅时能快速抓住重点,例如:ifs(私募01-私募02>=2,'<*c=0000ff*>','<*c=00ff00*>'),由于本指标只是个范例,我就没加这方面的了,朋友们可以根据自己的需要添加}
{7:从第4部分我们可以看出,除了1234不一样,其它都一样的,我们在编写的时候就可以先写一段,然后在记事本里替换,这可以快速把4个季度的全写出来。所以规范化的编写指标,除了可以提高画面的美感和可识别性,更可以大大提高我们的效率}
注:关于大智慧云函数机构持仓数据的准确性目前不是很高,仅能做个参考!另外云函数值还可以用指标排序,只要能排序就可用于选股,例如公募机构(基金/社保/保险/券商/QFII)持仓很少但私募持仓大幅增加的票利用云函数通过排序就很容易找出来。
 
{000001在线www.000001zx.com};
五矿证券通达信合一版 新浪通达信版英大证券香港中州证券中原证券集成版太平洋证券通达信合一版世纪证券通达信版江海证券通达信合一版联讯证券通达信至尊版国开证券合一版国联证券合一版红塔证券安信证券通达信开源证券超强版国金证券太阳至强版东莞证券财富通版山西证券汇通启富银泰证券通达信合一版新时代证券新时代通达信灵动密码版华创证券通达信版华宝证券通达信版网上交易至富版天风证券通达信合一版金管家国盛证券通达信版金元证券通达信合一版中航证券至诚版日信证券通达信超强版众成证券网上交易超强版首创证券超强合一版万联证券通达信恒泰证券金玉满堂通达信上海华信证券通达信版民生证券通达信合一版国都证券集成版长城国瑞证券金鼓盈通万和证券通达信专业版华融证券通达信华鑫证券鑫智汇投资理财系统通达信爱建证券超强版财通证券财路通大同证券V6合一版通达信金融终端免费版v7版长城证券烽火版兴业证券通达信长江证券金长江财智版东北证券通达信中国银河证券海王星版中信建投证券网上交易极速版国信证券金太阳版国泰君安锐智版中银国际证券中泰证券融易汇信达证券通达信专业版财富证券财富快车版国海证券通达信行情交易整合版东吴证券合一版方正证券泉友通金鼎版中信证券至信全能版申万宏源证券申银万国旗舰版东兴证券超强版东方证券东海证券超强版新一代华林证券华龙证券超强版宏信证券通达信合一版华安证券达信德邦证券通达信版中国民族证券网上直通车渤海证券新合一版大通证券网上交易神通版第一创业证券通达信集成版海通证券彩虹投资通达信版国元证券国元领航华泰证券网上交易系统通达信版中投证券合一版光大证券金阳光卓越版广发证券金管家至强版中信万通至信版上海证券行情卓越版