[股票公式编辑教程] 股票软件指标编写
本文来自:财富赢家 www.cf8.com.cn
作者:八爷
本文来自: 财富赢家论坛 中国最好的股票论坛(http://bbs.cf8.com.cn/)
详细文章参考:http://bbs.cf8.com.cn/thread-177612-1-1.html
股票, 软件, 指标, 编写
股票软件指标编写
1、我想选出、股价在开盘一小时内,一直在均价上方运行的股票;
答:IF(OPENMINUTES(HOUR<1),C>DYNAINFO(11),0);
2、N日最高的涨跌幅、运行空间的相对位置怎么求?
答:
今收盘对于N日内最低收盘价的涨幅:(c-llv(c,n))/llv(c,n)*100;
今收盘价对于N日最高收盘价的跌幅:(HHV(C,N)-C)/HHV(C,N)*100;
在过去N日内运行空间的相对位置:(C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100;
3、选出股价N天内曾出现过涨停,怎么表达?
答:
f:=ref(c,1)*1.1-c<0.01;
count(f,n)>0;//N天内出现过涨停
4、创新高后返回均线附近怎么写?
答:
COUNT(C>=HHV(C,N),5)=1 AND
C/MA(C,m)>=1 AND
C/MA(C,m)<1.02;//N=日期
M=均线
5、低开收大阳、低开收大阴怎么写?
答:
{01-低开收大阳}
qj1:O<ref(l,1) and
(C/REF(C,1)-1)*100>6;
{02-低开收大阴}
qj2:O<ref(l,1) and
(C/REF(C,1)-1)*100<-5.1;
6、我想在一个指标中、同时引用30、60、日线、周线MACD能办到吗?
答:
qj1:="macd.macd#min30";//30分钟
qj2:="macd.macd#min60";//60分钟
qj3:="macd.macd";//日线
qj4:="macd.macd#WEEK";//周线
7、均线斜率怎么写?
答:
XL:ATAN(MA(C,N)/REF(MA(C,N),1)-1)*100;
{XL为N日均线的斜率}。
8、千钧老师听说过“空中加油”,怎么写呀?
答:
{空中加油}
barslast(cross(c,MA(c,250)))<barslast(cross(MA(c,250),c))
and
BARSLAST(CROSS(C,MA(C,20)))<BARSLAST(CROSS(MA(C,20),C));
9、求两个价位之间的最大值、和最小值,怎么写?
答:
最大值:MAX(CLOSE,REF(CLOSE,N));
最小值:MIN(CLOSE,REF(CLOSE,N));
10、选股时怎样去掉“ST”股?
答:把这个加到你的选股指标中。
STRNCMP(STKNAME, 'ST', 2)=0 and STRNCMP(STKNAME, '*ST', 3)=0;
INBLOCK('ST')=0
11、MACD死叉10天后、又金叉怎么写?
答:
DIFF:= EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:= EMA(DIFF,9);
MACD:= 2*(DIFF-DEA);
qj:=BARSLAST(CROSS(DEA,DIFF));
xu:IF(COUNT(qj,10)>=10,CROSS(DIFF,DEA)
AND DIFF<0,0);
12、四连阳怎样写?
答:
四连阳:C>O and
COUNT(C>REF(C,1),4)=4;
13、千钧老师、我发现无量创新高的股票、值得注意,可我不知道怎么写?
答:
vol/capital<0.02 and h>=hhv(high,20)
and close>open;
14、老师你好,我把连续两天以上收阴线、今日成交量大于昨日的30%以上、且均线系统依然多头排列的,判断是主力洗盘。
老师能帮我写一下吗?
答:
xu:COUNT(C<REF(C,1),2)>=2 and
C<O and VOL>REF(VOL, 1)*1.30
and (MA(C,3)>MA(C,5) and
MA(C,5)>MA(C,10)) and
(ma(C,13)>ma(C,26)
and ma(C,26)>ma(C,120));
15、我想求指定日期的收盘价,怎样写?
答:
IF(DATE>1070530,CLOSE,0);
这是去年5月30日的收盘价,时间你可以自己调整。
16、老师、股价在10日均线和20日均线之间运行,且10日均线是上升趋势,如何表达?
答:
RANGE(CLOSE,MA(CLOSE,20),MA(CLOSE,10)) and
COUNT(ma(CLOSE,10)>REF(MA(CLOSE,10),1),3)>=3;
17、千钧老师、我想在飞狐上、画像大智慧L那样的直方图、飞狐可以吗?
答:
你好:
飞狐以其强大的编辑功能著称、如果运用好的话、在它的身上几乎没有做不到的事。
这是直方图的画法、你可以举一反三。
input:left(500,0,999),top(450,0,999),right(550,0,999),bottom(550,0,999);
k1:=SYSPARAM(4)-((SYSPARAM(4)-SYSPARAM(5))/1000*top);
k2:=SYSPARAM(4)-((SYSPARAM(4)-SYSPARAM(5))/1000*bottom);
k3:=ROUND((SYSPARAM(3)-SYSPARAM(2))/1000*left)+2+SYSPARAM(2);
k4:=ROUND((SYSPARAM(3)-SYSPARAM(2))/1000*right)+2+SYSPARAM(2);
STICKLINE(BARPOS>=k3 and
BARPOS<=k4,K1,K2,60,0),colorred;
18、老师你好、飞狐有没有这样的功能?就是当信号出现时、写出文字。过了这天我就不需要看这个提示了,让它消失、再次出现信号时再出来。这能做的到吗?
答:
你好:
当然可以!主图叠加。
AA:MA(C,10);
BB:MA(C,21);
CC:MA(C,120);
P:=SYSPARAM(1);
DRAWTEXT(IF(ISLASTBAR,CROSS(MA(C,10),C),0),MA(C,10),'中线做空');
DRAWTEXT(IF(ISLASTBAR,CROSS(MA(C,21),MA(C,120)),0),MA(C,120),'长线做多');
19、我想在日线下画内外盘的两条线或柱线,可是只能看当天的,老师怎样才能看历史内外盘?
答:
变通一下不就可以了吗?
外盘:vol-DYNAINFO(22);
内盘:vol-DYNAINFO(23);
20、我想在看个股的同时、也能看到大盘,是在主图上,可能叫主图叠加大盘吧。
老师可以吗?
答:
input:N(1070101,0,9999999);
yfqj:=barssince(ref(date,1)<N and
date>=N);
qj:=ref(o,yfqj)/ref(indexo, yfqj);
qj1:=indexo*qj;
qj2:=indexh*qj;
qj3:=indexl*qj;
qj4:=indexc*qj;
stickline(qj4>=qj1,qj3,qj2, 0.1, 0 ),
colormagenta;
stickline(qj4>=qj1,qj1,qj4, 5, 0 ),
colormagenta;
stickline(qj4<qj1,qj3,qj2, 0.1, 0 ),
colorgreen;
stickline(qj4<qj1,qj1,qj4, 5, 0 ), colorgreen;
21、千钧老师你好:
我想在公式中随时能看到交易时间的时、分、秒、就像在指标中安装了一个电子钟。我有其它的用途。老师飞狐能做到吗?
答:
你好
尽管我不知道你用它来做什么?但起码我觉得你是在做捕捉主力大单的出现频率统计工作、很有想法!
后期运用我就不喧宾夺主了、你自己把握和运用吧。
P:=SYSPARAM(1);
AA:=TIME-OPENMINUTES(HOUR)-OPENMINUTES(MINUTE);
DRAWTEXTEX(C,1,20,50,'当前时刻:'+NUMTOSTR(AA[P],0)+' 秒');
22、老师你好,我想随时查看每一分、每一秒的成交量,请老师能不能给我写个这样的语句?我的问题是不是有些过分?
答:
你好:
爱思考、爱钻研,是大好事,应该得到支持与鼓励!加:10分。
P:=SYSPARAM(1);
DV:IF(CURRENTDATE,vol,0);
DRAWTEXTEX(C,1,10,10,' 当前时刻成交量:'+NUMTOSTR(DV[P],0));
可以通过光标、随时查阅毎一时刻的成交量,包括各个周期,全天候。
23、老师你好:
主图上有文字这对看盘及时了解个股的运行情况很有帮助,但太多时就有些乱了。
我想让它们随光标移动,就是不用光标时,文字在后台、使用光标时、文字随光标移动。
老师能帮我吗?
答:
这时你要的,文字随光标移动:
DRAWTEXT(SYSPARAM(1)=BARPOS,CLOSE,'制作:一发千钧');
24、我想把副图的左半部分用什么办法遮住,然后在那上面写文字。
答:
遮挡副图的左半部分:
把它放在你的源码的最后面,我把颜色定位黑色,因为一般的软件底色都是黑色、这样可以不露声色的遮挡左半部分。写文字部分的源码、放在这段源码的后面就行了。
STICKLINE(BARPOS=DATACOUNT-120,0,1000,900,0),COLOR000000;
25、请高人帮编一个在n天内,maN1二次上穿maN2的选股指标.
例:在20天内,出现ma5二次上穿ma10
答:
INPUT:N(20),N1(5,1,300),N2(10,5,900);
M1:=MA(C,N1);
M2:=MA(C,N2);
TJ:COUNT(CROSS(M1,M2),N)>1;
26、收盘价上穿周线和月线如何编写公式?谢谢
答:
01、
Y10:"MA.M2#MONTH";//不要线显示可加上等号
金叉:CROSS(C,Y10),LINETHICK;
DRAWICON(金叉,L,4);
02、
{背景色}
DRAWGBK(1, COLORRGB(255,0,0), COLORRGB(190,190,190),1);
写在第一句,颜色自己调整。
死叉:CROSS(Y10,C),LINETHICK;
DRAWTEXT(金叉,L,'金叉'),COLOR8000EE,ALIGN;
27、求两点之间的距离【天数】
答:
你好:
假设第一点为【AA】、第二点为【BB】、求两点间距离:
AA:=FILTER(CROSS(ma(C,5),ma(C,20)) and
COUNT(ma(c,5)>REF(ma(c,5),1),3)=3,13);
BB:=FILTER(CROSS(ma(C,20),ma(C,5)) and
COUNT(ma(c,20)<REF(ma(c,20),1),3)=3,13);
点A:=barslast(AA);
点B:=barslast(BB);
起点:=if(点A>0 and 点A<点B,点A,0);
终点:=if(点B>0 and 点B<点A,点B,0);
DRAWTEXTEX(c,1,20,10,'进入上拐点:'+NUMTOSTR(起点[SYSPARAM(1)],0)+'
天'),Color00A8FF;
DRAWTEXTEX(c,1,20,150,'跌进下拐点:'+NUMTOSTR(终点[SYSPARAM(1)],0)+'
天'),Color00A8FF;
28、这可能是个很简单的问题,但对我来说很难,还请版主帮忙。就是如何编写这个选股条件,即MACD底部二次金叉,谢谢
答:
你好:
1、首先界定金叉条件:
JC:=COUNT(CROSS(DIFF,DEA),BARSLAST(DEA>=0));
2、定位金叉的次数:
CS:=CROSS(DIFF,DEA) AND DEA<0 AND JC=2;
3、完整的选股公式:
DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
JC:=COUNT(CROSS(DIFF,DEA),BARSLAST(DEA>=0));
选股:CROSS(DIFF,DEA) AND DEA<0 AND JC=2;
29、圆弧底,或者叫W底怎么写?
答:
input:n(10),GATE1(25),GATE2(55),GATE3(20);
p1:=peak(3,N,2);
p3:=peak(3,N,1);
p2:=trough(3,N,2);
p4:=trough(3,N,1);
t1:=troughbars(3,N,2)-peakbars(3,N,1);
t2:=peakbars(3,N,1)-troughbars(3,N,1);
b12:=p1-p2;
bpt:=max(p3-p2,p3-p4);
b24:=abs(p2-p4);
min(t1,t2)>20 {左右底周期跨度均大于20}
and abs(t1-t2)/min(t1,t2)*100<gate1
{左右底跨度之差与左(或右)底跨度的比值小于gate1}
and bpt/b12*100<gate2
{底部反弹幅度与前期深度跌幅的比值小于gate2}
and b24/bpt*100<gate3
{左右底股价的差与底不凡弹高度的比值小于gate3}
and cross(close,1.05*p3); {最新收盘价向上突破颈线的1.05倍}
30、想求出股价第三次创新低,不知道该如何表达?
答:
试试这个
qj:=CROSS(LLV(L,33),L);
A:=BARSLAST(qj);
B:SUMBARS(A,3);
ref(C,B-1);
31、想快速查出股票上市第一天的开盘价,怎么写?
答:
试试这个
OO:=O;
OO[1];
32、股价两次穿越10日均线【二次穿越】怎样表达?
答:
试试这个
qj:=cross(c,ma(c,10));
ref(c,SUMBARS(qj,2)-1);//两次(本次计1次)穿越10日均线
33、分析家5.0,求助30日内有3根大阳线,想知道第二根,第一根阳线到现在的天数
回复【听雪寻股】
大阳:(C-O)/O>0.08,LINETHICK0;
WZ1:=BARSLAST( 大阳);
WZ2:=REF(WZ1,WZ1+1)+1+WZ1;
WZ3:=REF(WZ2,WZ2)+WZ2;
第一大阳到现在:(SUM( 大阳,30 )>=3)*WZ1,COLORFF99FF;{
第一根阳线到现在的天数}
第二大阳到现在:(SUM( 大阳,30 )>=3)*WZ2,COLOR99FF99;{
第二根阳线到现在的天数};
第三大阳到现在:(SUM( 大阳,30 )>=3)*WZ3,COLOR99FFFF;{
第三根阳线到现在的天数};
{注:只有当30天内大阳线大于等于3根才算}
VERTLINE( 大阳,4 ),COLOR9900EE;
34、请问编公式的高手们,在通达信软件中,要取得KDJ从现在往前的第二个交叉日到现在的周期,如何做到,请多指点,谢谢!
回复【听雪寻股】:
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:SMA(RSV,3,1);
D:SMA(K,3,1);
J:3*K-2*D;
KD金叉:CROSS(K,D),LINETHICK0;{条件}
{分别计算三次条件成立时间}
WZ1:=BARSLAST( KD金叉);
WZ2:=REF(WZ1,WZ1+1)+1+WZ1;
WZ3:=REF(WZ2,WZ2)+WZ2;
{以上原码可通用,下面是在通达信中光标指向最后一根K线时在标签栏显示数值}
第一金叉到现在:ISLASTBAR*WZ1,COLORFF99FF,NODRAW;{ 第一金叉到现在的天数}
第二金叉到现在:ISLASTBAR*WZ2,COLOR99FF99,NODRAW;{ 第二金叉到现在的天数};
第三金叉到现在:ISLASTBAR*WZ3,COLOR99FFFF,NODRAW;{ 第三金叉到现在的天数};
STICKLINE( KD金叉,0,70,0,0 ),COLOR9900EE;
实例一、
1、10日与20日均价线均向上运行,二者距离相差不大角度越陡越好;
2、股价从10日线上方跌破10日线,接近20日均价线,最好4日线也跌破10日线;
3、62日与133日均价线,没有反作用力最好;
4、随后产生的成交阳量越大越好;
5、MACD指标图形为空中加油技巧最好.
回复【大庆老杨】:
A4:=MA(C,4);
A10:=MA(C,10);
A20:=MA(C,20);
A62:=MA(C,62);
A133:=MA(C,133);
B1:=A10>REF(A10,1)*1.003 AND
A20>REF(A20,1)*1.003
AND(A10-A20)<C/10;
B2:=C<A10 AND C>A20 AND
A4<=A10;
B3:=A62>=REF(A62,1) AND
A133>=REF(A133,1);
B4:=V/MA(V,10)>1.2;
B1 AND B2 AND B3 AND B4;
MACD指标图形为空中加油形态未编。
实例二、
能否帮我编一个这样的指标选股公式,条件1昨天是根中阴线(收盘价在开盘价3%以下),今天是根中阳线,关键点是,今天的收盘价与昨天的开盘价相等,用红色显示.条件2:今天的收盘价比昨天的开盘价高(5分钱以内)用白色显示,能同图吧,谢谢
回复【一发千钧】:
兄弟!
你的条件也太苛刻了些吧!这四个条件同时存在的股票,那可是千载难寻呐!
不过。我还是耐着性子为你义务劳动一次。
因为这是个主图叠加,为了突出你要的股价相等、我把红色改成黄色、这样更直观一些。
qj1:=between(ref(c,1)/ref(c,2),0.95,0.97);
qj2:=between(c/ref(c,1),1.03,1.06);
qj3:=c=ref(o,1);
qj4:=abs(C-ref(O,1))>0.01 and
abs(C-ref(O,1))<0.05;
aa:=qj1 and qj2 and qj3 and qj4;
bb:=qj1 and qj2 and qj4;
stickline(bb,h,l,1,0),Color00FFFF;
stickline(bb,O,C,8,0),Color00FFFF;
stickline(aa,h,l,1,0),ColorFFFFFF;
stickline(aa,O,C,8,0),ColorFFFFFF;
drawtext(aa,C*0.98,'大牛股'),ColorFFFFFF;
drawtext(bb,C*0.98,'牛股'),Color00FFFF;
实例三
我知道,用技术指标改成选股公式.只要标注两条线交叉,就是一个选股条件..
但我现在碰上了一个没有两条线交叉的技术指标...想把它改成选股公式。。
请各位版主和高手帮忙给改一下。。衷心感谢。。
下面是三条均线粘合的技术指标。。当三条均线粘合度达到5%时,在图形上画
黄色柱线。请问怎么将公式改成选股公式。。即,能选出图形上出现柱线时的股票..
三条均线粘合
AA:=MA(C,5);
BB:=MA(C,10);
DD:=MA(C,30);
A1:=ABS((AA-C)/C);
A2:=ABS((BB-C)/C);
A3:=ABS((DD-C)/C);
B:=A1<0.05 AND A2<0.05 AND
A3<0.05;
FILTER(B,10)=1;
回复一【大庆老杨】:
01、三条均线粘合
AA:=MA(C,5);
BB:=MA(C,10);
DD:=MA(C,30);
A1:=ABS((AA-C)/C);
A2:=ABS((BB-C)/C);
A3:=ABS((DD-C)/C);
B:=A1<0.05 AND A2<0.05 AND
A3<0.05;
FILTER(B,10)=1;
02、如果不过滤,则为:
AA:=MA(C,5);
BB:=MA(C,10);
DD:=MA(C,30);
A1:=ABS((AA-C)/C);
A2:=ABS((BB-C)/C);
A3:=ABS((DD-C)/C);
A1<0.05 AND A2<0.05 AND
A3<0.05;
回复二【王照华】:
AA:=MA(C,5);
BB:=MA(C,10);
DD:=MA(C,30);
A1:=ABS((AA-C)/C);
A2:=ABS((BB-C)/C);
A3:=ABS((DD-C)/C);
B:FILTER(A1<0.05 AND A2<0.05 AND
A3<0.05,10);
实例四
当前时间跳空缺口公式应该是:LOW>REF(HIGH,1)
但是如果我要选 特定时间内。 比如选出“当天 9:30分-9:45分 这根15分钟K线 向上产生跳空缺口”的所有股票。
这个应该怎么写呀。请高手帮帮忙呀。
回复【平阳虎】:
var0:=L>REF(H,1);
选:ref(var0=1,sumbars(time<94600,1)-1)
实例五
老师你好:
能给我写一个选股公式吗?
要求:当天收盘价位于60日均线之上,且MACD上穿0轴。
先谢谢了! 飞狐或通达信能用就成。
回复【估界文】
试试这个了;
a1:=close>=ma(close,60);
a2:=cross("macd.macd"(12,26,9),0);
a1 and a2;
实例六
麻烦老师帮忙写个选股公式:股价在10日均线附近(最好是10日均线的正负0.5%左右),且10日均线是向上的...
谢谢你了
回复【估界文】
a1:=ma(c,10);
a2:=count(a1>ref(a1,1),3)=3;
between(c,a1*1.05,a1*0.95) and a2;
实例七
求版主或是高手编写飞狐公式!
如下图
1、流通股般小于5000万
2、上市交易天数大于365天
3、KDJ的J值小于30
4、RSI的RSI1大于30
5、DMA中的ADX值小于30
回复【一发千钧】
你好:
试试这个,不过目前小于5000万流通盘的个股已经为数不多了。
fc:=close;
qj0:=FINANCE( 7)<5000;
qj1:="kdj.j"<30;
qj2:="rsi.rsi1">30;
qj3:="dmi.adx"<30;
qj4:=BARSCOUNT(c)>365;
qj0 and qj1 and qj2 and qj3 and qj4;
实例八
求教难题,每月第1到第23个交易日表示法
思路是这样的
每个月最少20个交易日,最多23个交易日,放弃常规的日历表示法,用每个月第一个交易日到最后一个交易日,1-23选值,这样来表示