[转载]通达信下如何做自定义指标的横向统计?
(2017-06-22 10:29:04)
标签:
转载 |
分类: 股票 |
原文地址:通达信下如何做自定义指标的横向统计?作者:神州狼
在网上看到很多朋友都提到通达信下自定义指标的横向统计问题,这个问题使得通达信股软象鸡肋:平常用着还可以,一旦想做复杂一点的按板块统计的指标,往往束手无策;要换成其他功能强的股软例如飞狐之类,又不太愿意,毕竟通达信用熟了,主要功能也大致够用,而且学会一种复杂的新软件成本比较高。那怎么办?
通达信真的没有办法处理自定义指标的横向统计了吗?
我的实践经验是:在某些情况下,采用特殊的处理方法(也是最直接的方法,把需要统计的版块中的所有个股都逐个列出计算指标值,然后再累加,最终得出横向统计结果),是可以在通达信下实现自定义指标的横向统计功能的.
具体方法如下:
1.
先定义好需要做横向统计的指标,不妨假设指标名称为ZB,需要统计的输出字段是out,则我们的统计对象是
“ZB.out”。举个例子,如果要做KDJ的J值的横向统计,在通达信下,统计对象的引用方式是
"KDJ.J"。
2. 定义好横向统计的版块范围。版块根据需要可以自定义,也可以使用系统已经定义好的,例如“沪深300”。
3. 定义横向统计的表达式:
T= F(“ZB.OUT”), F(X) 是横向统计表达式,最简单的例子:统计某个版块的各股KDJ
的J值的和, 则横向统计表达式为: T =
"KDJ.J";
4. 根据
横向统计表达式的复杂程度,考虑版块包含的股票总数以及通达信对公式编辑最多不允许超过2000行和每个表达式不能超过1300个字符的限制,确定需要定义的指标数N。之所以要做这一步是因为要把板块中的个股的指标计算都用公式表达出来,如果放在一个指标中,很容易超出通达信允许的单指标2000行的限制而无法实现。
5. 根据确定的指标数N,把版块中的股票分成
N组,各组之间股票相互独立,对每一组股票,定义一个指标Z,计算出本组股票的横向统计值,这样会有Z1~ZN共N个指标计算出N个横向统计值,
N个指标定义完成后,再建一个总指标ZZ,在其中直接使用指标Z1~ZN计算出整个板块的横向统计值。
举例说明:
1. 我定义了一个指标
WZQS,其输出是C2(结果为0或1),希望统计每一天沪深300版块关于指标"WZQS.C2"的横向统计值。
2.
定义指标横向统计公式是:T:=IF("000001$WZQS.C2"=1,1,0);其中000001是股票代码,其他股票类似。
3.
沪深300版块共有300个股票,为了不超出通达信单指标2000行限制,确定使用3个指标XTONE,XTTWO,XTTHREE(意思是XT1,XT2,XT3,
定义指标名称时XT后面不要使用数字,否则引用指标时通达信会编译出错,例如以下公式正确
TT:="XTONE.T1"+"XTTWO.T2"+"XTTHREE.T3";
而写成TT:="XT1.T1"+"XT2.T2"+"XT3.T3"; 就会出现编译错误)
,每个指标计算100个股票,最后建1个总指标XT300。
4.
从通达信中把沪深300的股票代码导出到excel中,对每一个股票都写出横向统计表达式,完成XTONE,XTTWO,XTTHREE的定义(可以使用UltraEdit的列编辑功能)。
5.
建立总指标XT300,对XTONE,XTTWO,XTTHREE的统计结果进行累加,最终得出沪深300的板块统计结果。
6.
在通达信附图中显示XT300的输出,即可以获得版块横向统计的连续曲线。
备注:
只要分指标足够多,可以实现对整个A股版块的横向统计,只不过通达信下统计速度可能会有些慢。
指标代码片段如下,其中的序号从100开始只是为了编辑公式时方便各行对齐,无特殊含义,完整定义见附件。
XTONE:
T100:=IF("000001$WZQS.C2"=1,1,0);
T101:=IF("000002$WZQS.C2"=1,1,0);
T102:=IF("000009$WZQS.C2"=1,1,0);
T103:=IF("000012$WZQS.C2"=1,1,0);
......
T198:=IF("600005$WZQS.C2"=1,1,0);
T199:=IF("600006$WZQS.C2"=1,1,0);
T200:=IF("600008$WZQS.C2"=1,1,0);
T1:T100+T101+T102+T103+T104+T105+T106+T107+T108+T109+T110+T111+T112+T113+T114+T115+T116+T117+T118+T119+T120+T121+T122+T123+T124+T125+T126+T127+T128+T129+T130+T131+T132+T133+T134+T135+T136+T137+T138+T139+T140+T141+T142+T143+T144+T145+T146+T147+T148+T149+T150+T151+T152+T153+T154+T155+T156+T157+T158+T159+T160+T161+T162+T163+T164+T165+T166+T167+T168+T169+T170+T171+T172+T173+T174+T175+T176+T177+T178+T179+T180+T181+T182+T183+T184+T185+T186+T187+T188+T189+T190+T191+T192+T193+T194+T195+T196+T197+T198+T199+T200;
XTTWO:
T201:=IF("600009$WZQS.C2"=1,1,0);
T202:=IF("600010$WZQS.C2"=1,1,0);
T203:=IF("600011$WZQS.C2"=1,1,0);
......
T297:=IF("600528$WZQS.C2"=1,1,0);
T298:=IF("600547$WZQS.C2"=1,1,0);
T299:=IF("600548$WZQS.C2"=1,1,0);
T300:=IF("600549$WZQS.C2"=1,1,0);
T2:T201+T202+T203+T204+T205+T206+T207+T208+T209+T210+T211+T212+T213+T214+T215+T216+T217+T218+T219+T220+T221+T222+T223+T224+T225+T226+T227+T228+T229+T230+T231+T232+T233+T234+T235+T236+T237+T238+T239+T240+T241+T242+T243+T244+T245+T246+T247+T248+T249+T250+T251+T252+T253+T254+T255+T256+T257+T258+T259+T260+T261+T262+T263+T264+T265+T266+T267+T268+T269+T270+T271+T272+T273+T274+T275+T276+T277+T278+T279+T280+T281+T282+T283+T284+T285+T286+T287+T288+T289+T290+T291+T292+T293+T294+T295+T296+T297+T298+T299+T300;
XTTHREE:
T301:=IF("600550$WZQS.C2"=1,1,0);
T302:=IF("600569$WZQS.C2"=1,1,0);
T303:=IF("600582$WZQS.C2"=1,1,0);
T304:=IF("600583$WZQS.C2"=1,1,0);
......
T397:=IF("601988$WZQS.C2"=1,1,0);
T398:=IF("601991$WZQS.C2"=1,1,0);
T399:=IF("601998$WZQS.C2"=1,1,0);
T3:T301+T302+T303+T304+T305+T306+T307+T308+T309+T310+T311+T312+T313+T314+T315+T316+T317+T318+T319+T320+T321+T322+T323+T324+T325+T326+T327+T328+T329+T330+T331+T332+T333+T334+T335+T336+T337+T338+T339+T340+T341+T342+T343+T344+T345+T346+T347+T348+T349+T350+T351+T352+T353+T354+T355+T356+T357+T358+T359+T360+T361+T362+T363+T364+T365+T366+T367+T368+T369+T370+T371+T372+T373+T374+T375+T376+T377+T378+T379+T380+T381+T382+T383+T384+T385+T386+T387+T388+T389+T390+T391+T392+T393+T394+T395+T396+T397+T398+T399;
XT300:
TT:="XTONE.T1"+"XTTWO.T2"+"XTTHREE.T3";
T:TT/300*100;
T100:=IF("000001$WZQS.C2"=1,1,0);
T101:=IF("000002$WZQS.C2"=1,1,0);
T102:=IF("000009$WZQS.C2"=1,1,0);
T103:=IF("000012$WZQS.C2"=1,1,0);
......
T198:=IF("600005$WZQS.C2"=1,1,0);
T199:=IF("600006$WZQS.C2"=1,1,0);
T200:=IF("600008$WZQS.C2"=1,1,0);
T1:T100+T101+T102+T103+T104+T105+T106+T107+T108+T109+T110+T111+T112+T113+T114+T115+T116+T117+T118+T119+T120+T121+T122+T123+T124+T125+T126+T127+T128+T129+T130+T131+T132+T133+T134+T135+T136+T137+T138+T139+T140+T141+T142+T143+T144+T145+T146+T147+T148+T149+T150+T151+T152+T153+T154+T155+T156+T157+T158+T159+T160+T161+T162+T163+T164+T165+T166+T167+T168+T169+T170+T171+T172+T173+T174+T175+T176+T177+T178+T179+T180+T181+T182+T183+T184+T185+T186+T187+T188+T189+T190+T191+T192+T193+T194+T195+T196+T197+T198+T199+T200;
T201:=IF("600009$WZQS.C2"=1,1,0);
T202:=IF("600010$WZQS.C2"=1,1,0);
T203:=IF("600011$WZQS.C2"=1,1,0);
......
T297:=IF("600528$WZQS.C2"=1,1,0);
T298:=IF("600547$WZQS.C2"=1,1,0);
T299:=IF("600548$WZQS.C2"=1,1,0);
T300:=IF("600549$WZQS.C2"=1,1,0);
T2:T201+T202+T203+T204+T205+T206+T207+T208+T209+T210+T211+T212+T213+T214+T215+T216+T217+T218+T219+T220+T221+T222+T223+T224+T225+T226+T227+T228+T229+T230+T231+T232+T233+T234+T235+T236+T237+T238+T239+T240+T241+T242+T243+T244+T245+T246+T247+T248+T249+T250+T251+T252+T253+T254+T255+T256+T257+T258+T259+T260+T261+T262+T263+T264+T265+T266+T267+T268+T269+T270+T271+T272+T273+T274+T275+T276+T277+T278+T279+T280+T281+T282+T283+T284+T285+T286+T287+T288+T289+T290+T291+T292+T293+T294+T295+T296+T297+T298+T299+T300;
T301:=IF("600550$WZQS.C2"=1,1,0);
T302:=IF("600569$WZQS.C2"=1,1,0);
T303:=IF("600582$WZQS.C2"=1,1,0);
T304:=IF("600583$WZQS.C2"=1,1,0);
......
T397:=IF("601988$WZQS.C2"=1,1,0);
T398:=IF("601991$WZQS.C2"=1,1,0);
T399:=IF("601998$WZQS.C2"=1,1,0);
T3:T301+T302+T303+T304+T305+T306+T307+T308+T309+T310+T311+T312+T313+T314+T315+T316+T317+T318+T319+T320+T321+T322+T323+T324+T325+T326+T327+T328+T329+T330+T331+T332+T333+T334+T335+T336+T337+T338+T339+T340+T341+T342+T343+T344+T345+T346+T347+T348+T349+T350+T351+T352+T353+T354+T355+T356+T357+T358+T359+T360+T361+T362+T363+T364+T365+T366+T367+T368+T369+T370+T371+T372+T373+T374+T375+T376+T377+T378+T379+T380+T381+T382+T383+T384+T385+T386+T387+T388+T389+T390+T391+T392+T393+T394+T395+T396+T397+T398+T399;
前一篇:所谓的黄金坑挖完了吗?
后一篇:操盘手之《自由救赎》摘录