第一篇:求解大型银行资本金缺口
求解大型银行资本金缺口
在金融危机冲击下,主要国家普遍加强了对银行资本的监管,实行更加严格的资本定义,扩大资本覆盖范围,并提出系统重要性、逆周期等资本要求。
基于此,中国的银行监管部门于2011年8月公布了《商业银行资本管理办法》(征求意见稿,下称新资本管理办法),对大型银行的资本充足率提出了新的要求。
在现阶段银行融资仍占社会融资总量主体的情况下,商业银行特别是大型银行的信贷增速短期内将无明显放缓迹象,新增资本需求会继续上升。
以上两个趋势性因素,令工、农、中、建、交五家大型商业银行面临巨大资本金缺口,初步测算,这一缺口在“十二五”期间将高达4000亿元。
资本金饥渴成为困扰大型商业银行的一道难题。可供选择的解决路径究竟有哪些?笔者认为:大型银行拓展资本补充渠道需要同时从内源融资和外源融资进行拓展。在内源融资方面,需要设置合适的分红比例;在外源融资方面,需要客观看待配股、定向增发对国有控股股东的财务压力和股权稀释影响。同时,要从分子和分母两个渠道进行机制创新,来提高资本充足率水平。
五大行4000亿资本缺口
2011年5月,银行监管部门发布了《关于中国银行业实施新监管标准的指导意见》,明确了最新资本监管框架,新监管标准实施后,正常条件下系统重要性银行最低资本充足率要求为11.5%。2011年8月,银行监管部门发布新资本管理办法,对加权风险资产测算方法进行调整(主要变化参见附件一)。
基于监管部门所要求的风险权重的变化和新资本管理办法的相关测算要求,以大型银行2011年6月末数据为基础,笔者对权重法下银行资本充足率及资本缺口所受到的影响进行了初步估算(见表1)。
由于新资本充足率管理办法中核心资本增加了其他无形资产扣减项、部分资产项目风险权重上升、增加了操作风险资本要求等原因,大型银行核心资本充足率均下降了0.6个-0.8个百分点左右,除建设银行外,其余四家银行均存在核心资本缺口而无法满足9.5%的监管要求。
总资本充足率情况也不容乐观,由于风险加权资产增加规模较大,附属资本计算方法中将原来的贷款一般准备项改为损失准备缺口(即贷款损失准备低于150%贷款拨备覆盖率的缺口)等原因,大型银行资本充足率将下降0.7个至1.3个百分点不等,工商银行、农业银行和交通银行均难以达到监管标准。
必须说明的是,由于数据可得性有限,风险加权资产调整影响的测算并不完备,部分风险权重增加项并未计算在内,此处进行的整体测算结果可能还比实际情况相对乐观。因此,由于新监管标准造成的大型银行资本补充压力不容忽视。
如果拉长分析的时间长度,大型银行的信贷扩张还将进一步对资本充足率带来压力。如果按照未来GDP增速至少为7%,CPI增幅4%,信贷增速至少高于名义GDP增速3个-5个百分点计算,在今后一段时间内,大型银行贷款规模将维持14%-20%左右的持续扩张状态,对银行资本的新增需求不容忽视。
现拟基于以下假设,对“十二五”时期大型银行资本金缺口情况进行试测(见表2):1)2012年-2015年信贷增速依次递减:17%、16%、15%、14%;2)利润年均增速依次为20%、19%、18%、17%;3)信贷资产增量与风险加权资产增量比例为1∶1.2(考虑到未来非贷款业务占比将逐步提升,设定值略高于2011年水平);4)不良贷款率1.3%(考虑到地方政府融资平台、房地产等领域贷款风险因素的可能影响,设定值略高于2011年水平)、拨备贷款比例2.5%;5)分红比例40%。
从基于上述假设测算结果可以看出,随着信贷投放规模逐年扩大,资本需求日益扩大,如不进行资本补充,则至“十二五”期间,五家大型银行将面临近4000亿元资本缺口,如果不转变业务模式,则如何拓展资本补充渠道必然会成为大型银行难以忽视的重要挑战。
路径一:分红比例下调
利用留存收益进行内源融资具有成本低、不稀释老股东股权比例、银行具有主动权等优势,是银行补充资本金、提高核心资本的最可持续的途径。如果将现金分红比例适当调低,则可在一定程度上支持计划中的信贷增长。
基于前述假设条件,如将分红比例降至30%,则工商银行、建设银行在2015年前就不再面临资本补充问题;如将分红比例降至20%,则农业银行、中国银行也可不进行资本补充,仅靠内源融资即可补足新监管标准和信贷规模增长所带来的资本消耗。
各银行单靠利润留存即可满足资本补充需求的现金分红比例上限(如表3),也即当大型银行分红比例分别降至35.3%、26.1%、20.8%、37.5%和4.8%以下时,就不需要新的外源融资即可满足资本补充需求。
考虑到汇金公司在四家大型银行股改之初先后向其注资6000余亿元,由此需靠四家银行分红按年支付特别国债利息,降低现金分红比例会对其财务状况产生一定影响。
按现有控股比例不变进行测算,如果将现金分红比例降至40%,汇金公司在支付特别国债利息后,还将产生7000亿元左右的盈余。即使下降分红比例至20%,即前述四家大型银行均无需外源融资的分红比例,汇金公司仍将有4000亿元左右的财务盈余。事实上,工、农、中、建四行仅需按照4.5%、6.8%、5.7%、4.9%的比例进行现金分红,即可满足汇金公司支付特别国债利息的资金需求(见表4)。
路径二:国有控股股东配股
股改上市以来,大型银行曾在2010年进行过一次以配股和定向增发为主要形式的外源资本补充。
财政部、汇金公司、全国社保基金等国有控股股东依靠其历年累计的现金分红,即有足够的财务资源参与大型银行的配股。“十二五”期间,在其他基础假设条件不变的情况下,假设大型银行已通过调整现金分红比例至30%进行了内源融资,则资本缺口如表5所示。以上测算结果显示,在降低现金分红比例后,工商银行、建设银行已不存在资本缺口。假设1)其余三行均在开始出现资本缺口后,即2012年进行定向增发或配股形式的外源融资;2)三家银行均一次性补足“十二五”期间全部资本缺口,即农业银行、中国银行、交通银行分别补充500亿元、550亿元和700亿元(见表6)。
从上述测算结果可以看出,汇金公司依靠农业银行和中国银行的分红,就可以在完成对应特别国债利息支出及参加2010年配股后,继续参加“十二五”时期的资本补充,且仍能有近500亿元的财务盈余。交通银行由于补充资本规模相对较大,而分红额度较低,会对财政部造成一定财务压力,但是考虑到财政部从农业银行的分红收入后,综合来看,财政部仍有财务实力参加农业银行和交通银行的配股。
路径三:增发稀释国有控股权
但是,无论分红是否能够满足国有控股股东参与银行配股的资金需求,只要参与资本补充,都将对国有控股股东的财务状况造成压力。那么如果不参与配股,其影响如何?
按照上述假设进行测算,设想在农、中、交行分别于2012年和2013年补充500亿元、550亿元和700亿元资本时,国有股东并未选择参与定向增发或者配股,而是选择适当稀释国有控股股东在大型银行中的持股比例。
假设增发时股价较2011年末上升20%,则在不参与增发的情况下,汇金公司对农业银行和中国银行的持股比例下降至38.2%和64%,分别下降1.8个和3.7个百分点;财政部对农业银行和交通银行的持股比例下降至37.4%和19.9%,分别下降1.8个和6.6个百分点。以汇金公司和财政部为代表的国有控股股东仍然维持着对农业银行和中国银行的绝对控股地位(见表7)。
由此可见,在信贷持续增长带来资本需求,以及国有控股股东要维持目前控股比例的前提下,资本补充必然对财政部、汇金公司等国有大股东造成现实的财务压力。同时,在确保国有股东绝对控股地位的前提下,允许国有股比例适当稀释,也有利于实现大型银行股权结构的进一步多元化和公司治理机制的完善。
因此,建议对国有控股股东持股比例设立一个合理区间,允许其通过不参与配股和定向增发、引进战略投资者等方式,使其持股比例在绝对控股比例底线之上适当波动,从而降低国有控股股东的财务压力。
路径四: 分子、分母资本工具创新
从资本充足率的计算角度看,可从做大分子和缩小分母两方面,对资本补充机制进行创新。
在分子方面,可扩大债务资本补充工具的应用范围。次级债、可转债、混合资本债等债券工具具有发行便利、对资本市场冲击相对较小、不会摊薄原有股东收益、避税等优势,可成为银行资本补充的重要渠道;同时,创新一些新的资本性质的金融工具。
在分母方面,一是要强化资本对于信贷扩张的约束作用,推动银行更多发展资本节约型业务。测算结果表明,在信贷增速降至12%、利润率保持在15%、其他假设条件不变的情况下,除交通银行外,其余大型银行均可依靠内源资本积累达到资本监管要求,而无需进行外源融资。
二是逐步推行信贷资产转让,增强银行信贷资产流动性。
三是尝试运用资产证券化等金融创新工具,缓解信贷资产对银行的资本占用压力。作者为国务院发展研究中心金融研究所副所长、中国银行业协会首席经济学家
第二篇:银行为什么需要大量的资本金
银行资本金是指投资者投入商业银行的资本金以及由这些资金增殖等原因形成的资本公积、盈余公积和利润分配形成商业银行的所有者权益,代表着投资者在商业银行的权益,供商业银行在存续期内长期使用。
目前,我国商业银行资本金包括
1、核心资本:包括实收资本、资本公积、盈余公积、未分配利润。
2、附属资本:商业银行的贷款呆帐准备金、坏帐准备金、投资风险准备金、五年及五年期以上的长期债券。
资本金主要有以下作用
1、资本金是一种减震器。当管理层注意到银行的问题并恢复银行的盈利性之前,资本通过吸纳财务和经营损失,减少了银行破产的风险。
2、在存款流入之前,资本为银行注册、组建和经营提供了所需资金。一家新银行需要启动资金来购买土地、盖新楼或租场地、装备设施、甚至聘请职员。
3、资本增强了公众对银行的信心,消除了债权人(包括存款人)对银行财务能力的疑虑。银行必须有足够的资本,才能使借款人相信银行在经济衰退时也能满足其信贷需求。
4、资本为银行的增长和新业务、新计划及新设施的发展提供资金。当银行成长时,它需要额外的资本,用来支持其增长并且承担提供新业务和建新设施的风险。大部分银行最终的规模超过了创始时的水平,资本的注入使银行在更多的地区开展业务,建立新的分支机构来满足扩大了的市场和为客客户提供便利的服务。
5、资本作为规范银行增长的因素,有助于保证银行实现长期可持续的增长。管理当局和金融市场要求银行资本的增长大致和贷款及其风险资产的增长一致。因此,随着银行风险的增加,银行资本吸纳损失的能力也会增加,银行的贷款和存款如果扩大得太快,市场和管理机构会给出信号,要求它或者放慢速度,或者增加资本。
6、资本在银行兼并的浪潮中起了重要作用。根据规定,发放给一个借款人的贷款限额不得超过银行资本的15%,因此,资本增长不够快的银行会发觉自己在争夺大客户的竞争中失去了市场份额。
《巴塞尔协议》不仅规定了商业银行的资本构成,而且对资本充足性的测定也做了说明。
1、核心资本(一级资本)与风险加权资产的比率不得低于4%。
2、总资本(一级资本与二级资本之和)与风险加权总资产的比率不得低于8%,二级资本最高不能超过一级资本的100%。其中,作为二级资本的次级债务和中期优先股的总额最高不得超过一级资本的50%,贷款与租赁损失准备也可以作为补充资本,但贷款准备不能超过银行风险加权资产的1.25%。
银行作为负债经营的企业,对银行来说吸收存款是负债业务,发放贷款是资产业务,当前我国实行适度宽松的货币政策,随着信贷规模的扩大,而不补充银行资本金,就会出现资
本充足率的不足。由于银行的资产都是有风险的,如果出现不良贷款,资本金就是风险的缓冲器。如果资本金不足那么银行的经营就会出现危险,甚至破产。因此银行监管部门会严格监控银行的资本充足率。当银行的资本种族率不足时,银行就无法再继续扩张资产业务了。
第三篇:银行通用大型数据库
银行通用大型数据库---Db2 日常实用操作 收藏
怎么没人发DB2啊,我记得我刚参加工作时面试,有一个问题是“你用过什么大型数据库?”,我当时还搞不清什么叫大型,就顺便说了FOX,ACCESS,主考的人看着我的,用一句歌词来形容就是”得意的笑,他得意的笑“,也幸好去面试的只有一个人说了个INFORMIX,我才在公司学了DB2,学了 INFORMIX,学了SOCKET,哈,看着公司一年有十亿RMB的进账,看着我每月薪水都在一把(一把是一百张,一张是一百元,哈)以上,真是感慨良多啊!哈,幸好是走过来了!
先贴点基础的,可别小看,这是你以后的基础,就像现在IBM搞培训,不到一周时间,会讲600M的文档,知识点也就讲个名字,要不老师会累死,哈!
以下是正文:
1、Load 方法装入数据:
export to tempfile of del select * from TABLENAME where not 清理条件; load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;
说明:
在不相关的数据表export数据时,可以采取并发的形式,以提高效率;
TABLENAME指待清理table的名称;
modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;
nonrecoverable无日志方式装入;
2、查找当前的应用:
db2 list application |grep DBSNAME;
3、删除当前正在使用的application:
db2 “force application(Id1,Id2,Id3)”
Id1,Id2,Id3 是List显示的应用号;
4、查看当前应用号的执行状态:
db2 get snapshot for application agentid 299 |grep Row5、查看数据库参数:
db2 get db cfg for
6、修改数据库的Log数据:
db2 update db cfg using <参数名> <参数值>、Db2Stop Force的用法:
在进行Bind的时候出现如下错误:
SQL0082C An error has occurred which has terminated processing.SQL0092N No package was created because of previous errors.SQL0091N Binding was ended with “3” errors and “0” warnings.主要是表文件被加锁,不能继续使用;
在进行stop的时候报错:db2stop
8/03/2005 21:46:53 0 0SQL1025N The database manager was not stopped because databases are still active.SQL1025N The database manager was not stopped because databases are still active.需要使用如下命令可以解决这个问题: db2stop force
08/03/2005 21:47:4900SQL1064N DB2STOP processing was successful.SQL1064N DB2STOP processing was successful.然后启动数据库db2start,连接数据库db2s后,重新进行bind即可。
8、缓冲池参数修改:
db2 alter bufferpool ibmdefaultbp size 10240
查看本表的数据内容如下:
db2 “select * from syscat.bufferpools”;
9、DB2 日志处理:
DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。至于采用何种模式,可以通过修改数据库配置参数(LOGRETAIN)来实现: 归档日志模式:db2 update db cfg for
必须按照以下正确的步骤进行操作:要求必须使用DB2命令PRUNE进行清理,不建议使用rm命令删除。删除前应保证应用已停止(即联机已下来)。查看当前使用的日志文件目录及第一活动日志文件用 “db2 get db cfg for
$ db2 connect to
$ db2 prune logfile prior to S???.LOG
注:S???.LOG为查看到的第一活动日志文件。此命令可以将当前第一活动日志文件之前的归档日志文件全部删除。
11、如何清理db2diag.log文件
db2diag.log,是用来记录DB2数据库运行中的信息的文件。可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。可以通过查看实例的配置参数DIAGPATH,来确定db2diag.log文件是放在哪个目录下:db2 get dbm cfg 如果Diagnostic data directory path(DIAGPATH)= /home/db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。当文件系统/home的使用率达到80%-90%左右时,应及时删除db2diag.log文件。请按以下正确步骤操作:确认应用(如BTP)、DB2已经停止。将原db2diag.log文件备份到其它文件系统下。删除db2diag.log文件。删除后,DB2会自动创建一个新的文件。
12、Load 操作
在进行load的时候
db2 “load from acmmst.txt of del modified by coldel| replace into acmmst nonrecoverable ”
由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:
SQL0668N Operation not allowed for reason code ”3“ on table ”BTP.ACMMST“.SQLSTATE=57016
此时,进行反方向操作即可:
db2 ”load from /dev/null of del terminate into acmmst nonrecoverable“。
如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:
db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。
两个表文件之间UPDATE的方法:
db2 ”update cdmcrd set offset =(select cdmlsl.offset from cdmlsl where cdmlsl.crdno=cdmcrd.crdno)where cdmcrd.crdno in(select cdmlsl.crdno from cdmlsl)
13、多字段条件查询和修改:
表A中的字段有actno, cnlno,bal,pwd;表B中的字段为Actno,Cnlno,TxnAmt;目的是将A表中的bal修改为B表中的TxnAmt,命令:
db2 “update A set bal=(select txnamt from B where actno=A.actno and cnlno=A.Cnlno)where A.actno||A.cnlno in(select Actno||cnlno from B);
14、多条件匹配查询
查询某个表中条件是B?AAA的记录:
db2 ”select * from A where actno like 'B_AAA%'“.查询数据中存在某些字符的记录:
db2 ”select * from A where actno like '%-AAA%“.15/数据库恢复的处理
进行数据库恢复的时候使用以下的命令:
restore db db1 to /tstdb2/catalog into db newlogpath /tstdb2/db2log buffer 2048
replace existing redirect parallelism 16;
set tablespace containers for 1 using(path '/tstdb2/db2tmp');
set tablespace containers for 2 using
(device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440,device '/dev/rtstcontlv02' 2621440, device '/dev/rtstcontlv03' 2621440);
restore db db1 continue;
恢复完成以后执行命令db2s时报如下的错误:
P570:>db2s
SQL1117N A connection to or activation of database ”DB" cannot be made because of ROLL-FORWARD PENDING.SQLSTATE=57019
DB21034E The command was processed as an SQL statement because it
was not a
valid Command Line Processor command.During SQL processing it returned:
SQL1024N A database connection does not exist.SQLSTATE=08003 解决办法如下:
P570:>db2 rollforward db db to end of logs and complete
Rollforward Status
Input database alias= db
Number of nodes have returned status= 1
Node number= 0
Rollforward status= not pending
Next log file to be read=
Log files processed=-
Last committed transaction= 2005-11-20-10.59.23.000000
DB20000I The ROLLFORWARD command completed successfully.
第四篇:上海银行资本金堪忧 存贷比连续三年高企
上海银行的ipo之路可谓一波三折。
从10年前露出上市意向,到错过城商行第一波上市潮,再到2011年4月,原本的上市计划“延长一年”。在今年4月20日召开的2011股东大会上,上海银行又一次将上市方案的有效期延长一年。
曾先于其他城商行拿到首张跨区经营牌照的上海银行,由于上市步伐远远落后于北京银行、宁波银行,近两年发展速度相对缓慢,资本压力也渐渐凸显。
资本充足率低于上市城商行
从2011年年报数据中不难发现,急于上市的上海银行补充资本的需求较为迫切。2011年,上海银行资本充足率、核心资本充足率分别为11.75%、8.74%。不过,北京银行、南京银行和宁波银行2011年底的资本充足率分别为12.06%、14.96%、15.36%,而南京银行、宁波银行核心资本充足率也分别高达10.89%和12.33%。
在4月20日股东大会上,上海银行副行长张伟国对媒体表示,“按照未来三年发展规划测算,我们预计资本缺口超过300亿元。”“我们的目标是资本金水平不影响未来三年业绩发展目标、资本充足率符合监管要求且达到上市银行中等水平。”
上海银行称,综合考虑a股发行上市、净资产规模、未来三年资本缺口、股本结构等因素和h股公众持股比例的有关要求,该行计划h股发行股数不超过12亿股,占发行后总股本的比例不低于15%。
而上海银行的附属资本亦在补充过程中。张伟国表示,“我们希望通过上市能尽快补充资本,满足监管要求同时至少要达到一般上市银行的资本充足率平均水准。”上海银行2011年已经发行50亿元次级债,而且又已经上报50亿元,计划中还有50亿元次级债等待上报,但次级债未来能否作为资本仍具有不确定性。
上海银行的盈利能力也在下滑。2011年资产收益率为0.95%,相比2010年的0.97%,降幅2.06%。
联合资信评估公司2011 年7 月发布的上海银行2011年跟踪信用评级报告中指出,2010 年上海银行主营业务较快发展,加权风险资产规模较上年末增长33.72%,加权风险资产对资产总额的比率上升5.08 个百分点,资产面临的整体风险上升。而根据其年报数据,截至2011年底,这一比例又上升了2.58%。
此外,近年来上海银行持续推进跨区域经营,员工成本和分支机构建设费用的较快增长使其面临一定的成本压力。虽然在2010年比前一年成本收入比有所改善,但上海银行的成本收入比也一直处于较高水平,从2010年底36.06%,又上升至2011年底的38.03%,成本收入比上升近2%。而从上市的3家城商行来看,北京银行、南京银行和宁波银行成本收入比分别为26.35%、30.97%和36.38%。上海银行成本控制能力逊于上述3家银行。
近三年存贷比连超70%
2008年以来,上海银行的贷存比数据一直呈上行趋势,连续三年在70%以上,处于较高水平,从2009年底70.42%,上升至2010年底的72.5%,而2011年底仍达到71.61%。
存贷比的高企,限制了贷款规模的增长,同时带来揽存压力,对利息收入造成影响。而三家上市城商行则大幅低于这一数值,2011年底北京银行、南京银行和宁波银行分别为64.41%、61.77%和66.62%。
收入结构单一也是国内城市商业银行普遍存在的现象,而上海银行这一现象也较突出。从业务构成看,上海银行的收入绝大部分来源于利息净收入。
截至5月17日,上海银行并未在其官网上公布详细的2011年年报,而是仅公布了年报摘要。在2010年底时,投资和筹资活动的现金净流出额分别为225.12 亿元和15.26 亿元,联合资信认为,“由于贷款规模增长较快,存贷比保持较高水平,存在一定的流动性压力。”
而截至2011年底,上海银行利息收入从199.79亿元上升至262.94亿元,增幅为31.61%,给出原因是“生息资产规模扩大,收益率提高”。不过,利息支出的增幅却是利息收入的两倍多,同比增幅高达68.29%,从77.76亿元增加到130.9亿元。上海银行也坦承,2011年利息支出增幅较大的原因,是“付息负债规模扩大,筹资成本上升”。
一位银行分析师表示,近来随着cpi上涨,负利率时代造成了银行存款搬家,银行揽储难度增加。央行发布的数据显示,存款大流失的局面,4月人民币存款减少4656亿元。不少银行通过银行理财产品来达到揽储的目的,增加了利息支出。而银监会75%的月度日均存贷比的考核,让不少银行的放贷速度下降,要想突破贷款规模,就需要付出更高的利息成本来获得存款。
莫尼塔刚刚公布的2012年5月城商行调研快报显示,近90%调研到的城商行表示目前揽储的压力持续较高,资金成本继续上升。
市政地产贷款存行业集中风险
虽然不少城商行都跨区开设了分行,但经营范围仍有不少限制,单一城市经营模式所带来的负面影响日益显现。加上风险暴露的滞后性,2009 年以来大规模的信贷扩张对商业银行未来的信贷质量形成压力。
联合资信认为,上海银行“市政类贷款和房地产贷款规模较大,存在行业集中风险。”同时,较快的机构发展速度对决策执行能力、风险管理能力、信息系统支持能力及资本实力提出了更高要求。
从贷款指标上看,上海银行的房地产贷款占比一直较高,2010 年末房地产业贷款和个人住房抵押贷款分别占贷款总额的15.6%和14.37%,两者合计占30%,存在行业集中风险。2011年房地产下降到14.06%,从第二下降到第四,不过前五大行业贷款余额占贷款总额的比例为70.64%。
“近年来上海银行持续深化银政合作,重点推进政府基础设施建设和政府重大投资项目融资,政府融资平台类贷款规模较高。随着贷款期限的逐步临近,未来上海银行信贷资产质量可能面临压力。”联合资信认为。
2011年上海银行不良贷款率0.98%,这与上市城商行比仍处于较高水平,北京银行、南京银行和宁波银行2011年底的不良贷款率分别为0.53%、0.78%和0.68%。虽然正常类贷款比例同比下降0.17%,但关注类贷款增加了17.7亿元,占比上升0.31%,次级类贷款占比也增加0.05%。
截至2011年末,上海银行总资产6558亿元,净资产352.76亿元,实现营业收入141.62亿元,归属于母公司股东净利润58.06亿元。目前,上海银行前三大股东分别为上海联和投资有限公司、香港上海汇丰银行有限公司、中国建银投资有限责任公司,持股比例分别为19.24%、8%和7%。
第五篇:数据结构大型实验报告-银行系统模拟
数据结构大型实验报告
软工1102班 201126630230 周云阁
问题描述...........................................................................................................................................1 类结构..............................................................................................................................................1 模拟算法说明...................................................................................................................................2 问题分析...........................................................................................................................................4 展望和收获.......................................................................................................................................5
问题描述
②银行系统模拟
【问题描述】假设银行有四个服务窗口,初始每个窗口都可以提供服务;模拟开始后,每个窗口都能给出最早空闲时间(即最早可以提供服务的时间);当顾客到达后,总可以看到每个窗口标出的最早可以提供服务的时间,由此来选择窗口,其中,顾客按照一定的频率到达;到达后系统随机产生服务时间,同时产生下一个到达事件的时间。当顾客离开窗口时,该窗口为空闲,即可以为下一个等待顾客提供服务。所有到达事件和离开事件都被插入优先队列。银行系统模拟中的关键部分为客户事件,包括到达事件和离开事件,所有事件都被加上时间戳,放到优先队列中,队列中优先级最高的事件就是时间戳最早的事件。银行模拟中用随机数来决定下个顾客何时到达及当前顾客所需的服务时间,它可保证事件在某一范围内等概率发生。如果,当前到达事件发生在T时刻,下一个到达事件将发生在范围T+arrivalLow和T+arrivelHigh之间。而每个顾客的服务事件在范围ServiceLow和ServiceHigh之间。到达/离开事件数据均应包括:时间、事件类型、顾客号、服务窗口、等待时间、服务时间等。试编写程序模拟银行系统的运行。
类结构
1.两个自定义的优先队列;
WIndowsPriorityQueues类,用单链表实现的优先队列,用于存放窗口对象,在队列里的 优先权参考 窗口的悠闲程度,即time属性,time越小,悠闲程度越大,则越在链表的最 前面。取出的时候,执行get()方法,取出表头,即优先权最高的对象。
EventPriorityQueues类,向量实现,用以存放生成的顾客事件对象,优先权是顾客事件 生成顺序,顾客越早生成的,就排在向量的前面。顾客事件对象就按线性顺序排列在这 个队列中
模拟算法说明
(手工图略粗糙)
总体是来说,以事件为主,时间由事件驱动向前进。以此图为例,假设A,B,C,D四个窗口的起始时间分别为 0 1 2 3,然后由A先开始。systemTime,时间轴直接跳到开始处理的时刻 即A 的 0 时刻。
2.然后A接到顾客,A的0 时刻 加上 顾客的服务时间2,说明A将在2时刻完成处理。3..此时,时间轴 加上 下一个顾客的到达时间 3,那么时间轴(systemTime)就跳到3时刻。4.明显,当时间轴到3时,A已经处理完毕,则弹出。则在 3时刻,A仍为空闲的。5.但事实上,在时刻3,是B 接待顾客,因为B的时刻较小,虽然此时所有的窗口都为空闲状态,但由于默认的处理效率一样,没有区别,但如果要考虑不同窗口的效率话,那么在只要在优先队列再增加优先级的参考项即可。
6.那么由此循环向前进,如果遇到所有的窗口都是处于处理状态。那么只要把时刻最小的窗口弹出,且时间轴(systetTime)跳到那个时刻即可。当然这当中略有瑕疵要处理。
1.顾客的生成问题 及解决方法
按照正常的流程来说,应该是先生成第一位顾客,然后程序就可以开始了,然后是那边窗口一边处理,一边生成顾客,而实际上是,c++本身貌似没有多线程的机制,所以要实现这种方法,就要c++程序去调用windows系统的接口,借助一个windows.h的文件,然后在该进程下,开辟一个子线程。网上教程都大概这个样子,但实际操作起来的话,include windows.h文件的时候,却会报类似“找不到该文件“的错误。各种折腾之后,无奈就采取了第二种解决方法。根据四个窗口最大化的服务时间的总和ST,在不考虑顾客到达的间隙的情况下,批量生产顾客的信息,存入队列中,直至所有顾客的服务时间总和大于ST.2.对事件机制的理解
在这个模拟中,并不是很明显的显示各种事件的运作。围绕整个模拟,基本是以窗口的运作为核心,顾客是窗口的附属,然后窗口和顾客的结合或分离,才是对应的到达或离开事件。所以以事件机制来解释的话,窗口在等待队列中准备,顾客在顾客队列待续,然后各取出优先级最高的,窗口的时间加上顾客的服务时间,然后把窗口压入处理队列中,这就是到达事件,在处理好的时候弹出。而处理好的标志就是窗口的时间小于systemTime,说明在下一位顾客到达时,该窗口已经处理好了,可以弹出,此为离开事件,该则将该窗口压入等待队列,如果大于,则等到下一次ystemTime,再判断,以此重复,3.模拟算法的各种调整
a.刚开始的时候,算法的实现就是简单的最高优先级窗口的时间,加成最高优先级顾客的服务时间和等待时间,然后发现这与实际情况实在相差太大,故不得不抛弃。b.然后换了另外一种,.就是先判断一下,如果服务时间大于等待时间,则最高优先级的窗口不增加顾客等待时间,只加顾客的服务时间,然后其它窗口增加等待时间,这一开始在四个窗口的起始服务时间相同的情况下确实行得同,可是后来发现当四个窗口的起始时间不一样的时候,就发现出问题了。c.所以就发现需要一个变量来客观的变量,像systemTime,来告诉窗口现在进行到什么时候了,该不该加等待时间,再经过调整之后就是现在的算法了
4.模拟算法的缺陷
当连续的,顾客的处理大大于其等待时间时,也就是说,此时四个窗口都会是处于处理状态,那么下一个顾客即使到达了,仍需等待最先处理完窗口的弹出才行,那么这一期间内,顾客仍会陆续到达,此时把已经到达的等待时间应该变成0才是正确的,可是实际上这么做的时候,总之没发生什么好事,程序崩溃了。
展望和收获
简单的收获1:想得总比做得简单。本来我想要完成这道题目,只要事件类来一个,队列类来一个,然后一个main函数,这三个搅一搅就能搞定的事。可实际上,真正动手写时,就发现了很多,在空想阶段忽略的细节和问题。比如一个简单向量下标越界的问题,链表尾部为空的问题等不大,但却很恼人的错误。而整个大型实验所花费的时间大部分都在排除各种不大不小的错误上.。细节很重要、简单的收获2:发现用流程结构图可以更加直观明白,把大概的脉络展现出来。但实际上流程图真心不好画,比如本篇的这张消耗大概3~5小时,流程图总要随着代码而改变。
改进:一切为了模拟更接近实际,实际上有些地方因为一开始大致模型以及定下来了,后面改起来就比较麻烦,虽然可能只是看起来麻烦。但去改动它就会让人恨难受,故而被我主动屏蔽了。