选择roe大于10%的股票,但选股结果里只有200多只,实际上应该不止1000只。
选股界面如下
具体代码如下:
//------------------------------------------------------------------------
// 简称: roe
// 名称: roe
// 类别: 公式应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
//此处添加参数
Vars
Dic<Array<Numeric>> profit(TB_INCOME_PROFIT); //读取利润表财务指标
Dic<Array<Numeric>> balance(TB_BALANCE_TOTAL); //资产负债表
Series<Numeric> roe_TTM;
Series<Numeric> equity;
Series<Numeric> nprofit_TTM;
Numeric dicTime;
Numeric Month_dic;
Events
//此处实现事件函数
OnInit()
{
AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权
SetDicFlag(profit, Enum_DicFlag_BackTime);//设置按时间回溯
SetDicFlag(balance, Enum_DicFlag_BackTime);//设置按时间回溯
}
OnBarClose(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{
dicTime = GetDicTime(profit,0);//获得基础数据的时间
Month_dic = MonthFromDateTime(dicTime);//获得月数
//计算净利润TTM
If(Month_dic==3)
nprofit_TTM=profit[0][10]+profit[1][10]-profit[4][10];
Else If(Month_dic==6)
nprofit_TTM=profit[0][10]+profit[2][10]-profit[4][10];
Else If(Month_dic==9)
nprofit_TTM=profit[0][10]+profit[3][10]-profit[4][10];
Else
nprofit_TTM=profit[0][10];
equity=balance[0][3];//所有者权益
roe_TTM=nprofit_TTM/equity;
PlotNumeric(roe_TTM,roe_TTM*100);
}
}
//------------------------------------------------------------------------
// 编译版本 2023/08/28 220841
// 版权所有 tba81622180713
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
好像是因为在OnInit()里没有加 Range[0:DataSourceSize() - 1]