避雷:亿利洁能39亿存款说没就没了 - 存贷双高

Note

本来是放在quail.ink微信公众号的收费文章,想了想,还是算了


History doesn’t repeat itself, but it often rhymes.

亿利洁能的变卦让我想起了当年的康美药业。

消失的存款

2024年6月10日,亿利洁能(600277)涉嫌信息披露违规收到了证监会的立案告知书。

事实上,亿利洁能早在一个多月前就为市场提前打了预防针,其2023年年度业绩预告更正公告中披露净利润从原来的3645万元到5286万元更正为亏损4.87亿元到5.96亿元,主要是因为预计信用减值损失大增。

究其原因,亿利洁能把钱存放在其关联的财务公司里,然后财务公司向亿利集团及其关联方发放贷款,然后按照相关的贷款压力测试需要对存货进行约4.2亿的减值。 这还没结束,最近公司获悉相关贷款已被划分为次级贷款(不良贷款的一种)。 换句话说,贷款还不了,存款收不回了。

提前预防

实际上,我们可以通过存贷双高这个指标提前避雷。

存款

货币资金是否充足:

货币资金总资产比率” >25%,可以说明公司的存款比较高。其中:货币资金总资产比率 = (货币资金+交易性金融资产)/总资产。

货币资金是否真实:

货币资金收益率 = 利息收入/货币资金。

近几年,虽然银行利率不高,但以活期存放在银行的利率都有2%左右。如果少于2%, 那么可以质疑其真实性。

借款

借款的利率高低:

利息费用净利润比率 = 利息费用/净利润。

利用利息费用与净利润的占比来判断借款的高低。“利息费用净利润比率”>15%,则证明企业借款比较多。

一般来说,既然借款的费用那么高,已经蚕食大部分净利润了,而存款又那么高,为啥不直接把借款给还了,而不是白白交息。

亿利洁能的存贷双高

image

Python量化实现

实现过程(python代码)

实现环境:

  1. python 3.12
  2. jupyterlab
import akshare as ak
import pandas as pd

import warnings
warnings.filterwarnings('ignore')
#输入股票代码
stock_code = 'SH600277'
#损益表
stock_profit_sheet_by_yearly_em_df = ak.stock_profit_sheet_by_yearly_em(symbol=stock_code)
# PARENT_NETPROFIT:归属于母公司(或股东)的综合收益总额,FE_INTEREST_INCOME:利息收入(元),FE_INTEREST_EXPENSE:利息费用(元)
profit_sheet = stock_profit_sheet_by_yearly_em_df[['SECUCODE','REPORT_DATE','PARENT_NETPROFIT','FE_INTEREST_INCOME','FE_INTEREST_EXPENSE']]
profit_sheet['REPORT_DATE'] = pd.to_datetime(profit_sheet['REPORT_DATE']).dt.date

#资产负债表
stock_balance_sheet_by_yearly_em_df = ak.stock_balance_sheet_by_yearly_em(symbol=stock_code)
#MONETARYFUNDS:货币资金(元),TRADE_FINASSET_NOTFVTPL:交易性金融资产(元),TOTAL_ASSETS:资产合计(元)
balance_sheet = stock_balance_sheet_by_yearly_em_df[['SECUCODE','REPORT_DATE','MONETARYFUNDS','TRADE_FINASSET_NOTFVTPL','TOTAL_ASSETS']]
balance_sheet['REPORT_DATE'] = pd.to_datetime(balance_sheet['REPORT_DATE']).dt.date
# 货币资金+交易性金融资产
total_moneyfunds = balance_sheet['MONETARYFUNDS'].add(balance_sheet['TRADE_FINASSET_NOTFVTPL'], fill_value=0) 
# 货币资金总资产比率=(货币资金+交易性金融资产)/总资产
total_moneyfunds_to_assets = total_moneyfunds.div(balance_sheet['TOTAL_ASSETS'], fill_value=0) * 100
# 货币资金收益率=利息收入/货币资金
moneyfunds_return = profit_sheet['FE_INTEREST_INCOME'].div(total_moneyfunds, fill_value=0) * 100
# 利息费用净利润比率=利息费用/净利润
expense_rate = profit_sheet['FE_INTEREST_EXPENSE'].div(profit_sheet['PARENT_NETPROFIT'], fill_value=0) * 100

# create new a df
result_dict = {}
result_dict['股票代码'] = balance_sheet['SECUCODE']
result_dict['报告期'] = balance_sheet['REPORT_DATE']
result_dict['总现金(亿)'] = round(total_moneyfunds/100000000,2)
result_dict['货币资金总资产比率(%)'] = round(total_moneyfunds_to_assets,2)
result_dict['货币资金收益率(%)'] = round(moneyfunds_return,2)
result_dict['利息费用净利润比率(%)'] = round(expense_rate,2)

df = pd.DataFrame(result_dict)
df