资产定价Model——随机变量因子

本文探讨了资产定价的原理,不仅涉及无风险收益的基础概念,还深入分析了消费、市场等因素如何通过随机折现因子影响资产定价。文章通过数学模型说明了消费与资产定价之间的负相关关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本篇paper逻辑,资产定价除了以最基础的无风险收益定价以外,通常还会受消费,市场,时政等一系列其它因素的影响。我们把它归结成随机折现因子。如图中定价式子(是一周期且离散。若要拓展成连续时间,见图片左下角变积分)。

(注意未来的分红,折现因子都是随机量,因此要取值的话,要取期望)

基础的无风险资产定价,是通过分红来定的,即未来收益。举个例子,假定年利率为10%,即放入银行,一年后1元变1.1元。假定一款资产产品,期限为n年,每年分红1元,则合理的资产定价为1/1.1+1/1.1^2+1/1.1^3+...+1/1.1^n即把未来的分红折现到现在,取总和得到最后的即为该资产的合理定价。

(一个小的数学定理,Cov(x,y) = E(xy) - E(x)E(y) )

基于此利用图片中对资产组合的公式:可以将资产定价Pt拆解成基础无风险收益部分+随机部分(即协方差)依据截图开头部分,建立的消费模型。推导出随机变量因子m与消费负相关。(因为m等式给出,式中的β和Ut'均是常量,只有Ut+1'是随机项。极具边际递减效应(即斜率越来越低,随着消费上升,效用指数增加趋近于平缓,即随着消费Ct+1增加,Ut+1'越来越小,得证mt+1与消费负相关。)利用开头模型中Ct+1的式子很明显消费和未来资产收益即Xt+1是正相关,所以结论:在该模型中,消费增加,资产定价越低。

解释一下开头的模型。开头的消费模型。我们有效用函数要取得最大值。消费 = 禀赋(本月有的总资本)-购买的资产单价*份数 下一个月= 禀赋 + 每份资产本月的分红*份数 求导=0.得到极值点算出资产定价Pt,两项对照资产定价定义得到m的公式。

### 使用Python进行强化学习以优化电动汽车充电 #### 强化学习框架的选择与安装 为了构建一个能够有效管理电动汽车充电过程的系统,可以采用Q-learning算法来决定何时以及如何给电动车充电。这不仅有助于维持电力系统的稳定,还能降低用户的电费支出。 对于开发环境而言,建议使用Anaconda作为包管理和虚拟环境工具,并通过`pip`命令安装必要的库文件: ```bash pip install gym stable-baselines3 matplotlib pandas seaborn ``` 这里选择了`gym`库提供模拟环境支持;而`stable-baselines3`则包含了多种经典的RL算法实现版本,其中包括适用于连续动作空间的任务处理方式——这是针对实际应用场景下更贴近现实需求的一种选择[^1]。 #### 构建仿真环境 创建自定义Gym环境类用于表示EV充电场景,在此环境中定义好奖励函数、观测向量形式及其取值范围等内容。具体来说就是设定一天内各个时段电价波动规律,考虑电网负荷水平等因素影响下的动态定价机制;同时也要考虑到电池容量限制、初始电量状态等物理属性约束条件。 ```python import gym from gym import spaces import numpy as np class EVChargingEnv(gym.Env): """Custom Environment that follows gym interface""" metadata = {'render.modes': ['human']} def __init__(self, price_profile=None, battery_capacity=50.0, initial_charge_level=20.0): super(EVChargingEnv, self).__init__() # Define action and observation space self.action_space = spaces.Discrete(2) # Charge or not charge low_bound = np.array([0., ] * (len(price_profile)+1)) high_bound = np.concatenate((price_profile,[battery_capacity])) self.observation_space = spaces.Box(low=low_bound, high=high_bound) self.price_profile = price_profile self.battery_capacity = battery_capacity self.initial_charge_level = initial_charge_level self.current_step = None self.state = None ... ``` 上述代码片段展示了如何初始化一个新的Gym环境对象并设置其基本参数配置。其中`action_space`指定了可用的操作集合(即是否执行充电行为),而`observation_space`描述了观察到的状态变量区间,包括当前时刻之前的每个小时段内的单位千瓦时价格列表加上剩余未充满部分所占比例两个维度的信息。 #### 设计奖励机制 接下来要做的就是在每次采取行动之后计算即时回报值r(s,a),以此引导智能体朝着目标前进的方向调整决策逻辑。在这个案例里,应当鼓励尽早完成补电任务的同时尽可能避开高峰用电期,因此可以根据时间戳t对应的费率p(t)乘上本次增量ΔE得出成本c=p(t)*ΔE,再利用线性变换公式f(x)=ax+b将之转换成正值或负数的形式反馈回去供后续评估参考。 ```python def step(self, action): done = False reward = 0. current_price = self.price_profile[self.current_step % len(self.price_profile)] next_state = list(self.state[:-1]) + [min(max(self.state[-1]+(-1)**int(not bool(action)), 0.), self.battery_capacity)] cost = (-current_price*(next_state[-1]-self.state[-1]))/self.battery_capacity*1e2 reward += max(min(cost,-8),-cost) if all(np.isclose(next_state[-1], self.battery_capacity)): reward += 100. done=True info = {} self.state = tuple(next_state+[done]) self.current_step+=1 return self.state, reward, done, info ``` 这段程序实现了单次交互过程中所需调用的方法接口,它接收来自外部传入的动作指令后更新内部记录的状态并向外界返回新的观测结果连同相应的得分情况一并打包传递出去。特别值得注意的是这里的评分体系采用了分段式的策略:当处于低谷阶段实施快速补充措施可以获得额外加分;反之如果是在尖峰负载期间强行作业,则会被扣除较多分数以示惩罚。 #### 训练模型 最后一步便是挑选合适的强化学习算法来进行迭代训练直至收敛为止。鉴于本课题涉及到离散型控制问题的特点,推荐选用DQN(Double Deep Q-Networks)或者它的变种DDPG(Deep Deterministic Policy Gradient)来做尝试。下面给出了一套完整的实验流程概览图解说明文档链接地址[^4]。 ```python from stable_baselines3 import DDPG from stable_baselines3.common.noise import NormalActionNoise, OrnsteinUhlenbeckActionNoise from stable_baselines3.common.monitor import Monitor from datetime import timedelta env = EVChargingEnv() env = Monitor(env) n_actions = env.action_space.shape[0] action_noise = NormalActionNoise(mean=np.zeros(n_actions), sigma=0.1 * np.ones(n_actions)) model = DDPG('MlpPolicy', env, action_noise=action_noise, verbose=1, tensorboard_log="./ddpg_ev_charging_tensorboard/") start_time = time.time() time_limit_minutes = 60 while True: model.learn(total_timesteps=int(1e4)) elapsed_time = str(timedelta(seconds=(time.time() - start_time))) print(f"Training Time Elapsed: {elapsed_time}") if int(elapsed_time.split(':')[0]) >= time_limit_minutes: break ``` 该脚本首先导入所需的模块并将之前定义好的环境实例包裹在一个监视器组件当中以便于后期统计分析性能指标变化趋势曲线图表绘制等工作开展得更加顺利一些。接着按照官方API指南指示完成了对神经网络结构的设计定制工作并通过指定随机噪声扰动项的方式引入探索因子帮助跳出局部极值陷阱加快全局寻优速度效率提升明显可见。最后启动循环周期不断累积经验教训直到满足预设时限要求自动停止整个过程结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值