您好,欢迎访问三七文档
人工模拟股市(Java版)人工股市(ArtificialStockMarket,简称ASM)是模拟股市运作的一个程序。在这个电脑中的虚拟市场中,若干被称为交易者的人工智能程序(Agent)通过观察它们所在的数字世界中股价和股息的不断变换而做出预测,并且根据这些预测做出购买股票与否以及购买股票数量的决策。反过来,所有的交易者的决策又决定了股票的价格,这样,整个的股票交易市场就构成了一个自我封闭的计算系统。同时,这些交易者都具有学习的能力,可以根据以前预测的成功或者失败对自己的决策进行调整,并且通过一种被称为遗传算法的方法产生创新能力。总之,ASM是一个电脑中不断进化的虚拟股票市场!通过研究ASM,我们可以更好的理解现实世界的行为,并且它提供了一个很好的现实股市的隐喻。程序运行说明:点击下排的开始按钮,则股市开始运作。首先,程序需要对每个Agent和整个世界进行初始化,然后才进入ASM的实际运行阶段,这个时候,你可以点击曲线图、柱状图等按钮察看世界运行的情况,得到价格、股息等信息的直观显示。当点击结束的时候,股市停止运行,这个时候你可以设置一些参数,再次点击开始可以在新的参数下运行程序。察看规则部分可以让你看到每个Agent的内部规则,并且可以看到它们与真实世界价格、股息、编码的对比情况。点击暂停按钮后,你还可以单步运行股市。详细说明:1、参数说明:遗传算法概率:每隔多长周期执行一次遗传算法。变异率:执行遗传算法的时候,变异操作的概率。交叉率:执行遗传算法的时候交叉操作的概率。Agent的数量:进行股票交易的交易者数量。规则的数量:每个Agent所拥有的预测规则的数量。2、图形说明:世界的状态显示的是有关整个股市的状况,包括股价、股息等等,风险中性价格即股息/利息的值。Agent的状况则显示了每个Agent的变量的变化趋势。曲线图画出了单一变量与时间的关系,柱状图主要显示了各个变量的Agent之间的对比情况。3、关于图形操作:曲线图,可以在一个坐标系下察看两种变量的情况。蓝色表示一个变量,红色表示另一个,可以从下面的选择框选择不同的变量。关于柱状图,可以变换不同的变量察看情况。4、关于规则察看的操作:在上面列表中显示了当前的Agent拥有的所有的规则,选择最下方的Agent编号,可以察看不同的Agent的规则,选择中间的察看方式:全部规则还是激活规则则可以分别察看当前Agent的所有规则和被激活的规则。点击列表框中的一个规则,则在下面的文本框中显示了该规则的具体对应的条件部分的编码,和代表的预测意义。世界状态则表示了当前世界股票价格、股息等变量的二进制编码。下面显示的价格和股息都是当前股市的股价和股息。人工股市(ASM)介绍张江1、经济系统、股票交易系统中的复杂性新古典主义经济学告诉我们,我们赖以生存的经济系统是由若干被称作“经济人”的个体组成的,这些“经济人”具有完全的理性、并且对整个市场的具有完全信息,因此经济学家证明了,市场最终将处于一种均衡的状态,在这种状态下需求量刚好等于供给量,并且在没有外部的干扰条件下,系统将静止不再演变。然而看看我们身处的经济系统,它并不是理论家们预言的那个样子。首先经济中的个体并不是全知全能且具有完全理性的,当然这些个体也不是完全随机相互作用的一群无规则运动的分子,他们更像是处于完全理性与随机性之间的一种状态。关键是,这些个体是具有学习功能的,他们并不是像一台计算的机器一样总是做出理性的判断和决策,而是通过经济活动的实践逐渐积累经验,通过与其周围有限环境内的其它经济个体的交互中,慢慢的适应,从而进行有限理性的行为。当环境发生变化的时候,他们往往可以调整自己的策略,从而使得自己能够尽量的谋得经济利益。由这样的适应性个体组织成的经济系统是一个复杂的系统,而且这个系统会因为每个个体的不断调整从而永不停息的变化着,似乎现实的经济系统从来不会平衡下来,而是象一个有机的生命体一样始终处于复杂的运动变化当中。复杂系统的方法[1]致力于用一种全新的观点理解经济系统中的复杂性。在微观上,首先,按照前面的叙述,人们扬弃了完全理性、全知全能的“经济人”的假设取而代之的是能够学习和适应环境的运用归纳法决策的有限理性人。其次,在微观上,人们用“规则”代替计算来给每一个个体进行建模;在宏观上,人们扬弃了简单的还原论思想—即认为研究清楚系统组分的行为就相当于认识了系统的行为思想,把经济系统就看成是由若干相互作用的个体进行复杂交互的复杂系统;在方法论上,人们扬弃了纯粹的数学推理的方法,取而代之的是计算机模拟技术。股市无非是若干复杂经济系统中的一个特例。传统的股市模型假设股票交易者根据全局的行情进行完全理性的判断,并利用理性的预期进行决策。在这种模型的假设前提下,股市更像一个“死”的物理系统。而现实的股市远不是如此,人们常常用诸如“股市持续低迷”、“狂涨”等等类似描述人类心理现象的语言描述股市,而且还常常出现类似“黑色星期五”这种有关股市心理的现象。由此可见,我们需要用复杂系统的理论来对其进行重新的理解,看看能够得到什么结果。“人工股市”[2](ArtificialStockMarket简称ASM)是由圣塔菲研究所(SantaFeInstitute)的W.BrianArthur和JohnHolland于1987年提出来的一个模拟股市运作的计算机系统,它用具有学习能力的AI(人工智能)程序代替全知全能的股票交易者,在电脑中重建一个模拟的股票交易环境,看看在这样的计算机世界中能不能得到与现实股市相近的数码股市的拷贝。在下面的讨论中,第2节概述了人工股市系统的运作机理,第3节详细介绍模型的内部结构,其中包括股市环境、相互作用的作用者模型、学习算法等等细节问题。第4节介绍系统的运行情况与仿真结果,看看这样一种有归纳的作用这形成的股市系统到底有什么神奇之处。2、ASM系统模型概述2.1、系统结构ASM系统主要分成两个大部分,一部分是股票交易者(我们称其为Agent,意为智能代理),另一部分是每个Agent所面临的环境。它主要模拟了单一股票的交易情况(也就是说市场上仅仅有一种股票发行)。其中Agent模型又是由预测规则、效用函数、财富状态以及参数集合四个部分组成的。预测规则是形如if[condition]then[result]这样的规则,其中[condition]部分都是经过编码后的01序列抽象信息,[result]是当agent采用当前规则所采取的动作。为了模拟现实中的交易者的多样性,每个Agent都有一组不同的规则,而且学习效应是在规则层次体现的。具体说来,就是Agent通过不断的运用规则对股票的价格进行预测从而进行买入或者卖出或者持有的决策,然后根据预测的后果来对他们运用的规则进行评价,从而确定每个规则作用的排序,然后运用一种称为“遗传算法”的方法模拟大自然的优胜劣汰,淘汰掉评价不好的规则,同时产生新的更好的规则。Agent的效用函数表达了每个Agent对股票价格以及股票持有量之间的偏好,给定当前的股票价格、该Agent对未来股价的预期就可以得到Agent对股票持有的需求量。为了设计简便,系统给每个Agent设计了同一类型的效用函数。Agent的财富状态主要包括当前该Agent的股票持有量和现金量。Agent的参数集合定义了Agent在运行过程中的不同行为参数,包括效用函数的具体参数、遗传算法的参数、最大(小)持有股票量等等。ASM的环境主要包括下列几个部分:股市的状态以及状态的历史信息、一个分析专家、一个随机股息流(可以认为单一股票的股息是由外部不确定信息确定的)、股市的参数集合。具体说来,股市的状态包括了股票当前的价格、股息、利率、风险中性价格(也就是利率与股息的比值)、股票交易量。状态历史就是股市状态在最近几期内的历史纪录,其中历史的记录长度是事先由用户给定的,系统还会根据当前的股市状态以及状态的历史信息进行编码从而得到一串01编码传递给Agent,Agent根据这些编码可以查找哪条规则的condition部分与其匹配从而激活这条规则进行预测。分析专家的作用是根据市场供求关系确定股票的交易价格等作用。随机股息流就是一个满足正态的独立同分布的随机过程。参数集合定义了股市运作过程中的一些参数,包括历史纪录的长度、正态分布的具体参数等等。综合起来,我们可以得到下面的三个图分别来说明Agent的结构、股市环境的结构,以及Agent与股市的相互作用结构。图1图2图32.2、系统运行系统的运行是在离散的时间基础上周期性的不断演化的。在每个周期内,Agent要完成决策、学习的运作,环境完成交易并保证股票市场的出清。Agent在进行决策时需要根据股市上的信息不断利用自己的规则对股票的价格进行预测,然后根据这个预测的结果与自己的偏好进行是应该抛出股票还是买进股票或者是持有当前的股票坐吃股息的决策。如果Agent抛出股票,这能够为他在短期内赚取一定量的现金,并且持有现金可以让他在每个周期内赚取现金的利息,但是同时他的股票减少了,因此它损失了股票的股息;如果Agent买进了股票,那么它的现金少了并损失了现金的利息,但同时它能够争取更多的股息;如果Agent不采取任何动作,虽然它能够坐吃股息和利息但是它同时要被征税,征税是根据Agent的总资产即股票价值与现金价值的总和决定的。因此从整体上,每个Agent必须对自己是否买进或者卖出股票做出决策,同时征税保证了每个Agent不能永远停止不动(否则它的财富会被征税征收光)。而因为股息是一个随机过程上下波动,所以每个Agent对股票的需求量和供给量就会随时间变化,通过需求与供给的相互竞争的结果决定了股票的当前价格,而股票的价格又反过来决定了每个Agent的财富拥有量。因此我们看到,我们得到了一个封闭的系统,在这个系统中Agent的决策决定了系统的环境状况,环境的状况同时又影响了每个生存在这个环境中的Agent拥有的财富。当系统多次循环以后,每个Agent便有机会对自己所采用过的规则进行评价。因为在每一种环境中,Agent都有机会选择很多与当前情况匹配的规则做出决策,而显然这些规则有些能够很好的预测了股票的价格,有些不能够预测,因此这就造成了规则按照评价结果的排序。利用遗传算法对这些规则进行优胜劣汰并创造新的规则就能完成Agent的学习过程。Agent在学习变得越来越聪明的同时也会影响整体股市环境,而上文已经说了股市翻过来会再次影响Agent的行为,这样我们可以看到,人工股市是一个多个Agent共同进化的生态环境。在系统运行的初始时刻,我们先给每个Agent分配了等量的现金和股票持有量,让他们有一个平等竞争的开始,但随着系统的运行,有些Agent能够对环境的变化做出积极的反应,有些不行,因此贫富差距开始加大,总之整个系统的动态只有在运作系统后才能看出来,运用ASM我们可以观察到很多真实股市中的有趣现象。3、ASM的系统结构和算法上一节,我们简单的介绍了ASM的结构和运行机理,对人工股市有了一个感性的认识,下面我们要详细的介绍人工股市的内部结构和具体的运行算法。详细介绍主要分环境和个体两部分进行。3.1、股市环境在上一节我们已经大概介绍了股市的环境由股市的状态以及状态的历史信息、分析专家、随机股息流、股市的参数集合这五个部分组成,下面分别进行介绍:3.1.1、股市状态及状态历史编码在ASM模型中,股市的状态包括下面这些量:当前的仿真周期(用t表示)、t周期内的股票价格(用pt表示)、当前股票的股息(用dt表示)、当前的现金利息率(用r表示,在我们的模型中假设r不随时间变化)。这些状态信息中,只有pt和dt是常常随时间变化的,他们都可以用实数来表示,这样状态的历史就记载了从t-h期到t期的pt和dt的历史信息。所以,状态历史可以用下面的集合表示:(1)其中参数h为历史记忆的深度,t-h期以外的状态将被“遗忘”,每进行一个新的周期则历史信息更新一次。为了能够让Agent使用的规则识别出当前环境的整个运行状态及信息,我们需要对状态历史信息进行编码。在这里我们用一个60位长的二进制串对股市的状态历史编码
本文标题:人工模拟股市
链接地址:https://www.777doc.com/doc-2704168 .html