第三十五条 流动性风险管理是资产负债管理的重要组成部分。 在银行确定资产负债额度、结构和期限时需要考虑流动性风险管理,加强资产的流动性和融资来源的稳定性。 第三十六条 商业银行资产负债管理应遵循分散性原则。 商业银行应制定具体明确的资产、负债分散化政策,使资金运用及来源结构向多元化发展,提升商业银行应对市场波动的能力。 第三十七条 商业银行应建立集中度限额管理制度,针对表内外资产负债的品种、币种、期限、交易对手、风险缓释工具、行业、市场、地域等进行集中度限额管理,防止由于资产负债过度集中引发流动性风险。 第三十八条 商业银行资产负债管理应遵循审慎性原则,应审慎评估信用风险、市场风险、操作风险、声誉风险等对资产负债业务流动性的影响,密切关注不同风险间的转化和传递。 (一)商业银行在对资产变现能力进行评估时,要考虑市场容量、交易对手的风险,以及其他因素对资产可交易性、资产价格产生的影响。 (二)商业银行在确定资产流动性组合时应避免资产组合在资产类别、交易对手、行业、市场、地域等方面承受过度的市场风险及其他风险。 (三)商业银行应定期监测交易对手和自身的偿债能力指标状况,当相关指标显示交易对手偿债能力下降时,要及时调整对交易对手的融资授信额度;当相关指标显示自身偿债能力下降时,需要及时调整资产负债结构,提高债务清偿能力。 (四)商业银行应加强未提取的贷款承诺、信用证、保函、银行承兑汇票等或有资产与或有负债管理,监测相关客户信用状况、偿债能力和财务状况,了解商业银行因履约事项可能发生的垫款和客户可提取的贷款承诺带来的流动性需求,并纳入流动性缺口管理。 商业银行应将为应对声誉风险而对交易对手给予超过合约义务的支付所产生的流动性需求一并纳入流动性缺口管理。 (五)商业银行应关注负债的稳定性。 1. 商业银行应通过提高核心负债占总负债的比重,提高流动性来源的稳定性,并减少对波动较大的债务的依赖。 2. 商业银行应通过优质服务建立与资金提供者的关系,并持续关注大额资金提供者的风险状况,定期监测大额资金提供者(如最大十户存款客户)及融资提供者在本行存款的情况,并制定存款(或融资)集中度触发比率以及当存款(或融资)集中度达到触发比率时所必须采取的应急措施。 第三十九条 发行股票和债券等是商业银行补充中长期流动性的重要手段,有助于改善期限结构错配状况。 商业银行应关注资本市场变化,评估通过发行股票或债券等补充流动性的能力与成本。 第四十条 现金流量管理是识别、计量和监测流动性风险的一种重要工具,商业银行通过计量、监测、控制现金流量和期限错配情况,发现融资缺口和防止过度依赖短期流动性供给。 第四十一条 商业银行将表内外业务可能产生的未来现金流按照一定方法分别计入特定期间的现金流入和现金流出,以现金流入减现金流出取得现金流期限错配净额,并通过累计方式计算出一定期限内的现金流错配净额。 第四十二条 商业银行现金流错配净额计算应涵盖表内外所有资产及负债,并按币种形成现金流量报告。 商业银行高级管理层可根据重要性原则选定部分现金流量极少、发生频率低的表内外资产及负债项目不纳入现金流错配净额的计算。 该政策需经董事会或其授权专门委员会审核批准,并以书面文件形式记录在案。 高级管理层应定期评估该安排的适当性,并及时提出修订意见。 第四十三条 未来现金流可分为确定到期日现金流和不确定到期日现金流。 确定到期日现金流系指所有来自外部负债和即将到期资产中有明确到期日的现金流。 不确定到期日现金流系指商业银行在到期日现金流不能完全反映流动性风险,或者包括活期存款在内的没有明确到期日的资产与负债形成的现金流。 第四十四条 确定到期日现金流应按到期日计算现金流,而不确定到期日现金流应按照审慎原则计算现金流,如活期存款作为没有明确到期日的负债应全部计入当日到期负债。 但在商业银行能够证明所用测算方法遵循审慎原则并经监管部门审核同意的情况下,商业银行可对部分现金流进行行为调整。 商业银行所使用的测算方法须与其业务性质和复杂程度相适应。 第四十五条 商业银行通过行为调整等方法测算现金流,应以充分的历史数据积累为前提,假设条件应经充分论证,并经董事会或其授权的专门委员会审核批准。 所有假设条件及模拟情况必须书面记录,并可以经受回溯检测。 高级管理层应定期对行为调整假设、回溯检查进行评估,以便适应商业银行的发展和外部环境的变化及时做出调整。 第四十六条 现金流期限错配分析以短期为重点,但鼓励商业银行开展中期乃至长期的期限错配分析,以及早发现潜在流动性风险。 第四十七条 商业银行应以其融资能力和风险承受能力为基础设定现金流期限错配限额(以下简称现金流限额)。 现金流限额应由专门部门设定,并由董事会或经其授权部门审核,根据需要至少每年修订一次。 第四十八条 商业银行应保证每一期限内的现金流错配净额低于现金流限额,现金流限额可以按以下步骤计算:(一)商业银行应至少预测其未来确定时间段内融资能力,尤其是来自银行或非银行的批发融资能力,并依压力测试情况下的调减系数对上述预测进行适当调整。 (二)商业银行采取审慎方法计算出售全部或部分无障碍流动性资产(如政府和中央银行债券)所产生的流动性增项。 (三)商业银行计算现金流限额时应将或有负债中备用融资额度等作为增项,同时将或有资产中未提取的贷款承诺等作为减项。 (四)商业银行应根据以上步骤计算确定时间段内的现金流限额。 商业银行可以按审慎原则和一定方法计算出每日的现金流限额。 第四十九条 商业银行应依审慎原则从紧设定现金流限额,所有超限额情况都应依规定程序提前向资产负债管理委员会或类似机构申请,经批准后实施。 商业银行应确保所有超限额情况均有书面记录。 商业银行应对所有未经批准超限额的情况实施调查,调查应包括所有相关部门和人员,并根据调查结果采取有效措施确保现金流错配净额在规定期限内恢复至规定限额内,并对任何故意行为给予严肃处理。 第五十条 现金流限额测算期至少为一个月,鼓励商业银行按更长时间段进行测算。 第五十一条 商业银行流动性管理应通过压力测试分析银行承受压力事件的能力,考虑并预防未来可能的流动性危机,以提高在流动性压力情况下履行其支付义务的能力。 第五十二条 商业银行实施压力测试的频度应与其规模、风险水平及在市场上的影响相适应,但至少每季度应进行一次常规压力测试。 在出现市场剧烈波动等情况或在银监会要求下,应针对特定压力情景进行临时性、专门压力测试。 商业银行压力测试应在并表基础上分币种实施,并应针对流动性转移受限等特殊情况对有关地区分行或子行单独实施压力测试。 第五十三条 商业银行应针对单个机构和整个市场设定不同的压力情景。 商业银行可结合本身业务特点、复杂程度,针对流动性风险集中的产品、业务和机构设定压力情景。 压力情景的假设条件包括但不限于:(一)流动性资产价值的侵蚀。 (二)零售存款的大量流失。 (三)批发性融资来源的可获得性下降。 (四)融资期限缩短和融资成本提高。 (五)交易对手要求追加保证金或担保。 (六)交易对手的可交易额减少或总交易对手减少。 (七)主要交易对手违约或破产。 (八)表外业务、复杂产品和交易、超出合约义务的隐性支持对流动性的损耗。 (九)信用评级下调或声誉风险上升。 (十)母行或子行、分行出现流动性危机的影响。 (十一)多个市场突然出现流动性枯竭。 (十二)外汇可兑换性以及进入外汇市场融资的限制。 (十三)中央银行融资渠道的变化。 (十四)银行支付结算系统突然崩溃。 第五十四条 商业银行压力测试应遵循审慎原则,充分考虑各类风险与流动性风险的内在关联性,深入分析假设情景对其他流动性风险要素的影响及其反作用。 商业银行压力测试应充分反映融资流动性风险与市场流动性风险的高度相关性。 必要时,商业银行应针对相关假设情景发生后各风险要素的相互作用实施多轮压力测试。 第五十五条 商业银行压力测试应基于专业判断,并在可能情况下,对以往影响银行或市场的类似流动性危机情景进行回溯分析。 所有压力测试情景、条件假设、结果和回溯分析应有书面记录,对于选择情景、条件假设的基本原则及理由应有详细说明,并报董事会或经其授权机构审核确认,确保董事会或经其授权机构对压力测试的局限性有充分的了解。 第五十六条 压力测试结果应广泛应用于董事会、高级管理层的各类决策过程,包括但不限于风险承受能力、风险限额、战略发展计划、资本计划和流动性计划的制定。 商业银行应根据压力测试结果及时调整资产负债结构,持有充足的高质量流动性资产用以缓冲流动性风险,建立有效的应急计划。 第五十七条 商业银行应明确设立自身事件引发流动性危机情况下抵御危机的最短生存期,最短不低于一个月,并采取有效措施维持该最短时间内融资能力,确保在不同压力情况下最短生存期内现金净流量为正值。 第五十八条 商业银行应定期向监管部门报告压力测试情况,包括所有压力测试情景、条件假设、结果和回溯分析,及根据压力测试结果对流动性风险管理策略、政策、程序、限额和应急计划的调整情况。 第五十九条 商业银行因特殊原因不能实施压力测试,经银监会同意后可以暂缓实施。 第六十条 商业银行应根据本行业务规模、复杂程度、风险水平和组织框架等制定应急计划,并根据经营和现金流量管理情况设定并监控银行内外部流动性预警指标以分析银行所面临的潜在流动性风险。 第六十一条 商业银行应按照正常市场条件和压力条件分别制定流动性应急计划,应涵盖银行流动性发生临时性和长期性危机的情况,并预设触发条件及实施程序。 应急计划至少应包括一种银行本身评级降至“非投资级别”的极端情况。 应急计划应说明在这种情形下银行如何优化融资渠道和出售资产以减少融资需求。 设定的情形包括但不限于:(一)流动性临时中断,如突然运作故障、电子支付系统出现问题或者物理上的紧急情况使银行产生短期融资需求。 (二)流动性长期变化,如因银行评级调整而产生的流动性问题。 (三)当母行出现流动性危机时,防止流动性风险传递的应对措施。 (四)市场大幅震荡,流动性枯竭,交易对手减少或交易对手可融资金额大幅减少、融资成本快速上升。 第六十二条 商业银行应急计划应包括资产方流动性管理策略和负债方流动性管理策略。 (一)资产方流动性管理策略包括但不限于:1.变现多余货币市场资产。 2.出售原定持有到期的证券。 3.出售长期资产、固定资产或某些业务条线(机构)。 4.在相关贷款文件中加入专门条款以便提前收回或出售转让流动性较低的资产。 (二)负债方融资管理策略包括但不限于:1.将本行与集团内关联企业融资策略合并考虑。 2.建立融资总体定价策略。 3.制定利用非传统融资渠道的策略。 4.制定零售和批发客户提前支取和解约政策。 5.使用中央银行信贷便利政策。 第六十三条 银行间同业拆借市场是商业银行获取短期资金的重要渠道。 商业银行应根据经验评估融资能力,关注自身的信用评级状况,定期测试自身在市场借取资金的能力,并将每日及每周的融资需求限制在该能力范围以内,防范交易对手因违约或违反重大的不利条款要求提前偿还借款的风险。 第六十四条 商业银行应急计划应区分集团层次和附属机构层次,并可根据需要针对主要币种和全球主要区域制订专门的应急计划。 如果某些国家或地区法律法规有限制,使得银行集中实施流动性管理不可操作,则在上述国家或地区的分支机构应制定专门的应急计划。 第六十五条 商业银行高级管理层应定期向董事会报告流动性风险情况和应急计划。 必要情况下,应由董事会成员领导并负责应急计划的制定和实施。 第六十六条 商业银行应根据风险管理需要及时对应急计划进行评估和修订,评估修订工作至少每年进行一次。 商业银行应不定期对应急计划进行演习以确保各项计划措施在紧急情况下的顺利实施。 商业银行应于每年4月底前将本行应急计划及其更新、演习情况报银监会。
信用风险压力测试是指那些被金融机构用来识别压力事件(Stress Events)对于信用风险影响的压力测试技术。 信用分析压力测试的对象是银行资产组合或子组合的信用风险参数,如违约概率(Probability of Default,PD)、违约损失率(Loss Given Default,LGD)、风险暴露(Risk Exposure)、预期损失(Expected Loss,EL)、经济资本(Economic Capital,EC)、不良贷款率(Bad Loan Ratio,BLR)等。 信用风险压力测试的方法 1.基于敏感分析的信用风险压力测试敏感分析法考察在其他风险因子不变条件下,某个风险因子变动给金融机构带来的影响。 其优点是易于操作,有利于考察金融机构对某个特定因子的敏感性;缺点是可能不符合现实,因为当极端事件发生时,通常多个风险因子都会同时发生变动。 据新加坡货币监管局(MAS)2003年的研究报告,实践中常用的交易账户标准冲击有:(1)利率期限结构曲线上下平移100个基点。 (2)利率期限结构曲线的斜率变化(增加或减少)25个基点。 (3)上述二种变化同时发生(4种情形)。 (4)股价指数水平变化20%。 (5)股指的波动率变化20%。 (6)对美元的汇率水平变动6%。 (7)互换的利差变动20个基点。 2.基于情景分析的信用风险压力测试与敏感分析相比,情景分析的一大优点就是考虑了多因素的影响,但只有借助良好的宏观经济计量模型的支持才能很好的考察多因素的影响。 情景又划分为历史情景和假定情景两种。 历史情景依赖于过去经历过的重大市场事件,而假定情景是假设的还没有发生的重大市场事件。 (1)基于历史情景分析的信用风险压力测试历史情景运用在特定历史事件中所发生的冲击结构。 进行历史情景压力测试的通常方法就是观察在特定历史事件发生时期,市场风险因素在某一天或者某一阶段的历史变化将导致机构目前拥有的投资组合市场价值的变化。 这项技术的一个优点是测试结果的可信度高,因为市场风险因素结构的改变是历史事实而不是武断的假定。 另一个优点是测试结果易于沟通和理解。 像这样的描述―――“如果1997年亚洲金融危机重演,我们机构会损失美元”,让人很容易理解。 运用历史情景的缺点之一是机构可能(有意识或无意识的)在构建其风险头寸时尽力避免历史事件重演时遭受损失,而不是避免预期的未来风险(并非历史的精确复制)可能带来的损失。 历史情景的第二个缺点是难以将测试运用于该历史事件发生时还不存在的创新风险资产,或者将测试应用于自从该事件发生后其行为特性已经发生改变的风险因素。 (2)基于假定情景分析的信用风险压力测试假定情景使用某种可预知的发生概率极小的压力事件所引发的冲击结构。 由于这样的压力事件在最近没有发生过,因此必须运用历史经验来创造这些假定的情景。 在假定情景创造中,机构需要考虑“传染效应”,即假定的压力事件对相关市场冲击的规模和结构效应。 “传染效应”的估计一般建立在判断和历史经验上,而不是市场行为的正式模型。 两种测试情景的选择取决于一系列因素,如历史事件对于当前投资组合的适用性、机构所拥有的资源,特别是时间和人力。 历史情景比较容易公式化表达和让人理解,且较少涉及人为判断,但是它可能不能反映出当前的政治经济背景和新开发的金融工具中所隐藏的金融风险。 而假定情景更加与机构独特的风险特性相匹配,并能够让风险管理者避免给予历史事件比未来风险更多关注的误区,但是它需要大量资源投入并涉及相当多的人为判断。 基于以上考虑,一些机构邀请资深经理、营销人员和经济学家等来共同讨论假定情景设置以确保其客观有效性。 实践中,大多数金融机构都同时使用历史情景和假定情景,如用过去的市场波动数据作为参考但是又不必然与某一特定历史危机事件相联系的假定情景。 因为对历史情节的使用能够帮助我们校准价格变化的幅度和其它难以设定的参数,例如对市场流动性可能的影响。 而且,风险管理者需要在客观性和可操作性之间寻求平衡,因为情景表达得越清楚客观,内容可能会越复杂和难于理解。 无论如何,压力测试的使用方法并不是一成不变的,其所使用的情景也在周期性的压力测试实践中不断得到修改和完善,结果,机构的风险暴露就不断地被跟踪记录。
Charles的简介
安装Charles
Charles初始化设置
过滤网络请求
截取HTTP/HTTPS数据
模拟弱网环境
修改网络请求
修改服务器返回内容
服务器压力测试
反向代理
解决与翻墙软件的冲突
Charles的简介Charles是目前最主流的网络调试工具(Charles、Fiddler、Wireshark...)之一,对于一个开发者来说与网络打交道是日常需求,因此很多时候我们需要调试参数、返回的数据结构、查看网络请求的各种头信息、协议、响应时间等等。所以了解Charles并使用它
Charles通过将自己设置为系统的网络访问代理服务器,这样所有的网络请求都会通过它,从而实现了网路请求的截获和分析。
Chareles不仅可以分析电脑本机的网络请求(HTTP和HTTPS),还可以分析移动端设备的网络请求。
Charles是收费软件,作者开发出这样一个方便开发者使用的伟大工具,我们鼓励使用正版软件,但是对于一些囊中羞涩或者学生来说,有破解版的更好,别担心,这些我都准备好了,下一个section会讲解如何下载安装。
安装Charles方式1:Charles官网地址,根据你的电脑操作系统选择合适的下载方式。 此时下载下来的是需要收费的,不差钱的同学当然可以直接购买。 购买链接
方式2:按照方式1的方式去官网下载,然后下载相应JAR包。 这里以MAC为例,打Finder,选择应用程序,选中Charles,右击并选择“显示包内容”,看到Contents目录,点击进去选择Java文件夹,将下载下来的JAR包拖进去替换。 至此,完成了Charles的破解。
Charles初始化设置Charles的工作原理是将自身设置为系统的代理服务器来捕获所有的网络请求。 所以使用Charles,我们必须设置Charles为系统的代理服务器。
打开Charles,当第一次启动的时候如果没有购买或者没有破解,会有倒计时,之后会看到软件的主界面,然后会请求你赋予它为系统代理的权限。 点击授权会让你输入当前系统用户的密码。 当然你也可以忽略或者拒绝该请求,然后等想要抓包的时候将它设置为系统的代理服务器。 步骤:**选择菜单中的“Proxy”->MacOSXProxy。 **如下图:
在平时开发的时候我们经常需要模拟弱网环境,并作弱网环境下的适配工作。 Charles为我们提供了这个服务。
在Charles菜单栏选择“Proxy”->ThrottleSettings。 在弹出的面板上设置网络请求的参数(上行,下行带宽、利用率、可靠性等等信息)。 如下图所示。
如果你想对指定主机进行弱网环境下的测试,可以点击上图的“Add”按钮,在弹出的面板上设置协议、主机、端口来对指定的主机进行弱网设置。
如下所示,我将一个网络请求的内容映射到我本地的一个JSON文件。 之后这个请求的内容都从网络变为返回我本地的数据了。
MapLocal可能会存在一个小缺陷,其返回的HTTPResponseHeader与正常的网络请求不一样,如果程序设置了校验Header信息,此时MapLocal就会失败,解决办法是同时使用Rewrite功能将相关的HTTP头部信息rewrite成我们需要的信息
Rewrite功能Rewrite适合对某个网络请求进行正则替换,以达到修改结果的目的。
假如我的App的界面上的显示的功能模块及其点击事件是根据接口来完成的,我想实现替换功能模块的名称的目的。 步骤:点击顶部菜单栏的**“Tools”->Rewrite**。 在弹出的面板上勾选“EnableRewrite”。 点击左下角的Add按钮,在右上角的**Name:**处写好本次配置的名称(如果有多个Rewrite,为了后期容易区分)。
可以针对特定的网络请求进行Rewrite。 可以点击右上角Location面板下面的Add按钮。 在弹出的面板上设置网络请求配置信息。 注意此时需要同时设置Protocol、Port、Host、Path信息(我测试加了Protocol、Host、Port这3个是无效的)
然后对指定的Type和Action进行Rewrite。
Type主要有AddHeader、ModifyHeader、RemoveHeader、Host、Path等等。
Where可以选择Request和Response。 指的是下面的修改是针对Request还是Response
完成设置后点击Apply按钮,即可生效。 下次继续请求该网络,返回的内容就是我们刚刚设置的内容。 比如当前的“政策法规”要变成“哈哈哈,我是假的政策法规”。 这时候就可以使用Rewrite功能
Breakpoints功能Breakpoints相比于其他几个修改网络请求的特点是只是针对当前的网络请求,Breakpoints只存在于设置过的当前的网络请求,Charles关闭后下次打开Breakpoints消失了。 想要修改网络请求Breakpoints步骤最简单,跟我们调试工具里面设置的断点一样方便。
对于我们设置了Breakpoints的网络请求,Charles会在下次继续访问该请求的时候停止掉,就跟debug一样。 此时我们可以EditRequest,修改过Request之后点击右下角的Execute按钮。 然后等到服务端返回的时候继续是断点状态,此时可以EditResponse。 步骤:选中某个网络请求->右击->点击“Breakpoints”。
如下图:对该接口设置了Breakpoints。 请求网络后EditResponse,点击execute后服务端返回的结果就是我们编辑的内容了。
我们可以使用Charles的Repeat功能地对服务器进行并发访问进行压力测试。 步骤:**选中某个网络请求->右击->RepeatAdvanced->在弹出的面板里面设置总共的迭代次数(Iterations)、并发数(Concurrency)->点击“OK”。 **开始执行可以看到以设置的并发数的规模,进行总共达设置的总共迭代次数的访问。 (专业的压力测试工具:LoadRunner)
Charles的反向代理功能允许我们将本地指定端口的请求映射到远程的另一个端口上。 设置:点击顶部菜单栏Proxy->点击ReverseProxies。
如下所示,我将本地的8080端口映射到远程的80端口上,点击OK生效后,当我继续访问本地的80端口,实际返回的就是远程80端口的提供的内容了。
Charles的工作原理是把自己设置为系统的代理服务器,但是我们开发者经常会利用VPN翻墙访问谷歌查找资料(这些翻墙软件的工作原理也是把自己设置成为系统的代理服务器),为了2者和平共处。 我们可以在Charles的ExternalProxySettings中将翻墙的代理端口等信息填写。 同时我们需要关闭翻墙软件的自动设置,更改为**“手动模式”**。 (使其不主动修改系统代理)
总结Charles功能强大、界面简洁,读完这篇文章并做出练习,相信你能很快掌握它,“工欲善其事,必先利其器”,掌握了它,相信可以为你大大提高开发中调试网络的效率。
本文地址:http://www.hyyidc.com/article/36519.html