序 本书是笔者继《财金统计学:使用R 语言》(简称《财统》)与《经济与财务数学:使用R 语言》(简称《财数》)(皆为五南出版)二书后所写的第三本书;换言之,于完成《财数》后,笔者思考后续的发展,何不尝试用R 语言(简称R)来思考衍生性商品?如今,本书也已经完成了,以下简称为《衍商》。三本书的难易程度依序为《衍商》、《财统》与《财数》。它们的特色是全部用「机器取代人工」,即于各书中只要有牵涉到例如读取资料、计算、模拟、估计、制表或甚至于绘图等动作,皆有对应的R指令 (存于各书所附的光碟片内),可以用与机器(电脑)沟通;因此,若初学者想要学习R 程式,笔者的建议是可以先学习《财数》。
也许读者曾经听过下列的说法:「经济或财务专业的学习者通常可以分成二种类型,第一类型的人只需使用简单的图形与数学,典型的代表人物是亚当斯密或凯因斯等人;第二种类型的人会使用抽象复杂的数学模型,而其代表人物则为Black、Scholes 或Merton 等人。」至于第三种类型的人呢?应该就是我们了。既无凯因斯等人的聪明才智,又无严谨的数学训练,那我们应该如何学习经济或财务专业呢?此问题着实困扰笔者甚久。长久以来,笔者一直尝试找出方法或答案,还好答案有可能已经逐渐浮出台面了。原来,我们欠缺适当的辅助工具来学习上述专业,就笔者而言,该辅助工具就是电脑语言;也就是说,我们需要学会电脑语言才能与电脑沟通,才能用电脑取代人脑,也才能了解上述第一类型与第二类型的人的想法或论述。
为何电脑语言如此重要?网路上有人称世界上有四种最重要的语言,分别为英文、中文、数学与电脑语言。笔者颇赞同上述的说法,中文与英文的重要性本来就不容置疑,而各种专业早就大量的使用数学(语言),因此若要了解各种专业,对数学语言本来就不能太陌生。只是究竟要如何学习数学呢?也许还是有一些错误的印象在我们的脑中;例如:就是数学或电脑不好才来念商科,才来念「社会组」。持平而论,我们可以仔细回想上述不好的印象从何而来?也许,是来自于国高中数学的学习,不过若检视一下《财数》内容,应该可以发现现在所使用的数学与国高中数学的关联性其实并不高;因此若让当初错误的印象继续存在而影响我们未来的发展,应该是不正确的,更何况当初并没有使用电脑工具模拟或计算。也许读者亦会反对,不是也要学电脑语言吗?根据笔者的印象,笔者当初大学曾接触过FORTRAN 与COBOL 语言,可惜的是,当初所用的范例太不吸引人了(因为大多是纯粹的数学或资讯方面的例子);或者说,太缺乏可供参考的范例了,以至于学起来相当不顺手。更重要的是,当初并没有警觉到电脑语言的重要性。如今时空环境已大不同了,网路上的资讯随手可得;另一方面,笔者也已经提供许多范例了,故若是好好地认真学习,应该会与以前不同。因此,最后笔者还要补上「用电脑语言来学习数学」这句话。
为何我们可以用电脑语言来学习数学呢?其实《财数》一书已经透露出一些端倪了。看到复杂的数学模型,首先我们当然尝试是否可以用电脑程式表示或翻译,若可以的话,我们反而可以进一步用电脑来模拟或计算,如此自然可以提高对该数学模型的了解。更重要的是,我们也可以将上述电脑程式「拆解」成若干指令,然后逐步去了解每一指令的意思,这之间当然亦需要电脑的模拟或计算,不过只要会使用电脑语言,上述的步骤应不难执行与检视。因此,利用电脑反而可以让我们想像出上述数学模型的结构与涵义。换言之,读者不妨利用上述方式来检视《衍商》的内容;也就是说,于《衍商》内,的确有颇多复杂的数学模型,读者倒是可以利用上述方法检视看看。可惜的是,笔者曾经看到不少学生竟然在「阅读」《财统》内所附的R 指令,此应该是不正确的;相反地,上述同学应该实际于电脑内操作,利用结果去了解每一指令的意思。因此,看到抽象复杂的数学模型,我们应该可以用电脑来检视其意义。如此的学习方式,读者有用过吗?数学不好或对其没有兴趣,有可能是因为当初接触太少或不知使用何方法检视所造成的。也许,读者可以重新尝试看看。
「进步犹如剑之双刃」,未来我们皆有可能会面临失业的危机;的确,科技进步虽带来了方便,却也带来了一些隐忧,那就是「用机器取代人力」。因此,若「无人机器」的发展趋势不变,未来的工作机会相对上应皆会较偏向属「技术型」的范围;金融机构的「金、铁饭碗」已不复存在,那现在读者或未来的学生应该学什么呢?或者说,我们应该教学生什么呢?似乎传统的上课内容以及方式已不符所需了。当前或未来的学生应该具备何种知识呢?举例来说,目前金融科技(FinTech)的发展应该还是属于「硬体建构」方面的第一阶段,所谓「隔行如隔山」,缺乏资讯科技专业的财金师生不禁气馁,似乎金融科技的发展与财金的专业无关(即我们并无法参与其中的发展与设计);不过,未来金融科技发展的第二或第三阶段呢?换句话说,若财金的硬体设备已趋完善,下一个阶段自然会需要财金专业软体方面的设计人才;是故,财金的学生应该利用此「空档」学习电脑语言与程式设计,如此才能因应未来的需求。因此,笔者最后的建议仍是先学习电脑语言;也就是说,若笔者重新再读大学一次,笔者应该会先学电脑语言的使用。
倘若会使用电脑语言,自然就可以更深入了解专业,降低被替代的可能;另一方面,若懂得与机器沟通,自然可以提升本身的竞争力。也就是说,不要因「不懂或没有使用过电脑语言」成为未来心中最大的隐忧,或者是因此丧失了有利的发展机会。假定笔者遇到如电影「机械公敌( I, Robot)」内的「超级电脑( Wiki)」,笔者应该会有兴趣想要知道 Wiki 的经济与财务专业知识。倘若Wiki 的专业知识相当丰富,令人满意,我们自然好奇Wiki 内的程式是出自何人或何团队之手?电脑软体工程师吗?未必。若Wiki 仍不懂上述专业或只拥有有限的知识,岂不是表示未来需要有Wiki 的「财金更新版」吗?当然,Wiki 若是属于「全能型」的人工智慧,未来我们皆会找不到工作;否则,未来应该会需要大量的各行各业的程式设计人才。
倘若读者曾阅读笔者的书籍,也许也曾经设计过程式,应该会发现程式设计并非一蹴可几,而是需要「脑力激盪」与多年经验的累积;换句话说,好不容易完成了部分的程式,结果发现无法执行,读者有办法找出症结吗?另一方面,也许读者发现笔者所提供的指令太过麻烦了,那应如何精简呢?如何一般化呢?毕竟笔者并不是以写论文的方式撰写,故书内许多例子未必合理或正确,那依读者的看法,应如何改善呢?是否可以写出修正后的程式呢?笔者当初撰写时秉持二种态度:其一是基本专业知识的介绍,另一则是有了一些想法后,想办法用R来实现;因此,笔者上述书内的功能之一是R 程式撰写的训练。
依笔者来看,读者最好不要太依赖套装软体或程式套件的使用,因为太依赖程式套件反而会让读者丧失了学习程式设计的机会;另一方面,若读者只会从事输入参数等简单工作,那未来不是太容易被取代了吗?程式套件的使用应该做为简化程式的内容(即不需要每一个步骤皆自己设计),而不是用来做为最终的使用工具。因此,笔者所提供的R 指令,大多保持最原始的样貌,其目的就是要让读者也能自行设计程式。也许,许多人认为R 并不是一种理想的程式语言,那读者反倒是可以利用已经熟悉的电脑语言,看看是否可以复制出笔者各书的内容,如此岂不是可以多练习程式设计吗?最后,按照目前的趋势来看,未来我们可能会需要学习多种电脑语言,不过若已经了解一种语言的语法与用法后,再来学习另外一种语言,应该不是一件困难的事。现在有些时候,我们会在报章杂志看到有人建议中小学生也应该学习电脑语言,不过若是要求我们的大学生也来学习与专业无关的程式设计,恐怕许多人会兴趣缺缺。若是如此,何不学习属于自己专业的程式设计呢?换句话说,未来应该是「各行各业的程式设计由各行各业的专业人士负责」,电脑软体工程师只负责整合或翻译,否则事事仰赖电脑工程师,让他们「整碗端走」,那以后我们要靠什么维生呢?因此,若笔者的想法正确的话,现在的财金学生不是应该学习属于财金的程式设计吗?
以上所言,是笔者完成《衍商》后的感想,提供给读者参考。现在我们来检视《衍商》的内容。基本上,《衍商》是《财数》与《财统》二书的延伸;也就是说,读者需要有基本的统计学与财务数学基础,方能使用《衍商》;另一方面,笔者还是利用R 辅助工具来检视衍生性商品。于衍生性商品的教科书中,笔者比较喜欢Hull、McDonald以及Jarrow与Turnbull 等书(可参考第1 章註2);不过,于学生时期,因为不知如何使用或操作,上述教科书的确让笔者吃尽了苦头。由于没有于电脑上实际操作,故对书内的内容常常是一知半解,应该是读不懂,故从来就没有看完上述书籍,一看再看,永远皆是前面的章节比较熟悉,而后面的章节却不知所云。此种情况直至笔者开始尝试用电脑语言学习上述书籍才获得改善,因此就笔者而言,衍生性商品的介绍与认识,应该皆是属于电脑语言的应用;也就是说,若不使用电脑语言,衍生性商品学习的困难度应该是颇高的。
基本上,笔者要来介绍衍生性商品,当初的确遇到一些斟酌考量,可以分述如下:
(1) 基本的衍生性商品包括远期、期货、选择权与交换交易,故《衍商》的内容应包括上述四种交易的介绍。
(2) 选择权的交易应该是最吸引人的,由于欧式选择权价格已有明确的数学公式表示( BSM模型),笔者当然需要完整的介绍欧式选择权交易。
(3) 因美式选择权与一些新奇选择权的价格无法找到明确的数学公式,故需要介绍一些数值计算方法。
(4) 最麻烦的是利率的衍生性商品,该商品的确太过于复杂且内容太多了,《衍商》只能介绍部分的内容,剩下的部分留待以后再另以专书介绍。换句话说,《衍商》的内容应该仍脱离不了上述Hull、McDonald 以及Jarrow 与Turnbull 等教科书的范畴;若读者想了解上述教科书的实际操作,则《衍商》倒是提供一种不错的参考模式。于《财数》与《财统》二书内,R 的使用方式应该已经相当熟悉了,故《衍商》已经可以恢复成正常的样貌;也就是说,书名虽有「使用R 语言」,但全书却看不到任何的R 程式,即所有的R 程式皆置于所附的光碟内,提供给读者参考。
《衍商》可以分成10 章介绍。《衍商》的第1 章,笔者是用直觉的方式来介绍四种基本的衍生性商品;第2章则介绍选择权合约的基本性质,比较特别的是,我们可用R 来检视一些选择权的交易策略。第3 章则介绍远期与期货合约交易,重要的是我们用「 随机过程」 来描述远期价格或期货价格。如前所述,无可避免地我们会使用一些数值方法来检视衍生性商品的价格,其中最基本或最简单的数值方法就是二项式定价模型,我们将于第4 章介绍。第5 章介绍BSM 模型,其中包括BSM 避险参数的检视。第6 章探讨蒙地卡罗方法于衍生性商品的应用,其中包括变异数降低法与准蒙地卡罗方法的介绍与使用。我们已经知道美式选择权价格因没有明确的数学公式表示,因此势必牵涉到不同的模型与估计方法,我们则于第7 章内比较上述模型与方法。第8 章则检视一些新奇选择权,比较重要的是界限选择权与多资产选择权的介绍。基本上,第1~8 章的内容,大多是集中于利率固定下,非利率衍生性商品的讨论,第9 章开始检视利率是一种随机变数,故可以探讨利率期货、交换交易以及利率交换合约。最后,第10 章介绍利率结构的特征以及讨论一些利率模型,其中用利率的树状图来介绍,则是该章的特色。
若读者已经习惯于《财数》或《财统》的使用方式,则《衍商》的学习应该很快就能步上轨道。其实,《衍商》的介绍仍是以初学者为对象,只不过内容较一般同类型的书籍更为深入,笔者仍是本着写出一本读者能看得懂同时也能实际操作的态度来完成。上述笔者的书籍若早在20 或30 年前出现,应该会对当时的笔者(笔者那时是年轻人) 有莫大的助力;换言之,遍寻不到令人满意的书籍,干脆由笔者自己来写,希望对读者有帮助。《财数》与《财统》二书的内容属于基础统计学与财务数学的介绍,故可以应用的范围可能较不切实际;不过,《衍商》的内容则较偏向于实务,笔者尽量避开繁琐的数学推导过程,取而代之的是电脑的操作,希望用此方式亦能让从事衍生性商品操作(包括权证的操作)的从业人员或投资人得到相关的专业知识。
笔者乐见读者的能力可以随着笔者的书籍成长并茁壮,举一反三,触类旁通,进入之前不曾想过的层次或境界;也许,长江后浪推前浪,未来财金专业的内容或学习方式会与目前完全不同。无法避免地,笔者也希望儿子能进入另外一种层次,因此仍附上儿子的一些作品,希望能更激励起儿子的斗志;另一方面,内人的逐字校正,亦让《衍商》增色不少。笔者才疏识浅,仓促成书,错误难免,望各界先进指正。
林进益写于屏东台糖
2018/7/23