Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

作者:

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

翻译:徐克任

校对:ansible.lee

摘要

这篇文章中将展示如何将获得诺贝尔奖的经济理论应用于股票市场,并辅以简单的Python编程来解决最终的优化问题。

在本文中,我们讨论了如何使用开创性经济理论中的关键概念来制定股票市场投资的简单优化问题。

为了说明,采用了三家公司月平均股票价格的样本数据集,并展示了如何使用基本的Python数据科学库(如NumPy,Pandas和名为CVXPY的优化框架)立即建立线性编程模型。

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

如何以最少的风险赚取最多的钱?

介绍

现代数据科学和分析企业的主要目标之一是为业务和技术公司解决复杂的优化问题,以最大化其利润。

在前面文章中,讨论了基本的离散优化概念,并介绍了用于解决此类问题的Python库PuLP。

尽管线性规划(LP)问题仅由线性目标函数和约束定义,但它可以应用于从医疗保健到经济,商业到军事的各种领域中的各种各样的问题。

在本文中,我们展示了在经济规划领域使用Python编程实现LP的一个如此惊人的应用 - 最大化股票市场投资组合的预期利润,同时最大限度地降低与之相关的风险

听起来不错吧?

如何最大化利润并最大限度地降低股票市场的风险?

1990年诺贝尔经济学奖获得者哈里马科维茨(因其着名的现代投资组合理论(MPT)而获得认可,因为它以金融市场的说法而闻名。原始论文早在1952年就已出版。

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

资料来源:AZ行情

这里的关键词是平衡

良好,平衡的投资组合必须提供保护(最小化风险)和机会(最大化利润)。

而且,当涉及最小化和最大化等概念时,用数学优化理论来解释问题是很自然的。

基本思想相当简单,基于厌恶风险的人性。

一般而言,股票市场统计数据表明,较高的风险与较高的回报概率和较低的风险相关,而较小的回报概率较大。

MPT假设投资者厌恶风险,这意味着如果两个投资组合提供相同的预期回报,投资者将更喜欢风险较低的投资组合。想一想。只有在高回报率很高的情况下,您才会收集高风险股票。

但是如何量化风险呢?这肯定是一个模糊的概念,可能对不同的人意味着不同的东西。然而,在普遍接受的经济理论中,股票价格的变化(波动性)(在固定时间范围内定义)等同于风险。

因此,中心优化问题是在确保一定数量的利润回报的同时将风险降至最低。或者,在保持风险低于某个阈值的同时最大化利润。

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

在保持风险低于某个阈值的同时最大化利润

一个示例问题

在本文中,我们将展示组合优化问题的一个非常简化的版本,可以将其转换为LP框架并使用简单的Python脚本有效地解决。

目标是说明这种优化求解的能力和可能性,以解决复杂的现实问题。

我们使用24个月的股票价格(月平均值)为三个股票 - 微软,维萨,沃尔玛。虽然是历史数据,但它们完美地阐释了这一过程。

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

图:三个公司在特定24个月期间的月度股票价格。

如何定义退货?我们可以通过从当前月份减去上个月的平均股票价格并除以上个月的价格来简单地计算滚动月度回报。

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

返回如下图所示,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

优化模型

股票的回报是不确定的数量。我们可以将其建模为随机向量

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

投资组合也可以建模为矢量。

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

因此,某些投资组合的回报由这些向量的内积给出,它是一个随机变量。百万美元的问题是:

我们如何比较随机变量(对应不同的投资组合)来选择"最佳"投资组合?

按照Markowitz模型,我们可以将我们的问题表述为,

给定固定数量的货币(比如1000美元),我们应该对三种股票中的每一只投资多少,以便(a)至少给定一个阈值的预期回报率为一个月,以及(b)将风险降至最低(差异) )投资组合回报。

我们不能投入负数。这是非负性约束

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

假设没有交易成本,总投资受到手头资金的限制,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

投资回报,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

但这是一个随机变量。所以,必须使用预期的数量

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

假设我们想要最低预期回报。因此,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

现在,为了模拟我们必须计算方差的风险,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

总之,最终的优化模型是,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

接下来,会展示使用流行的Python库来制定和解决这个问题,也会让大家发现,python+理论解决这些问题是多么容易。

使用Python来解决优化问题:CVXPY

我们将用于此问题的库名为CVXPY。它是用于凸优化问题的Python嵌入式建模语言。它允许您以遵循数学模型的自然方式表达您的问题,而不是以求解器所需的限制性标准形式表达您的问题

整个代码在这个Jupyter笔记本给出。在这里,我只展示核心代码片段。

要设置必要的数据,关键是从月度价格的数据表计算返回矩阵。代码如下,

现在,如果你并排查看原始数据表和返回表,它看起来如下,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

接下来,我们简单地从该返回矩阵计算平均值(预期)返回值和协方差矩阵,

之后,CVXPY允许简单地按照我们上面构建的数学模型来设置问题,

注意使用极其有用的类象的quad_form(),并Problem()从CVXPY框架。

瞧!

可以编写一个简单的代码来解决Problem并显示最佳投资数量,确保最小回报率为2%,同时将风险保持在最低水平。

最终结果是,

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

扩展问题

毋庸置疑,我们模型的设置和简化假设可以使这个问题听起来比现在简单得多。但是一旦你理解了解决这种优化问题的基本逻辑和机制,你就可以将它扩展到多个场景,

· 数百只股票,更长的时间范围数据

· 多个风险/收益率和门槛

· 最小化风险或最大化回报(或两者兼而有之)

· 一起投资一组公司

· 无论是/或场景 - 投资于Cococola或百事可乐,但两者都不投资

您必须构造更复杂的矩阵和更长的规则列表,使用指示符变量将其转换为混合整数问题 -但所有这些都由CVXPY等软件包本身支持。

了解可以使用框架解决的优化问题的广度。

掌握这些灵活而强大的软件包的工作知识为即将到来的数据科学家的技能组合带来了巨大的价值,因为解决优化问题的需求出现在科学,技术和业务问题的各个方面。

接下来大家可以学习为目的,尝试更复杂的投资问题,以获得探索和收获的乐趣。

Python实践诺贝尔奖理论:如何以最少的风险赚取最多的钱?

尝试更复杂的投资问题,以获得探索和收获的乐趣

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,061评论 6 523
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,407评论 3 404
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,275评论 0 368
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,084评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,091评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,555评论 1 315
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,914评论 3 429
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,900评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,438评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,470评论 3 346
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,596评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,187评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,932评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,361评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,511评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,163评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,671评论 2 366

推荐阅读更多精彩内容

  • 自我介绍 大家好,我是博士后研究员肖子龙,在深圳某金融机构任职,研究领域是智能投顾。很高兴今天能来到AI慕课学院和...
    shenciyou阅读 8,382评论 3 18
  • 智能投顾前景备受看好,但这是一个演变的过程,直接自动化会让行业变得脆弱。理念的传达是比技术更为急迫的事情。 “把主...
    shenciyou阅读 2,006评论 0 1
  • 粉蕊雾霜漫盖,苍青己绘枝条。晨光普照景观妖。游伴初春相召。 惊怨恋冬风景,且教赏到花骄。香浓靓丽惹魂逍...
    秋月白_b8b3阅读 268评论 0 3
  • 学校除了一两个领导有人性以外,有些真不是东西,推卸责任的领导不说。有的虽叫领导,办的却是人渣干的事,不能叫人事。溜...
    清汤寡水bh阅读 333评论 3 0
  • 四周悄无声息 看到今天的朋友圈 我选择独自沉默 我不愿与人诉说什么 我不愿想起什么 不愿提关于他的一切 可总是控...
    菩提本无心_72a8阅读 209评论 0 1