博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 金融分析学习
阅读量:6293 次
发布时间:2019-06-22

本文共 1452 字,大约阅读时间需要 4 分钟。

import tushare as ts

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from scipy import stats

import statsmodels.api as sm

#资产定价模型   Ri=Rf+beta*(Rm-Rf)

sh=ts.get_hist_data('sh').sort_index()

pf=ts.get_hist_data('600000').sort_index()

sh['re']=np.log(sh['close']/sh['close'].shift(1))#计算上证指数的收益率

pf['re']=np.log(pf['close']/pf['close'].shift(1))#计算浦发银行的收益率

sh=sh.dropna()

pf=pf.dropna()#去掉缺失值

#由于数据行数不相等,做如下操作

shre=pd.DataFrame(sh['re'])

pfre=pd.DataFrame(pf['re'])

data=pd.merge(shre,pfre,left_index=Ture,right_index=True)

data.columns=['shre','pfre']

#利用线性回归求解beta值,并同时检验显著性水平

beta,alpha,r_value,p_value,std_err=stats.linregress(data['pfre'],data['shre'])

print(beta,alpha,r_value,p_value,std_err)

#APT 套利定价理论

import statsmodels.api as sm #导入最小二乘法求解各个因子的β值

results=sm.OLS(data['shre'],data['pfre']).fit()

print(results.summary())

#PuLP 线性优化

pip install PuLP

import pulp

x=pulp.LpVariable('x',lowBound=0)

y=pulp.LpVariable('y',lowBound=0)

problem=pulp.LpProblem("A simple maximization objective",pulp.LpMaximize)

problem+=3*x+2*y

problem+=2*x+y<=100

problem+=x+y<=80

problem+=x<=40

problem.solve()

for i in problem.variables()

    print(i.name,'=',variable.varValue)

 #非线性求解最优根

import scipy.optimize as op

y=lambda x:3.0*x**3+2.0*x**2-5

dy=lambda x:9.0*x**2+4.0*x

print(op.newton(y,5.0,fprime=dy))#牛顿迭代

print(op.bisect(y,-5.0,5.0,xtol=0.00001))#二分法迭代

print(op.brentq(y,-5.0,5.0))#割线法迭代

 

转载于:https://www.cnblogs.com/thechain/p/9276994.html

你可能感兴趣的文章
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>
Docker之功能汇总
查看>>
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>