_($0PXQFQ7Y(P~4838LJ_]L.png

管理培训搜索
18318889481 17875936848

产服
| 产业中心

体育产业 新能源产业 能源与电力 预制菜产业 轻纺工业 安全与应急产业 高端装备制造业

| 企业与产业管理

建筑工程管理 安全企业管理 制造企业管理 卫生企业管理 企业转型升级 工程企业管理 企业质量管理 医药企业管理 电力企业管理 企业经济管理 食品企业管理 工业企业管理 软件企业管理 能源企业管理 汽车企业管理 环保企业管理

| 行业中心

新鲜牛肉市场 酒店业 旅游休闲与饭店业 服装服饰 孕婴童用品 餐饮美食 奶茶饮品

| 转创产研

现代服务业 教育产业 中医药产业

| 城市中国

阳江发展 茂名发展 湛江发展 赣州市 湛江教育

| 转创科研

食物与营养研究所 标准化科学 医药健康研究所

| 全球城市

新南威尔士

| 乡村振兴战略

乡村振兴 乡村振兴 乡村振兴工委会 一二三产融合 乡村振兴规划设计 乡村人才振兴 乡村产业振兴

| 创新创业中心

创新创业创投创意 BIM工程 制造业创新 《类似商品和服务区别分表》 创新创业与可持续 智能制造 民营企业与经济 管理信息系统 科技企业管理 智能企业管理

| 转型升级中心

粤港澳大湾区 消防企业管理 转型升级 装配式建筑 并购重组动态 制造业转型升级 工业转型升级 教育转型升级 外贸转型升级 能源转型升级 地产转型升级 制造业转型与高质量发展 产业转型升级 绿色转型升级 服务业转型升级 产品质量管理 产业科技管理 环境监测

| 数据经济与网安

信息与软件 系统集成 人工智能 互联网+ 网络工程 数字经济 数字安全 视觉传达设计 工业互联网 数字媒体艺术 数字创新中心 电子信息产业 工业物联网 数字转型 视觉传播设计与制作 信创产业 网络安全产业 无人机 数据资产 数字出版 新一代信息技术产业

| 绿创中心

绿色建筑 节能减排 低碳转型

| 双碳与可持续发展

可持续发展 绿色转型与可持续发展 气候变化与脱碳管理 NGO中心

| Brinson分析简介当前您所在的位置:首页 > 产服 > 转型升级中心 > 外贸转型升级

分析框架

Brinson的框架可以用来分解投资组合的总收益。尽管计算上很简单,但理论上是有效的,已被各种养老金赞助人、顾问和投资管理人员成功地使用;目前,它被用来表示实际投资组合中的业绩贡献。绩效归因虽然不是新发现的理论,但仍然是一个不断发展的学科。早期关于这一主题的论文主要关注风险调整后的收益,提出了最初的框架,但很少关注多重资产绩效衡量。我们的任务是按照投资客户和经理的决策的重要性排序,然后衡量这些决策对实际计划绩效的整体重要性。


表1说明了分析投资组合收益的框架:

在这里插入图片描述


象限Ⅰ表示基准收益(Benchmark Return)。在此,我们将根据其长期投资基准确定投资组合的基准收益率。

一个计划的基准收益是所采用的投资基准的结果。投资基准确定长期资产配置计划(包括资产类别和标准权重),用于控制总体风险和满足投资组合目标。

简而言之,基准确定整个计划的投资组合的标准。要计算策略基准收益率,我们需要:(1)预先说明所有资产类别的权重,以及(2)分配在每种资产类别上的被动(或基准)收益。

象限II表示基准和择时的收益(Benchmark and Timing Return)。这里象限II的收益并不单表示了择时的收益,而是按照基准进行选股加以主动择时的综合收益。择时是指相对于基准,以提高收益和/或降低风险为目的,在资产类比的标准权重上战略地降低或提高它的权重,择时表现了相对于政策回报的增量回报。

象限III表示基准和选股的收益(Benchmark and Security Selection Return)而产生的收益。同样地,这里象限Ⅲ的收益并不单表示了选股的收益,而是按照基准进行择时加以主动选股的综合收益。选股是在一个资产类别中进行主动投资选择,我们将其定义为投资组合的实际资产类别收益率(例如,普通股和债券部分的实际回报率)超过这些类别的被动基准收益率,并由标准的资产配置权重进行加权。

象限IV表示该期间基金总额的实际收益(Actual Portfolio Return)。这是主动进行择时和选股的实际结果。

表2给出了计算这些象限值的方法:

在这里插入图片描述


表3根据四个象限的值,计算出择时(Timing)、股票选择(Security selection)和两种的交互效应(Other),三者共同构成了组合的超额收益:

在这里插入图片描述


案例展示

下面我们用一个实际的策略案例来说明如何使用brinson分析。


这个策略是一个比较简单的双均线策略,当短期均线上穿长期均线,出现金叉,则买入;当短期均线下穿长期均线,出现死叉,则卖出。

交易时间我们选择从15年初到17年底,共三年时间。为演示目的,我们没有选择全市场的股票,而是抽了一些股票,这样回测结果跑得快些。


核心代码如下所示:


def run_stretegy1(instruments,start_date,end_date):


    # 金叉死叉策略

    #     当短期均线上穿长期均线,出现金叉,买入

    #     当短期均线下穿长期均线,出现死叉,卖出

    #     不风控:29.8%  26.61%  25.54%


    ## 1. 主要参数


    def prepare(context):

        context.pre_days = 60

        context.date = context.start_date

        tmp = datetime.datetime.strptime(context.start_date,'%Y-%m-%d') - datetime.timedelta(days=context.pre_days )

        #context.start_date =  tmp.strftime('%Y-%m-%d')

        start_date =  tmp.strftime('%Y-%m-%d')

        df = D.history_data(context.instruments, start_date, context.end_date, ['close'])

        #计算指标历史数据

        def ma_calculate(df):

            short_mavg = pd.rolling_mean(df['close'], 5)

            long_mavg = pd.rolling_mean(df['close'], 50) 

            df['ma_signal'] = (short_mavg>long_mavg).astype(np.int)

            return df

        context.ma_signal = df.groupby('instrument').apply(ma_calculate)[['date','instrument','ma_signal']].pivot(index='date', columns='instrument', values='ma_signal')


    ## 2. 模型训练


    def initialize(context):

        context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))

        context.short_period = 5

        context.long_period = 50

        assert context.long_period <=  context.pre_days



    def handle_data(context, data):

        date = data.current_dt.strftime('%Y-%m-%d')

        if date <  context.date:

            return


        for instrument in context.instruments:

            equity = context.symbol(instrument)

            ma_signal = context.ma_signal.ix[date,instrument]


            if np.isnan(ma_signal):

                ma_signal = 0


            # 获取账户现金和持仓

            cash = context.portfolio.cash  

            cur_position = context.portfolio.positions[equity].amount  


            #  交易逻辑

            #if  (state_choosed is None or context.options['state_pred'].ix[date,'state']==state_choosed) and ma_signal==1 and cur_position == 0 and data.can_trade(equity):

            if ma_signal== 1 and cur_position == 0 and data.can_trade(equity):

                context.order_target_percent(equity, 1/20.)   

            if ma_signal==0 and cur_position > 0 and data.can_trade(equity):  

                context.order_target_percent(equity, 0) 

    

    m=M.trade.v4(

                    instruments=instruments,

                    start_date=start_date,

                    end_date=end_date,

                    prepare=prepare,

                    initialize=initialize,

                    handle_data=handle_data,

                    volume_limit=0,

                    order_price_field_buy='open',

                    order_price_field_sell='open',

                    capital_base=float("1.0e6"),

                    plot_charts=True,

                    auto_cancel_non_tradable_orders=True,

                    benchmark='000300.SHA',

                    m_deps = np.random.randn())

    return m

    

instruments = ["600000.SHA","600010.SHA","600015.SHA","600016.SHA",

                "600028.SHA","600029.SHA","600030.SHA","600036.SHA",

                "600048.SHA","600050.SHA","600089.SHA","600100.SHA",

                "600104.SHA","600109.SHA","600111.SHA","600150.SHA",

                "600196.SHA","600256.SHA","600332.SHA","600340.SHA",

                "600372.SHA","600406.SHA","600485.SHA","600518.SHA",

                "600519.SHA","600547.SHA","600583.SHA","600585.SHA",

                "600606.SHA","600637.SHA","600690.SHA","600703.SHA",

                "600795.SHA","600837.SHA","600887.SHA",

                "600893.SHA","600919.SHA","600958.SHA","600999.SHA",

                "601006.SHA","601088.SHA","601118.SHA","601166.SHA",

                "601169.SHA","601186.SHA","601198.SHA","601211.SHA",

                "601288.SHA","601318.SHA",

                "601328.SHA","601336.SHA","601377.SHA","601390.SHA",

                "601398.SHA","601601.SHA","601628.SHA","601668.SHA",

                "601669.SHA","601688.SHA","601727.SHA","601766.SHA",

                "601788.SHA","601800.SHA","601818.SHA","601857.SHA",

                "601901.SHA","601919.SHA","601985.SHA",

                "600018.SHA","601988.SHA","601989.SHA","601998.SHA"]

start_date = '2015-01-01'

end_date = '2017-12-31'

strategy1 = run_stretegy1(instruments,start_date,end_date)

在这里插入图片描述

调用brinson分析api


当运行完回测的时候,保存下M.trade.v4的返回对象,在案例里我们存在strategy1里。强调一下,现在brinson分析只支持在v4版本上。

然后我们调用brinson_analysis()方法,这个方法会计算brinson分析所需要的数据,应该要不了几分钟。


brinson = strategy1.brinson_analysis()

1

当brinson对象构建后,我们调用plot_return_path()方法,来获得收益归因的路径图,对应的是上述表2的结果:


brinson.plot_return_path()

在这里插入图片描述


其中,RETURN_I是基准收益,相对应的RETURN_IV是组合实际收益。


然后我们来看下最关键的收益贡献分析:


brinson.plot_periods_return_analysis()

在这里插入图片描述


图中每根柱子代表相应收益在时间上的累积贡献,不难从上图中发现,这个策略有正的择时贡献,由于我们的双均线策略本来就是择时策略,所以并不奇怪。然而我们的选股收益是负的,说明我们的策略并不具有选股能力,分析我们的样例策略,是一个固定的股票列表,比基准的数量还要少,这个结果也能解释。


如果我们还可以单独看超额收益,如下图,可以看到我们的样例策略还是获得了超额收益。

在这里插入图片描述


小结:分解影响投资组合表现的因素,有利于量化投资管理决策在投资组合表现中发挥的作用;明确投资政策和投资策略之间的区别和联系将有助于进一步阐明这两项活动在投资过程中的作用。简单、准确、完整和可衡量的投资决策过程归因,将使我们进一步认识到投资活动中各部分的重要性,Brinson的理论在分析投资组合表现的决定因素上搭建起了一个简明而完整的框架。

转创君
企业概况
联系我们
专家顾问
企业文化
党风建设
核心团队
资质荣誉
领导资源
专家库
公司公告
资源与智库
战略合作伙伴
质量保证
咨询流程
联系我们
咨询
IPO咨询
中国企业国际化发展战略
投融资规划
企业管理咨询
人力资源管理
风险管理
竞争战略
集团管控
并购重组
家族办公室
资产管理
股权设计
企业管治与内部审计
企业估值
价值办公室
内控咨询
投资银行
管治、内控及合规服务
法律咨询
服务
管理咨询服务
投融资规划
人力资源
资产评估服务
会计服务
科技服务
资质认证
ESG服务
商务咨询
内部控制服务
转创投服
金融服务咨询
企业服务
财会服务
翻译服务
财审
金融会计专题
法证会计
国际财务管理
会计中心
财务咨询
内部审计专题
审计创新与全球化
代理记账中心
会计师事务所
审计中心
审计及鉴证
专项审计
审计工厂
审计咨询服务
税律
财税中心
转创税务
华税律所
税务师事务所
IPO财税
国际税收
涉税服务
金融
纳斯达克
并购交易服务
北交所
IPO咨询
深交所
上交所
直通新三板
董秘工作平台
独立董事事务
SPAC
资本市场服务中心
澳洲上市
加拿大上市
估值分析事务
香港联交所
新交所
金融分析师事务所
合规
合规与政府管制
企业合规
网络安全与隐私保护
法证会计与反舞弊
反洗钱与制裁合规
反垄断中心
企业合规管理咨询
合规中心
转创全球企业合规
合规律师事务所
金融安全与合规
海关及全球贸易合规
ESG合规
反欺诈中心
合规中心(产业)
知识产权合规专题
私募股权基金合规
法信
征信管理
信用中心
法信中心
信用评级
价值办公室
联合资信
国际信用
安企中心
转创法信
诚信管理
产服
产业中心
企业与产业管理
行业中心
转创产研
城市中国
转创科研
全球城市
乡村振兴战略
创新创业中心
转型升级中心
数据经济与网安
绿创中心
双碳与可持续发展
管理
并购重组
转创国际企业研究所
创新创业
转型升级
投融资与股权激励
ESG中心
管理咨询
资产评估中心
人力资源
IPO咨询
法律
刑事法律服务
资本市场法律服务
财税金融法律事务
转创国际合规律师
民商事法律服务
公司法律服务
公共法律服务中心
转创国际法律事务所
内控
危机管理
金融风险专题
风险管理中心
网络安全与隐私保护
企业风险管理
独立董事
风险控制师事务所
国际风险研究
风险管理咨询
监督中心
管制中心
风控中心
内部控制中心
经济安全与企业内控
监管中心
转创
转创深圳(深莞)
转创广佛
转创国际福建
转创梅州
客汕经济
转创珠三角
转创潮州
转创网校
转创国际汕头
转创揭阳
18318889481 17875936848
在线QQ
在线留言
返回首页
返回顶部
留言板
发送