「作者面对面 (Chat Chat)」是 GitChat 团队出品的一档对话技术写作者的栏目。我们希望通过展示更多 Chat 作者的视角,来分享程序员关于生活和工作的态度,以及学习和成长的经历。立足于写作,但不限于写作。
本次采访对象 元宵大师 可能算得上是一位「非典型」程序员,别人编程是因为喜欢「写代码」这个有前途的职业,而他学习编程的初衷却是为了炒股…
元宵大师在 GitChat 已经发布了 5 篇 Chat,包括《详解用 Python 访问金融交易数据的方法》等兼具专业性的技术文章。今天,我们就和他聊一聊他成为程序员和交易员的经历,以及他在学习编程、金融、项目管理过程中的宝贵经验。
能否介绍一下你自己和你正在做的事?
我是一名资深 Python 数据分析师,兼高级项目管理师,致力于推动人工智能、大数据分析在金融量化交易领域中的应用。平时乐于将开发过程和经验在公众号「元宵大师带你用 Python 量化交易」中记录和分享,也曾在核心期刊上发表多篇论文。目前活跃于 GitChat 平台,已发布多篇量化交易相关的 Chat 文章,旨在与广大技术爱好者分享和交流经验心得。
目前我正在积极推广量化交易在股票交易中的应用,对我个人而言分享这方面的经验,一是为了增加自己在该领域的知名度,另外也是为了通过知识分享方式帮助大家升级投资理财技能。
能否简单介绍一下量化交易?
可能大家对量化交易比较陌生。量化交易是一种新兴的系统化的金融投资方法,它以计算机强大运算能力为基础,运用数据建模、统计学分析、程序设计等工具从历史数据中得到大概率下获利的交易策略,属于人工智能、大数据分析在金融领域的具体应用。目前这种方式在美国的金融领域已经日趋成熟,国内虽然近几年才开始推广和流行,但是发展势头迅猛,方兴未艾。
众所周知,股票投资已经成为全民最主要的理财渠道之一。A 股市场是一个以散户为主导的市场,大多数股民交易频繁,对买卖点思考并不严谨,如果交易股票毫无章法的话势必沦为“韭菜”被收割。而量化交易由于其管理概率、理性交易的思想所在,非常适合在普通股民群体中所推广。对程序员们来说会编程则是从事量化“得天独厚”的优势。
你是如何成为程序员的?
成为程序员的主要目的是为了实现量化交易。至于为什么会从事量化交易,其实也是一种机缘巧合。
我在读高中的时候家里的电脑上安装了一款收费的炒股软件,这个软件是源自“道氏理论”的思想,从历史行情的研判中给出选股和选时方面的操作信号,当时从大人们的反馈中我获悉到这个软件是非常有效的。不过当时我在脑海中一直有个疑问是“这个软件真的这么厉害,能够预测走势?”
到了大一暑假的时候,我就开始帮着大人们交易股票了,当时自己并不是太懂,一直盯着盘面上波动的价格。有几次自己心态受到价格波动的影响,就自作主张地卖出股票,谁知道刚卖出以后股价就拉升了,我顿时懊悔不已。不过,从此我对股票产生了浓厚的兴趣:盘面上的各种指标是什么含义?价格波动的背后又是什么原理?
于是我开始阅读股票相关的书籍,比如《漫步华尔街》、《笑傲股市》、《金融炼金术》、《股票作手回忆录》等。从最开始学习股票的基础知识和原理,到之后观察和学习那些专业人士的交易模式,通过不断地模仿和练习,最后形成一种适合我自己的独特方法。
在一次偶然的机会,我去了我朋友的一家小私募公司交流。在聊到我在交易中如何克服人性弱点的困扰时,他推荐了《海龟交易法则》这本书,他说他很喜欢书中的那套交易原理,并且鼓励我将编程融入到交易中去。
《海龟交易法则》使我第一次接触到了量化交易。在金融行业,美国银行、美林证券的“石英”项目、摩根大通的“雅典娜”项目都战略性地使用了 Python 进行高效的金融程序开发和金融数据分析,于是我也开启了学习 Python 编程的旅程。
你在学习过程中遇到的最大挑战是什么?
最大的挑战就是从零开始学习一项新事物,比如我从一名小白开始学习量化交易、Python、项目管理等等。在这个学习过程中,一开始是非常痛苦的,往往很多人会在这个阶段放弃。
对于学习编程来说,你是怎么度过这个痛苦的阶段的?
就拿学习 Python 来说。首先我设定学习的路线,直白的说就是先模仿后实践,最后让知识成为自己的技能。我在学习 Python 的时候,就选择了几本口碑不错的书籍或者课程作为“模仿”的对象。
当我系统地掌握基本的语法结构和使用案例后,我会开始思考接下去如何进阶 Python。寻找练手的项目可以在实践中把知识点融会贯通起来,特别是遇到 Bug 的时候一定要刨根究底地排查,有时候学习的乐趣也体现在恍然大悟的一瞬间。
虽然不同的专业技术有很大差别,不过我觉得只要掌握了学习的方法,上手这些技术不存在太大的障碍。
还有哪些提高学习效率的方法?
我的经验是“如何学习比学什么更重要”。它能够教会你如何学会“走路”。乌尔里希. 伯泽尔在《有效学习》中提出:学会“如何学习”,将是专家们所说的“终极生存技能”,这是现代社会超越其他一切技能的关键能力。因为一旦学会了如何学习,你就可以学习任何事物。
由于我是高级项目管理师,有项目管理思维的存在,关于如何学习,很多时候我会借用项目管理里面的一些方法。比如首先我会先设立一个大的学习目标,然后将大的目标分解为各个小的目标,对这些小目标的完成预估一个工期,再将这些小的目标和工期制定成我的学习计划,并且严格按照这个计划开展学习。
你平时喜欢用什么效率工具?
常规做笔记的方式是直接拿笔和笔记本,或者电脑上用 word 文档。不过这些方式都有一个缺点,就是管理起来特别麻烦,不方便检索。所以我想分享给大家一款非常优秀的数字笔记软件 OneNote。
OneNote 突破了这些缺点,它可以对笔记内容集中管理,检索也很便捷,还能直接导入表格,然后多人同步编辑。
是否可以截图一下你的代码编辑器?
![](https://i-blog.csdnimg.cn/blog_migrate/6db676a306a9268db567def2f0257761.png)
你在 GitChat 上创作的最新 Chat《Python 面向对象搭建量化交易策略回测框架》,你希望通过这篇 Chat 或这个专栏向读者传递什么?从你的角度看,你的收获是什么?
量化交易的精髓是从股票、债券、期货等历史数据中回测获取交易策略的盈亏“概率”,通过管理盈亏的“概率”帮助投资者做出靠谱的决策。因此制定一个策略模型后,不能立即应用到实战中,而是要经过回测更客观地评估策略的好坏。“回测框架”就成为了量化玩家们的标配工具。尽管市面上已经有不少回测平台,但是我们知道 “投资交易”这个领域是高度个性化的,因为每个交易者所关注的、侧重的层面并不相同。
对此本场 Chat 基于股票教大家用 Python 以面向对象方式搭建量化交易策略回测框架,不仅能够了解到回测的各个流程,而且能够以此为基础搭建出适合自己的回测平台。
怎么看待 Python 的未来趋势?
由于 Python 是一门高级语言,语法简单,通俗易懂,相对于其他编程语言来说,非常容易上手。Python 有丰富的第三方库支持,可以使开发变得非常便捷,它的存在以及未来的趋势就是为了帮助我们快速解决实际问题。
对其他学习或奋斗中的人,你有什么建议?
我的建议是 “一切的坚持都源自于热爱”。它能够决定你能“走”多远!不管这个领域是否热门,是否在快速发展期,只要你能够付出更多的努力并且乐在其中,那么一定可以成为这个领域中的佼佼者!
《「作者面对面」访谈录》是 GitChat 团队出品的对话优秀技术人的窗口。我们希望能代替读者坐到作者们对面,和他们聊聊自己的生活和选择,观念和理想。最新一期访谈将由 GitChat 微信服务号首发,敬请期待。
![](https://i-blog.csdnimg.cn/blog_migrate/496d7a3fbcd52fc4aa56e831262a24f6.png)