[PEL] 复制代码 INPUT:N(2,1,30,1);//参数表示 N年内没有送股
VARIABLE:分红连续增长:=0,股息率连续满足:=0;
new_y:=YEAR<>REF(YEAR,1);
LEN:=BARSLAST(new_y);
//条件0:连续十年不间断分红,包含当年
con0:STKINDI('','a.r',0,9,0);
//条件1:N年内没有送股,包含当年
LENX:=SUMBARS(new_y,N);
送股数量:=SPLITDATA(1)+SPLITDATA(2);
con1:=sum(送股数量,LENX)=0;
//条件2:近三年股息率大于3% ,只计算过去的年度股息率,不包含当前当前未结束的年份
//条件3:上市公司的分红额连续三年增长 这里只统计过去三年,不包含当前未结束的年份
//如果当年没有分红,返回0
累计分红额:=SUM(SPLITDATA(4),len+1),NODRAW;
上一年累计分红额:=VALUEWHEN(new_y,ref(累计分红额,1));
//只考虑分红情况!按:100*分红/10/除权登记日的收盘价. 除权数据是每十股,所以这里额外除了10
//返回最近一次,不一定是今年的.如果需要本年的,需要额外处理.
最近一次分红的股息率:100*VALUEWHEN(SPLITDATA(4),SPLITDATA(4)/10/REF(CLOSE,1)),NODRAW;
//只考虑分红情况!按:100*当年累计分红/10/最近一个除权登记日的收盘价. 除权数据是每十股,所以这里额外除了10
//这里分红是累计计算的,并且使用实时价格计算股息率
//当年没有分红,返回0
动态股息率:100*累计分红额/10/C,NODRAW;
tmp1:=ref(上一年累计分红额,1);
tmp2:=ref(动态股息率,1);
if new_y then
begin
if 上一年累计分红额>tmp1 then 分红连续增长:=分红连续增长+1;
if 上一年累计分红额<=tmp1 then 分红连续增长:=0;
if tmp2>3 then 股息率连续满足:=股息率连续满足+1;else 股息率连续满足:=0;
end
con2:=分红连续增长>=3;
con3:=股息率连续满足>=3;
//条件4:扣非利润连续三年均为正
KF0:=FININDICATOR('','niAttrPCut',0,0);//本期,本期可能来源于非第四季报.取决于财报更新时间
KF1:=FININDICATOR('','niAttrPCut',4,-1);//去年
KF2:=FININDICATOR('','niAttrPCut',4,-2);//前年
con4:=KF0>0 AND KF1>0 AND KF2>0;//扣非利润连续三年均为正
//条件5:资产负债率<80%
con5:=FINANCE(16)/FINANCE(10)*100<80;//资产负债率<80%,日K线
//条件6:现金流大于0,日K线
con6:=FINANCE(40)>0;
//条件7:股利率大于30%,这里是当前实时的. 没有采用上一年末的静态的
//100*当年累计分红额/10/每股收益
//当年没有分红,返回0
股利支付率:100*累计分红额/10/FINANCE(33),NODRAW;
con7:=股利支付率>30;
选股条件:con0 and con1 and con2 and con3 and con4 and con5 and con6 and con7;
另外这里涉及到一个指标调用,把二楼的代码复制下来 新建指标a 放进去即可。
其次 这里都涉及到深度和普通财务数据的调用 ,以及较多的历史日线数据。你需要补充下这些数据,否则部分指标是无效的。
选股时候 选择 “选股条件”这个变量即可。
|