从CFA协会官网描述来看,一级二级的Python编程基础PSM,涉及到以下几方面内容:展示Python的基础知识,以及如何使用Jupyter Notebook开发、演示和共享与金融相关的数据科学项目。
二级还有一个Python数据科学及人工智能课程,内容有:向考生介绍机器学习、人工智能和数据科学,以及使用Python理解财务报表、报告和分析。
以上是CFA协会官网内容。首先就形式上,Python是一个学习课程,考生只要学完即可,应该不需要考试(not graded)。
其次在内容上,官网提到了Python基础,根据我们对Python的理解,应包括有以下内容。
一、基础数据类型。Python是一门弱类型语言,变量使用前无需声明,变量名可以看作一种引用。Python的基本数据类型分为数字、字符串、列表、元组、集合、字典。其中数字包括整型、浮点型、布尔型、以及复数。列表、元组、字典、集合、字符串则是Python中经常会使用到的数据结构,除此之外,还需掌握深拷贝和浅拷贝的概念。以上的数据类型必须要能够熟练的运用。
二、基础代码逻辑。比如条件语句If、循环while/for等。这部分有一定编程经验的同学应该都不会陌生。Python基础同样会包括这些常用的代码逻辑。除此之外,Python作为面向对象的语言,也应包括面向对象这个概念的介绍。
三、文件系统。在处理数据的时候,我们往往需要从文件中读写数据。例如Python读取Excel中的数据,Python读取mySQL中的数据等,Python从金融数据库(例如彭博、路透)的应用程序接口(API)中读取数据等。所以文件系统的相关操作也属于Python基础知识。Python的文件操作很简单,只需用open打开文件:file = open(path,pattern)。打开文件后就可以对文件进行读写操作,各种读写操作的命令也是应该涉及的。
四、函数。Python作为面向对象的编程语言,会大量使用函数。Python常用函数也是必须掌握的基础知识。Python中用def关键字来定义函数,格式为def 函数名(参数)。
五、各种库的运用。Python最具吸引力的地方就是有丰富的库,无论是科学计算的库、数理统计的库、机器学习库,还是各种金融项目的库,Python应有尽有。比较常用的科学计算库的介绍,或许也属于Python基础知识。
学完了以上内容,考生就可以使用规范化的金融数据进行分析,进行量化建模。像金融数据,我们经常同时分析4000只股票10年历史日线数据,还要涉及到10个风险因子。4000*2500*10 = 1亿个数据。学习了Python,我们就可以把这一亿个数据,从金融软件的API中读取出来,存入关系型数据库(MySQL),再用Python进行建模分析它们的关系,寻找它们的规律。面对亿级的数据量,只要掌握了Python这个给力的工具,就再也不会发怵了。
至于Python的其他应用,比如现在运用较多的网络爬虫,CFA估计不会在基础知识这里进行介绍。