9 Datawhale Quant

本篇笔记基于(Datawhale 量化开源课程)[https://datawhalechina.github.io/whale-quant/#/]整理而成。

9.1 投资与量化投资

量化投资的一般流程

  • 策略设计:基于金融理论、历史数据或其他分析方法,构建量化投资策略的想法
  • 回测验证:使用历史数据对策略进行回测,检验策略的有效性和可行性,以及找到优化策略的方法。
  • 模拟盘验证:使用虚拟账户和投资进行模拟交易,检验策略在实际市场中的表现,调整和优化策略。
  • 实盘交易:经过验证和优化,将策略投入实际交易中执行。

9.2 金融市场的基本概念

9.2.1 货币金融学

概述

  1. 金融市场:资金从剩余方转向短缺方的市场。资金供求双方通过金融市场进行资金融通,实现金融资源有效配置,提高经济效率。
  2. 债券市场:
    1. 含义:发放和买卖债券的场所。
    2. 债券就是“借款的欠条”,借款人承诺在未来定期支付一定比例的利息,并在到期偿还本金的一种有价证券。
  3. 股票市场:
    1. 含义:已经发行的股票进行买卖、转让和流通的场所。
    2. 股票是“所有权的凭证“,持有股票者拥有索取公司一定收益、资产的权力。
  4. 货币与通货膨胀
    1. 通货膨胀:指物价水平(一个经济中商品和服务的平均价格的持续性上涨,可以以CPI(消费者物价指数)、PPI(生产者物价指数)指标加以衡量。
  5. 货币政策与财政政策
    1. 货币政策是一个国家的中央银行(美国是美联储)用以管理该国货币和利率的政策。
  6. 外汇市场
    1. 汇率是以一种货币表示的另一种货币的价格。报告汇率时,常用单位外币兑换多少本币来计算。

金融体系

  1. 直接融资和间接融资

    1. 直接融资:借款方在金融市场上,直接卖出有价证券(如股票)给贷款方,直接获得资金。
    2. 间接融资:存在金融中介机构(如银行)。中介机构向借款方发放贷款,向贷款方借入资金。
  2. 金融市场的结构

    1. 通过筹集资金资金的方式来划分:债券市场和股票市场。
    2. 通过层次结构来划分:以及市场和二级市场。
      1. 一级市场:发行市场或初级市场。是借贷人首次出售证券时形成的市场。
      2. 二级市场:证券流通市场或次级市场。是对已发行证券进行买卖、转让、流通的市场。
    3. 通过交易证券的期限划分:货币市场(交易一年内到期的短期债务工具)和资本市场(交易一年后到期的长期债务工具)
  3. 金融市场工具

    1. 货币市场工具:距离到期日不到一年,风险较低(如短期国债)。
    2. 资本市场工具:距离到期日一年以上,风险较高(如股票、公司债券)。
  4. 金融中介机构

    1. 分为:存款机构(商业银行等)、契约型储蓄机构(保险公司等)、投资中介机构(共同基金等)
    2. 功能:降低交易成分;分担风险;减少信息不对称问题

利率的风险结构

  1. 违约风险:借款人无力支付利息或本金的风险。国债一般被认为是无违约风险的。
  2. 风险溢价:指到期期限相同的有违约风险债券与无违约风险债券之间的利差。也即,为了让贷款人愿意承担本金或利息收不回来的风险,期限相同情况下,有违约风险的债券需要提供更高的收益率。
  3. 具有违约风险的债券的风险溢价总为正;且风险溢价随着违约风险的上升而增加。
  4. 流动性:指以较低成本迅速转化为现金的能力。流动性越差的债券越不好变现,因此越不受欢迎。这需要流动性较差的债券提供更高的收益率(与风险溢价同理),产生的利差称为流动性溢价。
  5. 所得税因素:税率越高的债券税前利率一般越高;存在税收优惠的债券利率一般相对低。

9.2.2 投资学

9.2.2.1 金融市场与投资环境

金融资产

  1. 实物资产:取决于该社会经济的生产能力,为经济创造净利润,如土地、建筑物、机器以及可用于生产产品和提供服务的知识。

  2. 金融资产:对实物资产的索取权

金融资产主要分为四大类:

  • 固定收益型或债务型证券
  • 普通股或权益型证券
  • 基金
  • 衍生产品(期货、期权、互换)

债券市场的意义

债券市场具有直接融资的功能,具有交易流动性(非单纯货币流动性,被央行利用,如QE),是重要的投资标的(大类资产配置中重要一员),债券市场是市场利率的均衡价格产生中心。

  • 普通债券:普通股证券代表了证券持有者对公司的权益或所有权,证券持有者的收益并不固定, 权益投资的绩效取决于公司运营的成败。
  • 衍生证券:其收益取决于其他资产(股票和债券)的价格,通常用来规避风险。

投资过程

  • 资产配置:对投资大类的选择
  • 证券选择:在每一资产大类中选择特定的证券,证券分析包括对证券进行估价和决定使投资组合集中在那些最具吸引力的资产上。

市场参与者

  • 公司——净借款者
  • 家庭——净储蓄者
  • 政府——既可能是借款者又可能是储蓄者
  • 金融中介:集中资金进行投资。包含:投资公司(公募、私募、财务公司)、商业银行、保险公司
  • 投资银行
  • 风险投资与私募股权

主要市场

主要分为债券市场、外汇市场、贵金属市场、大宗商品市场和股票市场

9.3 股票数据获取

股票数据根据信息来源和分析方法的不同可以分为技术面数据和基本面数据。

技术面数据

技术面数据是通过股票的历史价格和交易量等市场数据进行计算和分析得出的指标。它的核心观点是市场行为会在价格上留下痕迹,通过这些痕迹可以预测未来的价格走势。技术面数据主要关注股票价格的变动和市场趋势,常用的技术指标包括移动平均线、相对强弱指标、MACD指标等。技术面分析认为市场上已有的信息都会反映在股票价格中,因此通过分析股票价格图表和技术指标,可以尽可能准确地判断价格的走势和市场趋势。

基本面数据

基本面数据是通过分析公司的财务状况、业绩表现、竞争力等基本信息得出的评估。基本面分析认为股票的价格是与公司的基本面因素相关的,包括公司的营业收入、盈利能力、资产负债情况、市场份额、竞争优势等。基本面分析的目标是评估公司的内在价值,并基于这些评估来判断股票的投资潜力。常用的基本面指标包括市盈率、市净率、股息率等。基本面数据通常需要通过公司公开的财务报告和公告来获取。

9.3.1 股票数据常见指标介绍

9.3.1.1 技术面数据常见指标

  1. 移动平均线(Moving Average, MA)

    移动平均线是通过计算一段时间内的股票平均价格来平滑价格波动。常见的移动平均线有简单移动平均线(SMA)和指数移动平均线(EMA)。

    • 简单移动平均线是通过将一段时间内的股票收盘价相加,然后除以时间段的天数来计算的。简单移动平均线可以平滑价格波动,显示出长期趋势。
    • 指数移动平均线对近期价格给予更高的权重,反映了市场更近期的变化。计算指数移动平均线时,当前价格会根据选定的时间段和权重系数,与之前的移动平均线值相结合。

    移动平均线的应用主要包括以下几个方面:

    • 确定趋势:投资者可以使用不同期限的移动平均线来确定趋势的强度和方向。较短期的移动平均线(如5日或10日)反映了近期的价格走势,较长期的移动平均线(如50日或200日)则更能反映长期趋势。
    • 交叉信号:移动平均线的交叉可以提供买入或卖出的信号。例如,当短期移动平均线从下方穿过长期移动平均线时,被称为“黄金交叉”,可能暗示着价格上涨的趋势。相反,当短期移动平均线从上方穿过长期移动平均线时,被称为“死亡交叉”,可能暗示着价格下跌的趋势。
    • 支撑与阻力线:移动平均线经常被用作支撑和阻力线的参考。当股票价格接近或穿过移动平均线时,可能会在此处遇到阻力或支撑,进而影响价格的反弹或下跌。
  2. 相对强弱指数(Relative Strength Index, RSI)

    RSI是一种用于衡量股票价格变动强度和速度的技术指标,可以帮助投资者判断股票市场的超买和超卖情况,以及价格的反转和确认信号。

    RSI的计算基于一定时期内股票价格的平均涨跌,通常情况下取值在\([0,100]\).

    RSI指标计算常用参数为14,计算步骤如下:

    1. 首先,计算14个交易周期内涨幅和跌幅的平均值。
    2. 计算涨幅平均值与跌幅平均值的相对强弱比率(Relative Strength, RS)。 \(\text{RS} = \frac{\text{14个交易周期内涨幅平均值}}{\text{14个交易周期内跌幅平均值}}\)​。
    3. 计算相对强弱指数RSI:\(\text{RSI}=100-\left( \frac{100}{1+\text{RS}} \right)\).

    RSI的数值解读如下:

    • \(\text{RSI}\in(0,30]\): 表示股票市场被超卖,可能存在价格反弹的机会。
    • \(\text{RSI}\in(70,100)\): 表示股票市场被超买,可能存在价格下跌的机会。
    • \(\text{RSI}\in[30,70)\): 表示股票市场相对平稳,没有明显的超买或超卖信号。

    投资者通常会关注RSI的超买和超卖区域,并结合其他技术指标和价格走势来辅助判断市场趋势和交易信号。例如,当RSI进入超买区域并且价格形成拐头下跌时,可能暗示进一步的价格下跌。相反,当RSI进入超卖区域并且价格形成拐头上涨时,可能暗示价格反弹或反转的机会。

  3. 随机指标(Stochastic Oscillator)
    随机指标用于判断股票价格的超买和超卖情况,以及价格反转的可能性。它可以帮助投资者确定适合买入或卖出股票的时机。

  4. MACD指标(Moving Average Convergence Divergence)

    MACD 指标是股票技术分析中常用的趋势追踪和买卖信号指标。它通过比较两条移动平均线的差异,来判断股票价格的趋势以及价格的买卖信号。

    MACD指标由以下几个元素组成

    1. DIF线(Difference Line):是短期指数移动平均线(如12日EMA)减去长期指数移动平均线(如26日EMA)得到的差值线。DIF线可以较为敏感地反映价格的短期波动
    2. DEA线(Signal Line):是对DIF线进行平滑处理,一般使用DIF线的9日移动平均线得到。DEA 线可以平滑 DIF 线的波动,更好地体现价格的中期趋势。
    3. MACD 柱(MACD Histogram):是 DIF 线与 DEA 线的差值,可将价格的快速波动变化显示为柱状图。柱状图的红色柱代表 DIF 线在 DEA 线上方,表示价格可能上涨;绿色柱代表 DIF 线在 DEA 线下方,表示价格可能下跌。

    MACD指标的应用主要包括以下几个方面:

    1. 趋势判断:当 DIF 线与 DEA 线发生金叉(DIF 线向上穿过 DEA 线)时,表示价格可能出现上涨趋势;当 DIF 线与 DEA 线发生死叉(DIF 线向下穿过 DEA线)时,表示价格可能出现下跌趋势。
    2. 买卖信号:当 MACD 柱由负值转为正值时,被视为买入信号;当 MACD 柱由正值转为负值时,被视为卖出信号。这些转折点可能表示价格快速波动的转变。
    3. 背离信号:观察价格和 MACD 指标的背离情况。例如,当价格创新高而 MACD 指标未能创新高时,可能表示价格上涨动能下降,可能出现价格回调。

9.3.2 Baostock的基础数据获取

证券宝是开源免费的证券数据平台。通过python API获取数据信息,该工具包返回的数据格式为pandas DataFrame类型,方便使用pandas/Numpy/Matplotlib进行数据分析和可视化。本节主要介绍如何利用Baostock获取历史A股K线数据、指数数据以及上证50成分股。

历史A股K线数据

日线是股票、期货等市场中的一种技术分析图表,每个数据点代表一天的交易信息。它记录了该品种在一天内的开盘价、最高价、最低价和收盘价等数据,并通过连续的数据点形成一条曲线,以反映该品种价格的走势。

日线可以帮助投资者识别出股票或期货的价格趋势和支撑阻力位,判断未来价格走势的可能性,从而制定相应的投资策略。除此之外,日线还能够辅助投资者进行风险控制,识别出市场中的买卖信号,更好地把握交易机会。以下是通过调用query_history_k_data_plus()方法来对日线进行数据获取。

import baostock as bs
import pandas as pd
from IPython.display import display

#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)


#### 获取沪深A股历史K线数据 ####
# 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。“分钟线”不包含指数。
# 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
# 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
rs = bs.query_history_k_data_plus("sh.600000",
    "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
                                  
    start_date='2022-07-01', end_date='2022-12-31',
    frequency="d", adjustflag="3")

print('query_history_k_data_plus respond error_code:'+rs.error_code)
print('query_history_k_data_plus respond  error_msg:'+rs.error_msg)

#### 打印结果集 ####
data_list = []
while (rs.error_code == '0') & rs.next():
    # 获取一条记录,将记录合并在一起
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)

#### 结果集输出到csv文件 ####   
result.to_csv("./history_A_stock_k_data.csv", index=False)
display(result)

#### 登出系统 ####
bs.logout()
  • 使用 bs.query_history_k_data_plus() 函数查询指定股票在指定时间范围内的 K 线数据,其中第一个参数为要查询的股票代码,第二个参数为要查询的 K 线数据字段列表,第三个参数为开始日期,第四个参数为结束日期,第五个参数为查询频率,第六个参数为复权类型。该函数返回一个对象 rs,其中包含了查询返回的错误代码和错误信息以及查询结果集。

  • 将查询结果集转换成 Pandas DataFrame 格式,并输出到 CSV 文件中。首先创建一个空列表 data_list,然后使用 rs.next() 循环获取查询结果集里的每一行数据,将每一行数据存入 data_list 列表中。最后使用 Pandas 的 DataFrame 函数将 data_list 转换成 DataFrame 格式并输出到 CSV 文件中。

分钟线

rs = bs.query_history_k_data_plus("sh.600000",
    "date,time,code,open,high,low,close,volume,amount,adjustflag",
    start_date='2022-07-01', end_date='2022-07-31',
    frequency="5", adjustflag="3")
  • frequency:这个参数用于指定查询的数据类型。可以选择返回日线、周线、月线或分钟线的K线数据。其中,大写字母表示周期,如”D”代表日线,“W”代表周线,“M”代表月线,数字表示分钟线的周期,如”5”代表5分钟线,“15”代表15分钟线等。指数只支持日线数据。周线数据只能选择每周最后一个交易日查询,月线数据只能选择每月最后一个交易日查询。

  • adjustflag:这个参数用于指定查询数据是否需要进行复权处理。如果需要进行复权处理,则可以选择前复权或后复权。复权类型,默认不复权:3;1:后复权;2:前复权。已支持分钟线、日线、周线、月线前后复权。复权是一种调整股票价格的方法,以考虑公司发生的分红和配股等因素,以及股票本身的拆细和合并等因素。复权的目的是消除这些因素对股票价格的影响,使投资者能够更准确地分析股票的真实表现。

  • 如果想将换手率转换为浮点数类型,则可以使用列表推导式,并将空字符串转换为0,最终将结果存储在”dataframe“(名为result)中的”turn“列中: result["turn"] = [0 if x == "" else float(x) for x in result["turn"]]

返回数据说明

参数名称 参数描述 算法说明
date 交易所行情日期
code 证券代码
open 开盘价
high 最高价
low 最低价
close 收盘价
preclose 前收盘价 见表格下方详细说明
volume 成交量(累计 单位:股)
amount 成交额(单位:人民币元)
adjustflag 复权状态(1:后复权, 2:前复权,3:不复权)
turn 换手率 [指定交易日的成交量(股)/指定交易日的股票的流通股总股数(股)]*100%
tradestatus 交易状态(1:正常交易 0:停牌)
pctChg 涨跌幅(百分比) 日涨跌幅=[(指定交易日的收盘价-指定交易日前收盘价)/指定交易日前收盘价]*100%
peTTM 滚动市盈率 (指定交易日的股票收盘价/指定交易日的每股盈余TTM)=(指定交易日的股票收盘价*截至当日公司总股本)/归属母公司股东净利润TTM
pbMRQ 市净率 (指定交易日的股票收盘价/指定交易日的每股净资产)=总市值/(最近披露的归属母公司股东的权益-其他权益工具)
psTTM 滚动市销率 (指定交易日的股票收盘价/指定交易日的每股销售额)=(指定交易日的股票收盘价*截至当日公司总股本)/营业总收入TTM
pcfNcfTTM 滚动市现率 (指定交易日的股票收盘价/指定交易日的每股现金流TTM)=(指定交易日的股票收盘价*截至当日公司总股本)/现金以及现金等价物净增加额TTM
isST 是否ST股 1是,0否

注意“前收盘价”说明:

当股票在指定交易日发生除权除息时,其前收盘价的计算方法有所不同。一般而言,前收盘价是指前一个交易日的实际收盘价,但当股权登记日与分红现金数量、配送股数和配股价等因素相结合时,前收盘价需要根据一定的计算方法得出。具体来说,需要先计算除息价,然后再计算送红股后的除权价和配股后的除权价,最后得出除权除息价。除权除息价就是指定交易日的前收盘价。该价格由交易所计算并公布,而在首发日,则将首发价格作为前收盘价。

具体计算方法如下:

1、计算除息价: 除息价=股息登记日的收盘价-每股所分红利现金额

2、计算除权价: 送红股后的除权价=股权登记日的收盘价/(1+每股送红股数) 配股后的除权价=(股权登记日的收盘价+配股价*每股配股数)/(1+每股配股数)

3、计算除权除息价 :除权除息价=(股权登记日的收盘价-每股所分红利现金额+配股价*每股配股数)/(1+每股送红股数+每股配股数)

指数数据

指数数据是用来表示某个经济或金融市场的整体表现的数字指标,通常由一组代表该市场重要公司股票价格的股票指数构成。指数数据的意义在于让人们更好地了解市场的走势和趋势。它可以显示出市场整体的涨跌情况,帮助投资者评估其投资组合的表现,并作为制定投资决策的参考。此外,指数数据还可以被用来创建各种金融衍生品产品,例如期货和期权等。

我们可以通过API接口获取不同类型的指数K线数据,包括综合指数(如上证指数、深证综指)、规模指数(如上证50、沪深300)、行业指数(一级行业、二级行业等)、策略指数、成长指数、价值指数、主题指数、基金指数和债券指数。每种指数都有其对应的代码,例如上证指数的代码为sh.000001。下面以沪深指数K线数据为例解释说明。

沪深指数K线数据是描述中国上海证券交易所和深圳证券交易所股市行情的一种图表表示方法。它通过显示每个交易周期(如日、周或月)的四个价格点:开盘价、最高价、最低价和收盘价,来展示股市的波动情况。

# 获取指数(综合指数、规模指数、一级行业指数、二级行业指数、策略指数、成长指数、价值指数、主题指数)K线数据
# 综合指数,例如:sh.000001 上证指数,sz.399106 深证综指 等;
# 规模指数,例如:sh.000016 上证50,sh.000300 沪深300,sh.000905 中证500,sz.399001 深证成指等;
# 一级行业指数,例如:sh.000037 上证医药,sz.399433 国证交运 等;
# 二级行业指数,例如:sh.000952 300地产,sz.399951 300银行 等;
# 策略指数,例如:sh.000050 50等权,sh.000982 500等权 等;
# 成长指数,例如:sz.399376 小盘成长 等;
# 价值指数,例如:sh.000029 180价值 等;
# 主题指数,例如:sh.000015 红利指数,sh.000063 上证周期 等;

# 详细指标参数,参见“历史行情指标参数”章节;“周月线”参数与“日线”参数不同。
# 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
rs = bs.query_history_k_data_plus("sh.000001",
    "date,code,open,high,low,close,preclose,volume,amount,pctChg",
    start_date='2022-01-01', end_date='2022-06-30', frequency="d")
print('query_history_k_data_plus respond error_code:'+rs.error_code)
print('query_history_k_data_plus respond  error_msg:'+rs.error_msg)

# 打印结果集
data_list = []
while (rs.error_code == '0') & rs.next():
    # 获取一条记录,将记录合并在一起
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
# 结果集输出到csv文件
result.to_csv("./history_Index_k_data.csv", index=False)
display(result)

上证50成分股

上证50成分股指的是上海证券交易所(Shanghai Stock Exchange)挑选出来的50家规模最大、流动性最好的公司,这些公司在中国A股市场中具有较高的影响力和代表性。上证50指数是由这些50家公司的股票组成的指数。这个指数通常被视为中国股市的核心指标之一,因为它覆盖了50家规模大、具有代表性的公司,在市场风险和涨跌幅方面具有重要的参考意义。此外,由于该指数的成分股通常由市值较大、经营稳定的公司组成,因此被认为是一种相对较为稳健的投资方式。

query_sz50_stocks():这个方法通过API接口获取上证50成分股的信息,更新频率为每周一更新。这个方法返回一个pandasDataFrame类型,即一个二维表格数据结构,其中包含了上证50成分股的详细信息。

# 获取上证50成分股
rs = bs.query_sz50_stocks()  # 调用 query_sz50_stocks 方法获取上证50成分股信息
print('query_sz50 error_code:'+rs.error_code)  # 打印方法返回错误码
print('query_sz50  error_msg:'+rs.error_msg)   # 打印方法返回错误信息

# 打印结果集
sz50_stocks = []   # 创建一个空列表,用于存储查询结果
while (rs.error_code == '0') & rs.next():
    # 如果查询没有出错且还有数据
    sz50_stocks.append(rs.get_row_data())   # 将获取到的数据添加到列表中
result = pd.DataFrame(sz50_stocks, columns=rs.fields)  # 使用 pandas 将数据转换为 DataFrame 格式
# 结果集输出到csv文件
result.to_csv("D:/sz50_stocks.csv", encoding="gbk", index=False)  # 将结果保存为 csv 文件
display(result)   # 打印结果

9.4 量化选股策略

9.4.1 因子选股模型

9.4.1.1 效用模型与风险模型

效用函数

效用函数\(U(\cdot)\)一般满足两个性质

  • \(x\leq y, U(x)\leq U(y)\).(钱多总比钱少好)
  • \(d\geq 0,\)\(x\leq y\),则\(U(x+d)-U(x)\geq U(y+d)-U(y)\).(给两人同样的钱,较穷的人获得的效用更高)

期望效用假说

如果一个投资者的效用函数是\(U,\)面对\(n\)种选项,并且这些选项的财富值结果可以用随机变量\(X_1,..,X_n\)表示,那么该投资者会选择\(\mathbb{E}[U(X)]\)最大的那个选项。

损失厌恶

假设有个项目,一半的概率失败,一半概率成功。如果失败的话,投资者损失十万元,成功的话投资者获利十万元。根据效用函数的第二个性质,对于大部分人来说,效用是亏损的。在行为经济学中,这个现象叫做损失厌恶。

转换为数学语言,假设一项投资\(A\)的回报可以用随机变量\(X\)表示,这项投资的回报预期是\(\mathbb{E}[X]\)。再假设一个投资者具备效用函数\(U\),并且现有财富是\(x_0\)。那么,该投资者投资于\(A\)后的财富值可以用随机变量\(x_0+X\)表示,并且他进行该投资的效用是\(U(x_0+X)\),这项投资带给他的额外效用是\(U(x_0+X)-U(x_0)\)。因此,投资于\(A\)带给投资者的预期效用收益是\(\mathbb{E}[U(x_0+X)-U(x_0)]\)

\(\mathbb{E}[X]=0,\)则该投资为零收益投资,那么
\[ \mathbb{E}[U(x_0+X)]\leq U(x_0) \] 这是因为大多数投资者的效用函数是凹的,即\(U''(X)\leq0\),也可以说是 \[ U(\alpha x+(1-\alpha)y)\geq \alpha U(x)+(1-\alpha)U(y) \] 这意味着

  • 边际效用递减:随着财富增加,每增加一单位财富带来的效用增加逐渐减少;
  • 风险厌恶:投资者更倾向于确定性收益,而不是具有相同期望值的风险收益。

则由Jensen不等式
\[ \mathbb{E}[U(x_0+X)]\leq U(\mathbb{E}[x_0+X]) \] 又因为\(\mathbb{E}[X]=0,\mathbb{E}[x_0+X]=x_0,\)因此
\[ \mathbb{E}[U(x_0+X)]\leq U(x_0). \] 进一步来说,投资的风险就是它的收益不确定性。任何投资的回报\(X\)都可以写作预期收益\(\mathbb{E}[X]\)和零收益投资\(X-\mathbb{E}[X]\)两部分的家和。其中零收益部分带来预期效用下降,于是需要足够大的\(\mathbb{E}[X]\)来弥补;这里\(\mathbb{E}[X]\)被定义为这项投资的风险溢价(risk premium),只有当风险溢价高于风险带来的效用折损时投资者才愿意进行投资。

分散风险

经济学中的风险指的是未来的不确定性;而从概率学的角度来说,一个随机变量的分布越散开,它的确定性就越低。因此,有一个简易的衡量风险的标准,就是收益变量的标准差\(\sigma_X\)。一般来讲,在保持\(\mathbb{E}[X]\)不变的情况下,我们希望\(\sigma_X\)越低越好。

理智的投资者

对于一个投资者,如果任意两个投资回报率的随机变量\(X\)\(Y\)满足 \(\mathbb{E}[X]\geq \mathbb{E}[Y]\)并且\(\sigma_X<\sigma_Y\)(也就是说预期收益更大但是风险更小),该投资者会选择XX,那么我们说这个投资者是理智的。

9.4.1.2 MPT模型

金融资产配置的目标是将投资资金合理地分配在多种资产上,将风险控制在一定范围内的同时把收益率最大化。其中最著名的理论时现代资产配置理论(Modern Portfolio Theory, MPT),由Markowitz在1952年提出。MPT的核心思想是以最小化标准差并最大化预期收益为目标来进行资产配置,有时也成为均值—方差分析,是金融经济学一个重要基础理论。