大智慧公式学习笔记--自己编写的
c--close o--open h--high l--low
isup---当天收阳
多头排列公式
A1:=ma(c,5);
A2:=ma(c,10);
A3:=ma(c,20);
A4:=ma(c,30);
Count(a1>a2 and a2>a3 and a3>a4,3)=3 and isup;
当天K线上穿5,10均线,剔除st开头的,s开头的,和停牌的
a1:=l>ma(c,30) and l>ma(c,60) and l>ma(c,120) and l>ma(c,250);
a2:=open<ma(c,5) and close>ma(c,5) and open<ma(c,10) and close>ma(c,10);
B1:=NOT(STRFIND(stkname,'ST',1)>0 OR STRFIND(stkname,'S',1)>0 OR (DYNAINFO(4)=0));
xg:a1 and a2 and b1;
去除ST和停牌流通盘小于10亿流通市值小于50亿:
ST:=STRFIND(stkname,'ST',1)>0;
S:=STRFIND(stkname,'S',1)>0;
停牌:=(DYNAINFO(4)=0);
not(ST) and not(停牌) and not(S) and CAPITAL<10000000 and C*CAPITAL*VOLUNIT/100000000<50;
我自己编写的,多头排列,k线上穿5,10,去除ST和停牌流通盘小于【10】亿流通市值小于【50】亿,可以把放括弧里面的这个数字作为参数:
A1:=ma(c,5);
A2:=ma(c,10);
A3:=ma(c,20);
A4:=ma(c,30);
x1:=o<A1 and C>A1 and o<A2 and c>A2;
ST:=STRFIND(stkname,'ST',1)>0;
S:=STRFIND(stkname,'S',1)>0;
停牌:=(DYNAINFO(4)=0);
Count(a1>a2 and a2>a3 and a3>a4,3)=3 and isup and x2 and not(ST) and not(停牌) and not(S) and CAPITAL<10000000 and C*CAPITAL*VOLUNIT/100000000<50;
改编:
参数名 默认值 最小值 最大值 步长
n百万手 10 1 1000 1
市值 50 10 1000 10
多头模式 1 1 4 1
myisup 1 0 1 1
highlow 1 0 1 1
A1:=ma(c,5);
A2:=ma(c,10);
A3:=ma(c,20);
A4:=ma(c,30);
if highlow=1 then begin
x1:=l<A1 and h>A1 and l<A2 and h>A2; {最高和最低价格}
if highlow=0 then begin
x1:=o<A1 and c>A1 and o<A2 and c>A2; {开盘和收盘价格,当highlow=0的时候,isup必须为1}
end
end
ST:=STRFIND(stkname,'ST',1)>0;
S:=STRFIND(stkname,'S',1)>0;
停牌:=(DYNAINFO(4)=0);
if myisup=1 then begin
if 多头模式=1 then
Count(A1>A2 and A2>A3 and A3>A4,3)=3 and isup and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
else if 多头模式=2 then
A1>A2 and A2>A3 and isup and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
else if 多头模式=3 then
A1>A2 and isup and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
else
1 and isup and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
end;
if myisup=0 then begin
if 多头模式=1 then
Count(A1>A2 and A2>A3 and A3>A4,3)=3 and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
else if 多头模式=2 then
A1>A2 and A2>A3 and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
else if 多头模式=3 then
A1>A2 and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
else
1 and x1 and not(ST) and not(停牌) and not(S) and CAPITAL<n百万手*1000000 and C*CAPITAL*VOLUNIT/100000000<市值;
end;