当前位置:首页 » 编程语言 » 量化投资以python为工具pdf

量化投资以python为工具pdf

发布时间: 2024-10-19 09:59:49

python量化教程:不得不学的K线图“代码复制可用”

不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典、很重要的工具。在K线图中,它会绘制每天的最高价、最低价、开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助。

一般来说,我们会从各大券商平台获取K线图,但是这种情况下获得的K线图往往不能灵活调整,也不能适应复杂多变的生产需求。因此我们有必要学习一下如何使用Python绘制K线图。

需要说明的是,这里mpl_finance是原来的matplotlib.finance,但是现在独立出来了(而且好像没什么人维护更新了),我们将会使用它提供的方法来绘制K线图;tushare是用来在线获取股票数据的库;matplotlib.ticker中有个FuncFormatter()方法可以帮助我们调整坐标轴;matplotlib.pylab.date2num可以帮助我们将日期数据进行必要的转化。

我们以上证综指18年9月份以来的行情为例。

我们先使用mpl_finance绘制一下,看看是否一切正常。

可以看到,所有的节假日包括周末,在这里都会显示为空白,这对于我们图形的连续性非常不友好,因此我们要解决掉他们。

可以看到,空白问题完美解决,这里我们解释一下。由于matplotlib会将日期数据理解为 连续数据 ,而连续数据之间的间距是有意义的,所以非交易日即使没有数据,在坐标轴上还是会体现出来。连续多少个非交易日,在坐标轴上就对应了多少个小格子,但这些小格子上方并没有相应的蜡烛图。

明白了它的原理,我们就可以对症下药了。我们可以给横坐标(日期)传入连续的、固定间距的数据,先保证K线图的绘制是连续的;然后生成一个保存有正确日期数据的列表,接下来,我们根据坐标轴上的数据去取对应的正确的日期,并替换为坐标轴上的标签即可。

上边format_date函数就是这个作用。由于前边我们给dates列生成了从0开始的序列连续数据,因此我们可以直接把它当作索引,从真正的日期列表里去取对应的数据。在这里我们要使用matplotlib.ticker.FuncFormattter()方法,它允许我们指定一个格式化坐标轴标签的函数,在这个函数里,我们需要接受坐标轴的值以及位置,并返回自定义的标签。

你学会了吗?

当然,一个完整的K线图到这里并没有结束,后边我们会考虑加入均线、成交量等元素,感兴趣的同学欢迎关注哦!

⑵ 量化投资中,MATLAB和python哪一个好

Matlab在矩阵处理方面的强大优势Python无法比拟,我曾经用Matlab和Python跑同一个算法,涉及到矩阵中Symbol求导。Python用的是Numpy,Sympy和Scipy,感觉Sympy中Matrix虽然功能强大,但是速度很慢,而且需要专注其中各种细节。如:其对Complex类型是无法自动expand的,常常出现(1+I)(2I+1)这种结果,这时需要调用.expand来解决。Matlab可以使你专注于模型,Python要超过Matlab还需要时间。但是Python在内容抓取,机器学习,等有强大的第三方包,如Scarpy,Skikit-learn等,发展很快。概括之:现在用Matlab,未来用Python

⑶ 做量化交易选择什么语言好呢

量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。

应答时间:2021-12-02,最新业务变化请以平安银行官网公布为准。

⑷ python实现资产配置(1)----Markowitz 投资组合模型

现假设有A, B, C, D, E五只股票的收益率数据((第二日收盘价-第一日收盘价)/第一日收盘价)), 如果投资人的目标是达到20%的年收益率,那么该如何进行资产配置,才能使得投资的风险最低?

更一般的问题,假设现有x 1 ,x 2 ,...,x n , n支风险资产,且收益率已知,如果投资人的预期收益为goalRet,那么该如何进行资产配置,才能使得投资的风险最低?

1952年,芝加哥大学的Markowitz提出现代资产组合理论(Modern Portfolio Theory,简称MPT),为现代西方证券投资理论奠定了基础。其基本思想是,证券投资的风险在于证券投资收益的不确定性。如果将收益率视为一个数学上的随机变量的话,证券的期望收益是该随机变量的数学期望(均值),而风险可以用该随机变量的方差来表示。

对于投资组合而言,如何分配各种证券上的投资比例,从而使风险最小而收益最大?

答案是将投资比例设定为变量,通过数学规划,对每一固定收益率求最小方差,对每一个固定的方差求最大收益率,这个多元方程的解可以决定一条曲线,这条曲线上的每一个点都对应着最优投资组合,即在给定风险水平下,收益率最大,这条曲线称作“有效前沿” (Efficient Frontier)。

对投资者而言,不存在比有效前沿更优的投资组合,只需要根据自己的风险偏好在有效前沿上寻找最优策略。
简化后的公式为:

其中 p 为投资人的投资目标,即投资人期待的投资组合的期望值. 目标函数说明投资人资产分配的原则是在达成投资目标 p 的前提下,要将资产组合的风险最小化,这个公式就是Markowitz在1952年发表的'Portfolio Selection'一文的精髓,该文奠定了现代投资组合理论的基础,也为Markowitz赢得了1990年的诺贝尔经济学奖. 公式(1)中的决策变量为w i , i = 1,...,N, 整个数学形式是二次规划(Quadratic Programming)问题,在允许卖空的情况下(即w i 可以为负,只有等式约束)时,可以用拉格朗日(Lagrange)方法求解。

有效前缘曲线如下图:

我们考虑如下的二次规划问题

运用拉格朗日方法求解,可以得到

再看公式(1),则将目标函数由 min W T W 调整为 min 1/2(W T W), 两问题等价,写出的求解矩阵为:

工具包: CVXOPT python凸优化包
函数原型: CVXOPT.solvers.qp(P,q,G,h,A,b)

求解时,将对应的P,q,G,h,A,b写出,带入求解函数即可.值得注意的是输入的矩阵必须使用CVXOPT 中的matrix函数转化,输出的结果要使用 print(CVXOPT.solvers.qp(P,q,G,h,A,b)['x']) 函数才能输出。

这里选取五支股票2014-01-01到2015-01-01的收益率数据进行分析.
选取的五支股票分别为: 白云机场, 华夏银行, 浙能电力, 福建高速, 生益科技

先大体了解一下五支股票的收益率情况:

看来,20%的预期收益是达不到了。

接下来,我们来看五支股票的相关系数矩阵:

可以看出,白云机场和福建高速的相关性较高,因为二者同属于交通版块。在资产配置时,不利于降低非系统性风险。

接下来编写一个MeanVariance类,对于传入的收益率数据,可以进行给定预期收益的最佳持仓配比求解以及有效前缘曲线的绘制。

绘制的有效前缘曲线为:

将数据分为训练集和测试集,并将随机模拟的资产配比求得的累计收益与测试集的数据进行对比,得到:

可以看出,在前半段大部分时间用Markowitz模型计算出的收益率要高于随机模拟的组合,然而在后半段却不如随机模拟的数据,可能是训练的数据不够或者没有动态调仓造成的,在后面写策略的时候,我会加入动态调仓的部分。

股票分析部分:

Markowitz 投资组合模型求解

蔡立专:量化投资——以python为工具. 电子工业出版社

热点内容
linux是实时系统吗 发布:2024-11-24 07:23:17 浏览:142
java数据挖掘算法 发布:2024-11-24 07:18:59 浏览:853
我的世界服务器怎么重开指令 发布:2024-11-24 07:14:13 浏览:155
python删除dataframe 发布:2024-11-24 07:05:38 浏览:734
安卓机蓝牙怎么传东西 发布:2024-11-24 06:58:34 浏览:108
android叠效果 发布:2024-11-24 06:58:33 浏览:991
富士通电脑服务器设置u盘启动 发布:2024-11-24 06:56:21 浏览:716
delphipython 发布:2024-11-24 06:51:24 浏览:866
安卓手机如何添加文字 发布:2024-11-24 06:50:54 浏览:567
小米存储位置设置 发布:2024-11-24 06:45:10 浏览:207