风险是指不确定性。金融风险是资产因不确定性价格发生波动的可能性。我们梳理了一下目前整个风险分类,大概可以分成以下几个大类:
信用风险
指债务人不能或不愿意履行债务而给债权人造成损失的可能性。
流动性风险
指由于流动性不足无法履行支付义务的可能性。
利率风险
指利率的不确定性造成资产价格波动的可能性。
汇率风险
指汇率的不确定性造成资产价格波动的可能性。
操作风险
指由于不完善或有问题的内部操作过程、人员、系统或外部事件而导致的直接或间接损失的风险。
法律风险
指金融机构相关的各类合同、承诺等法律文件的有效性和可执行能力,包括外部合规风险和监管风险。
通货膨胀风险
指通货膨胀使经济主体的首季收益率下降,或使其筹资成本提高的风险。
环境风险
指金融活动的参与者面临的自然、政治和社会的变化而带来的风险。
国家风险
指在国际经济活动中,由于国家的主权行为所引发的造成损失的可能性。
在以上风险中,番茄风控尤其擅长信用风险相关内容。我们了解风险可能带来损失,也可能带来收益。拒绝风险等于拒绝了相应的收益,如何平衡风险收益,需要有一把量化的标尺,于是我们引入了量化风险的概念。而其中量化风控的核心宗旨之一,就是将风险保持在能够承受的水平。
如何量化金融信贷风险,我们纵观人类发展史,会发现重大的历史人类金融事件大概梳理如下:
金融系统史与人类文明史同寿,
曾有多次系统性金融风险爆发。
1634-1637 郁金香球茎热
1929.10.29 华尔街大崩盘
2007 次贷危机
1933 格拉斯-斯蒂格尔修正法案
1999 金融服务现代化法
2010 多德-弗兰克法案
伴随着这一些重大的金融历程中,人们逐渐发现其金融要想稳定和谐发展离不开监管的框架,于是伴随着一次次的金融事件,巴赛尔协议也相继诞生。无可厚非,巴塞尔协议伴随着金融事件而生,其主要的使命就是为了阻止金融体系的崩塌:
•1988 Basel Accord I(from 1974)
•1992-1996 Basel Accord Amendment
•2005 Basel Accord II
•2009 Basel AccordII.5
•2010-2024 BaselAccord III (with FRTB etc.)

纵观巴赛尔协议的量化风险,目前其演进也进化到第三个版本巴赛尔协议三。如同风险需要分散一样,风险管理也需要合力来做支撑,仅靠行业自律依然会存在严重的风险。
巴赛尔协议的三大支柱:
第一支柱:最小资本约束/流动性约束
第二支柱:严肃监管/银行内控与资本计划
第三支柱:强化信息披露/市场纪律约束
而了解巴赛尔协议的逻辑后,就会了解其中一个最重要的左右就是给资产做分类,在金融领域我们有一个较为专业的名词叫:资产分池。
分池是指将同质、风险特征类似的债项放至同一个组合或资产池(Pooling)中,并一致估计资产池的巴塞尔风险参数,包括违约概率(下称“PD”)、违约损失率(下称“LGD”)和违约风险暴露(一般指信用卡,包含EAD和CCF两部分)。以上便是信贷的三类分池场景:PD、LGD、EAD的分池。
当然在常见的信贷常见场景中更多的是以产品划分。以信贷资产为例,非零售贷款每笔单独计算信用风险三要素。零售贷款在标准情形下分为三类:
1.房屋按揭贷款(Mortgage)
2.合格的循环零售贷款
3.其余类型的非应收账款

资产分池是银行同学做好这类相关业务最常遇到的问题。做分池做常规上会用到哪些工具?是否能用上常规的算法如决策树、逻辑回归这些方法?另外关于分池相关还有没有相关的案例介绍?关于以上的问题大家都是否有答案了。
以上内容,希望大家都能做到心里有数,内心不慌。
而关于这些指标更报表性的内容,详细可关注:



~原创文章
…
end
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput