如何将技术指标修改成选股公式[通达信]

[复制链接]
查看39 | 回复0 | 2022-7-24 06:53:45 | 显示全部楼层 |阅读模式

如何将技术指标修改成选股公式[通达信]

每天看到有很多的人求助要求梅花皇后修改选股指标,这个是在网上找到的
 希望读到这个帖子的人能够学会自己修改选股指标,
 用指标的人永远是让人玩的(你不知道人家是怎么想的)
 写指标的人永远是玩人的人(我知道就是不告诉你原理,)
 当然用指标的也有玩写指标的人的时候(我见过求人改指标的把一个指标的源码拆成好几段让人家改)
 没有贬低别人的意思,用指标知其然不知其所以然,当你能够看懂指标的源码的时候,你就会知道指标是干什么的,
 一个在小机构工作过的人说过其实指标的运算模式就是那么几个,不同的就是参数的设置不一样,
 指标指标的原理就像一个人,那些线,颜色,符号,就是人的衣服,这个帖子是在网上找的希望对大家有用

 当指标编写不出来的时候,再请教梅花皇后这样也许会更好些,也让梅花皇后少做些无用功
 腾出时间来交流一些更有价值的东西,
 昨天有个帖子《论坛没有斑竹了?》提到论坛是交流的地方,通过每个人的努力让变的更好
 很多人都是现在的不如以前的了

 ,股票论坛,论人数不是最多的,但是在一些水平相当高的人眼里,是最好的,曾经有辉煌的历史,一个大机构作手就说过,股票论坛就是和分析家指标网,可是我看到很多的分析家指标网的指标都是从抄过去的,
 希望每个人都从现在做起,努力减少人们对不好的印象,每个人通过自己的努力少一些求助指标的编写,多些股票操作的交流
 股票指标如果你肯花上一周的时间来熟悉那些常用的函数,应该大概明白指标的意思,

 在附件当中我会上三个附件《编写技术指标1000问》是关于技术指标的编写当中的常见的问题

 

 一品抄底】,是个副图指标,既有线性输出信号,也有买点提示信号,输出类别众多,就不是一个单独的选股指标。如何修改、拆分出自己需要的【底部】选股信号,成为一个单独的选股指标呢?如果还需要将【深坑】的信号,也单独设置为选股指标,又该如何修改呢?在此先当做一个问题吧,继续看了后面(二)、(三)小节的引路,相信你自己来就行了!
{一品抄底----论坛一品茶缘编写,通用副图指标}
TYP := (HIGH + LOW + CLOSE)/3;
 CCI:=(TYP-MA(TYP,14))/(0.015*AVEDEV(TYP,14));
 A:=REF(C,1);
 RSI:=SMA(MAX(C-A,0),6,1)/SMA(ABS(C-A),6,1)*100;
 A1:=(C/MA(C,5)-1)*100<-10;
 A2:=(C/MA(C,13)-1)*100<-10;
 A3:=(C/MA(C,34)-1)*100<-15;
 A4:=RSI<18;
 A5:=CCI<-120;
 A6:=COUNT(ABS(C/REF(C,1)-1)*100>=6,30)>=1;
底部:A1 AND A2 AND A3 AND A4 AND A5 AND A6,COLOR00FFFF,LINETHICK2;
 CDSJ:=BARSLAST(底部);
Z,:=(C/REF(C,1)-1)*100;
深坑:IF(BETWEEN(CDSJ,0,5) AND L<=REF(C,CDSJ) AND Z,<=-5,-0.5,0),COLORFF0000,LINETHICK2;
机会:IF(CDSJ<=7 AND L<=REF(C,CDSJ),0.5,0),COLOR00FF00;
寻找选股信号的来源

 所谓选股信号,多数都是属于将已有的指标指标中具有买点类的信号特征“剥离”出来。那么,在指标中该保留哪些有用的源码,删除哪些无关的源码呢?寻找选股信号的来源,就是最主要的过程。
 寻找选股信号来源的方法,一般都是遵循从后往前寻找的原则。
 具体步骤是:先找到发出指标信号的那行代码,然后查看该行代码中的所有条件,需要用到上面哪些源码,再从后往前一一对应寻找出来;而其他无关的条件、修饰符号源码,均可删除。
 举例3:(本例子参考大庆老杨先生帖子,略有改动)
{股市马经----副图指标,源码来自网络}
A1:3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1);
黑马线:EMA(A1,5),LINETHICK2,COLOR6600FF;
 A2:=(黑马线-REF(黑马线,1))/REF(黑马线,1)*100;
 A3:=EMA(C,5);
 A4:=((C-LLV(L,21))/(HHV(H,21)-LLV(L,21)))*100;
趋势线:(MA(3*SMA(A4,6,1)-2*SMA(SMA(A4,5,1),5,1),2)),LINETHICK2,coloryellow;
 A5:=(HHV(H,60)-C)/(HHV(H,60)-LLV(L,60))*100;
 DRAWTEXT(FILTER(REF(黑马线,1)>90 AND A2<0,7),黑马线,'跑'),COLOR00FF00;
 DRAWTEXT(CROSS(A1,黑马线)AND 黑马线<A5,黑马线,'黑马');
DRAWTEXT(CROSS(黑马线,A5)AND 趋势线<80,黑马线,'追涨');
DRAWTEXT(CROSS(趋势线,0)AND 黑马线<40,5,'大黑马');
底部:(A2<-10 AND A2>REF(A2,1))*25,colorred;
 DRAWICON(底部 AND A3>REF(A3,1),25,4);
机会来临:REF(IF((MA(C,5)-C)/C>0.04 AND (MA(C,10)-MA(C,5))/MA(C,5)>0.04,30,0),1),COLORF00FF0;
大势已去:IF(CROSS(黑马线,A1)AND 黑马线>70 AND 趋势线>80,90,100),COLORFF0000;
指标中涉及“买”的信号有黑马、追涨、大黑马、底部和机会来临五个明显的,另外还有一个画图标信号。

 假如我们提取其中的【机会来临】,仔细分析后,就是一句话:
 机会来临:REF(IF((MA(C,5)-C)/C>0.04 AND (MA(C,10)-MA(C,5))/MA(C,5)>0.04,30,0),1);
这个可看作简单提取。

 如果提取【大黑马】的话,从后向前推,涉及趋势线和黑马线两个定义,这部分都有用:
A1:3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1);
黑马线:EMA(A1,5),LINETHICK2,COLOR6600FF;
 A4:=((C-LLV(L,21))/(HHV(H,21)-LLV(L,21)))*100;
趋势线:(MA(3*SMA(A4,6,1)-2*SMA(SMA(A4,5,1),5,1),2)),LINETHICK2,coloryellow;
 DRAWTEXT(CROSS(趋势线,0) AND 黑马线<40,5,'大黑马');

(三)修改选股指标的方法

 根据以上选股指标的特征,结合寻找选股信号来源的方法,自己动手修改选股信号,应该就没有太大的难度了!

 举例4:继续承接上面(二)的例子。
 修改步骤:
①先将线性输出的A1、黑马线、A4、趋势线均限制输出,方法很简单,就是在他们的冒号后面直接加上等号=;
②再删去修饰符LINETHICK2,COLOR6600FF:
③将本来是文字输出的“黑马线”修改成信号输出;先将“黑马线”三个字移动到最前面,并加上冒号:;然后保留符合黑马线的限制条件CROSS(趋势线,0) AND 黑马线<40;同时删除其余无关的代码,包括文字输出函数DRAWTEXT、位置、括号()等。
 修改成选股指标后的源码如下:
A1:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1);
黑马线:=EMA(A1,5);
 A4:=((C-LLV(L,21))/(HHV(H,21)-LLV(L,21)))*100;
趋势线:=(MA(3*SMA(A4,6,1)-2*SMA(SMA(A4,5,1),5,1),2));
大黑马:CROSS(趋势线,0) AND 黑马线<40;

举例5:
 下面附图指标【大三浪】中,如何选出出现“买”字提示信号的选股指标?
{大三浪----论坛一品茶缘编写,通用副图指标}
 {大三浪指标使用说明:
均线粘合且多头,长期未涨庄吸筹;
目标锁定先跟踪,出击买入等丰收!}
 {N:30,120,65;}
 MA5:=MA(CLOSE,5);
 MA21:=MA(CLOSE,21);
 MA65:=MA(CLOSE,N);
多头:=COUNT(MA21>MA65,10)=10;
 GX:=MAX(MA5,MAX(MA21,MA65));
 DX:=MIN(MA5,MIN(MA21,MA65));
粘合:=ABS(GX/DX-1)*100<=15;
多头粘合:IF(多头 AND 粘合,1,0),COLORFF00FF,POINTDOT,LINETHICK0;
 DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);
 DEA:=EMA(DIFF,9);
 MACD:=2*(DIFF-DEA);
庄股:COUNT(MACD<0,10)=10,COLORFFFF00,POINTDOT,LINETHICK0;
目标:IF(多头 AND 粘合 AND 庄股,5,0),COLORFFFFFF,LINETHICK2;
跟踪:IF(目标,BARSLAST(CROSS(目标,0))+1,0),COLOR00FF00,POINTDOT,LINETHICK2;
出击:IF(CROSS(0.1,目标) AND CROSS(MACD,0),8,0),COLOR00FFFF,LINETHICK2;
 MJSJ:=BARSLAST(出击>0);
涨幅:IF(MJSJ<=120,(C/REF(C,MJSJ)-1)*100,0),COLOR0000FF,POINTDOT,LINETHICK0;
日涨:IF(MJSJ<=120,涨幅/MJSJ,0),COLORFFFFFF,POINTDOT,LINETHICK0;
 TPX:=MIN(MA65*1.15,MA21*1.13);
突破:IF(CROSS(C,TPX) AND 粘合 AND MA65>REF(MA65,1),10,0),COLOR0000FF,LINETHICK2;
 {以下设置副图显示方式}
STICKLINE(多头粘合,0,1,8,0),COLORFF00FF;
 STICKLINE(庄股,0,MACD*10,8,0),COLORFFFF00;
 DRAWTEXT(出击=8,10,'★买'),COLOR00FFFF;
 VERTLINE(CROSS(涨幅,20) AND COUNT(CROSS(涨幅,20),MJSJ)=1,2),COLOR0000FF;

 

根据选股指标的步骤,一步一步来:
①首先找到出现“★买”提示的一行代码,发现她其实就是“出击”的信号;
②从后往前,找到“出击”信号的条件,发现他与“目标”、MACD有关;
 再次往前寻找,又发现“目标”信号的条件,与“多头”、“粘合”、“庄股”三个条件有关,由此,保留相关条件代码,其余删除,如下:
{N:30,120,65;}
 MA5:=MA(CLOSE,5);
 MA21:=MA(CLOSE,21);
 MA65:=MA(CLOSE,N);
多头:=COUNT(MA21>MA65,10)=10;
 GX:=MAX(MA5,MAX(MA21,MA65));
 DX:=MIN(MA5,MIN(MA21,MA65));
粘合:=ABS(GX/DX-1)*100<=15;
 DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);
 DEA:=EMA(DIFF,9);
 MACD:=2*(DIFF-DEA);
庄股:COUNT(MACD<0,10)=10,COLORFFFF00,POINTDOT,LINETHICK0;
目标:IF(多头 AND 粘合 AND 庄股,5,0),COLORFFFFFF,LINETHICK2;
出击:IF(CROSS(0.1,目标) AND CROSS(MACD,0),8,0),COLOR00FFFF,LINETHICK2;
 ③限制输出数量,只保留“出击”信号的输出,其他的输出信号均加上等号=加以限制输出;
④删除多余的修饰符号,如:COLORFFFF00,POINTDOT,LINETHICK0等。
⑤IF格式也可简化,只保留需要的条件,输出信号自动为1。“出击”两字也可修改为“买”。
 修改完最后保留的源码如下:


{大三浪----选股指标}
 {N:30,120,65;}
 MA5:=MA(CLOSE,5);
 MA21:=MA(CLOSE,21);
 MA65:=MA(CLOSE,N);
多头:=COUNT(MA21>MA65,10)=10;
 GX:=MAX(MA5,MAX(MA21,MA65));
 DX:=MIN(MA5,MIN(MA21,MA65));
粘合:=ABS(GX/DX-1)*100<=15;
 DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);
 DEA:=EMA(DIFF,9);
 MACD:=2*(DIFF-DEA);
庄股:=COUNT(MACD<0,10)=10;
目标:=IF(多头 AND 粘合 AND 庄股,5,0);
买:CROSS(0.1,目标) AND CROSS(MACD,0);

 

导入选股指标的途径
①修改完后的选股指标源码,想做成选股指标,并非放在指标系统之下的【技术指标】分类,一般是放入【条件选股】分类;便于设置预警、自动选股。
②还可将选股指标加入交易系统中,但需要注意的是:输出信号必须为英文单词的买入ENTERLONG、卖出EXITLONG信号。在应用时,飞狐软件输入该交易系统指标名称,即可在主图自动显示买卖信号的提示。
 源码如下:
ENTERLONG:CROSS(MA(C,3),MA(C,8));----表示输出多头买入信号。
EXITLONG:CROSS(MA(C,8),MA(C,3));----表示输出空头卖出信号。
 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则