返回目录:文件问题
翻译:赵洪山
校对:Jack.Feng
作者:Semi Koen
在这篇论点犀利的文章中,作者引入了几个大胆新颖的观点。
“Jupyter是新的Excel”
“为什么交易员和财务专业人员需要学习Python”
如果你是一个商人或您是在金融行业工作,Excel是你的面包,黄油 ; 您可以分析价格和其他价格数据,评估您的交易组合,计算VaR,执行回测。
如果您是数据透视表,公式,图表甚至VBA和PowerQuery的专家。您可以快速处理解决方案,但在您知道之前,您的电子表格可能会扩展到数十个标签,数千行VBA - 因此它的可读性和维护性真让人头疼。而且慢悠悠的性能,甚至当你按F9刷新结果时,有足够时间拿起一杯茶,甚至喝完后还要等一下结果!
你可能正由衷得点头。上述场景听起来很耳熟吧。
虽然很多时候Excel非常有用,但它无法在数据中为你提供真正的洞察力,Excel根本无法提供您寻求的所有答案。让我们看看是什么让Excel变得流行以及在哪些方面是它的短板,但最重要的是,为什么应该开始使用Jupyter笔记本作为替代Excel的强大数据分析工具。
Excel 的优点
一些因素使Excel变得如此有价值,最值得注意的是它具有内置函数的简单而强大的反应计算模型。电子表格就像一个空白画布,"业余程序员"可以使用Excel的专有语言(即公式和VBA)编写代码。
银行部署了广泛的IT系统来运行业务关键流程,但是电子表格形式的Shadow IT已经爆炸式增长,它补充了这些核心系统,并成为新业务计划的默认工具。由于企业IT系统不能灵活地适应动态金融所需的快速上线时间,因此手工方式的Excel可以填补这一空白,并尽可能的提供人肉手动的便利!但这是正确的解决之道吗?
Excel在企业中的角色需要重新定义!
Excel的缺陷
尝试使用Excel对大量数据进行高级响应式分析,但却正在使用错误的工具来完成工作。
以下是Excel高级用户面临的一些问题:
· 级联错误:Excel因错误传播到列中然后在整个电子表格中产生雪球而变成了雪崩而臭名昭着。可怕的是,刚开始根本无人发现,发现时却为时已晚。一些相关案例已经广为人知,因为这些已经导致了巨大的成本开销去弥补。
· 可伸缩性:Excel 对其可容纳的行数和列数有限制,但随着数据集以指数速度增加,Excel很快耗尽内存或占用大部分CPU。发生这种情况时,数据损坏的风险就会上升。
· 性能:在复杂的工作簿中,更改一个数字会影响数百个重复计算,Excel需要时间来处理每个数字。达到某个大小时,它不仅会降低Excel本身的速度,还会影响需要内存空间的任何其他应用程序的性能。
· 测试:几乎不可能测试Excel的正确性,然后证明后续更改没有破坏任何其他内容。
· 可追溯性/调试:通常一个甚至很小的变化都会严重破坏您复杂的公式,使其难以识别和修复。
· 一团糟的结构:数据和计算都包含在Excel文件中,并只能在本地计算机运行。这意味着协作受到限制,版本控制成为一场噩梦。此外,数据是基于最新刷新的静态数据,而不是在条件发生变化时实时更新。
但相应的,几十年前的传统软件就已经解决了所有这些问题。
所有的问题并没有完全解决,现在还任然延续着:
· 操作风险:所有电子表格都以小型/快速修复计算开始,但有些会变成永久性的企业级解决方案。它们提供了许多业务流程,但由于缺乏对整体的可见性,许多财务,运营和监管流程的完整性受到威胁。
要用程序员思维而非交易员思维
传统上,银行将量化交易团队分为交易者和量化开发人员。前者提出了交易思想,后者将这些想法转化为可执行代码。试想,当你作为交易员时,同时也是一名熟练的编码人员,身兼2者优势,这也为你提供了竞争优势:不仅银行希望优化他们的成本,因此你可以在裁员中存活下来,而且也可以建立自己的交易模式来采取行动并利用这一优势为您带来好处。
能够自动化日常的工作让你也会获得额外的的自由,你会发现,编码其实是如此有创意!
这也是一代人的事情,因为更多的初级交易员已经具备了编码技能,所以如果想保持你的就业能力,你需要多学一门本事。
如何使用Python和Jupyter笔记本代替Excel
- 看看我在那里做了什么?
那么那些发现Excel限制(如果没有过时)的交易员和金融专业人士的解决方案是什么?
熟练应用Jupyter环境来学习Python,并进行编码实践!
PYTHON
Python相当容易学习,而且用途广泛,因此在金融界有更多的人参与。
它现在是许多量化脚本的编写语言。并且,它远远没有C ++(或Java)复杂,这意味着:❶学习曲线不那么陡峭,而且
❷完成任务所需的代码量要小得多5倍或10倍。
很多以Python编写的程序库纷纷涌现,这标明,作为交易者只要学会了Python就能获取几乎所有的交易库支持:
◽读数据,写数据,清洗,切片/切割数据
◽数学,统计和时间序列
◽财务分析:交易和量化金融,市场数据分析,股票/衍生品市场分析,彭博数据访问,执行引擎,反向测试,风险分析等
◽机器学习管道(例如预测市场价格)
◽绘图和美观/交互式可视化
◽SQL支持
◽发送电子邮件
◽网络抓取(例如在线获取市场价格)
◽任务自动化/日程安排
◽Excel集成(如果你真的喜欢Excel非常)
Jupyter
同样,Jupyter Notebook是一个基于Web的计算环境,使您能够创作包括以下内容的文档:实时代码,图形,小部件,丰富的叙述文本(包括链接,方程式等),图片等。更具体地说,您能够:
· 在浏览器中编辑代码,自动语法突出显示,缩进和制表符完成/内省。
· 从浏览器运行代码,计算结果附加到生成它们的代码。
它们提供全包含,独立的计算记录,因此它们可以代替Excel作为实时数据分析平台。
说了这么多,读者可能想知道:
自己现在是否还坚持使用Excel吗?当然…
在以下用例中,excel仍然是您最好的选择:
◽️正确性和准确性不是需要第一考虑的
◽数据不是太大(即不需要可扩展性)
◽不需要实时更新
◽使用Excel作为便笺快速把原型放在一起
◽不需要长期维护。
您需要的是允许快速开发,验证正确性和可扩展性的东西,同时拥有与Excel相同的反应模型。这正是Jupyter笔记本所提供的!
说了这么多,总结下“不,Excel不会过时,但Jupyter 是更好的数据分析工具!”
强调下,Jupter NoteBOOK至少有下列10个优点 :
✔️ 强大的数据操作 - 毕竟它是数据科学家的工具箱!
✔️ 高级可视化功能 - 不再枯燥的图表!
✔️ 更好的用户体验
✔️ 大数据集处理 - 不再崩溃!
✔️ 性能管理 - 利用多处理功能
✔️ 测试驱动开发 -
✔️ 开源可访问性 - " 它有一个lib!"
✔️ 错误可追溯性
✔️ 更容易自动化
✔️ 生成自描述文档 - 不要低估这个价值!
如何开始开始
我意识到进入这个可能是令人生畏的,但编程不是要学习语言的语法,而是使用正确的语言和工具来解决问题:
这里有两个很好的资源可以帮助您入门(不是附属):
- Python: Free eBook Download
- Jupyter Notebook for beginners: Online Tutorial.
最后的想法
很难想象没有电子表格的企业界!
银行开始发现Python作为其关键工作负载的Excel替代品。巴克莱最近刚刚成为头条新闻,他们努力教会交易员编码。我认为你也应该顺应这个趋势,这不会让你失望的!
让Excel做Excel擅长的事情,并将分析和自动化转移到Python和Jupyter笔记本中。
这么做了后,你会发现进入了一个充满活力和互动分析的快乐世界!
谢谢阅读!