对于所有算法交易领域的新手来说,要找交易系统的所有细节内容将是困难的。今天的这篇文章,我们将带领大家了解交易平台系统设计的一些知识。
概要
认知计算(Cognnitive computing)是一种学习系统,有规模、有原因、有目的地学会和人类交互。
认知计算和认知技术是未来工程系统的游戏改变者。金融市场的复杂性迫使人们使用日益复杂的交易系统。算法交易是近年来金融业讨论最多的问题之一。在当今竞争异常激烈的投资中,金融机构感到越来越需要技术来帮助他们实现一些他们人工无法做到的事情。
在这种情况下,系统交易和算法交易起着至关重要的作用。
自2006年以来,算法交易已成为主流。算法技术及其驱动技术现在对在交易所和场很多金融工具产生了重大影响。在各种资产(包括股票、期货、期权和外汇)中使用算法交易。甚至在博彩中也有应用。
现代交易系统包括复杂的人工智能(AI)技术,并且在高速发展中。因此,拥有一个交易系统模型可以方便指导开发人员和交易者在系统开发的每个阶段知道所处的位置。系统和认知理论可以帮助实现这一目的。
人工智能的关键基本假设是,思维是一种特定种类的计算实体,即认知系统,它可以通过各种物理设备来实现。它们可能是大脑,传统的通用计算机或其他形式的硬件或软件。
人工智能、认知科学、神经科学和机器人技术有助于我们理解复杂的学习任务,尽管它们各自基于不用的角度指导研究。不同之处在于:
我们的目的是了解认知交易系统Cognitive Trading System (CTS)模型,该模型从更一般的意义上定义了交易系统模型。此模型的目的是:
认知交易系统
这里我们提出以下定义:认知交易系统(CTS)是一组相互作用的实体,它们形成一个统一的组织,受其环境的影响,受限于其实施和时间限制。它以其认知结构和功能来描述,其目的是通过在金融市场上交易资产来获取财富。
这里有一些解释:
因此,一个认知交易系统是由从环境中接收信息、处理信息和通过执行交易操作而采取行动的所有必要元素组成的。
在计算机时代之前的几年里,一个“场内交易者”+电话或电报,本身就是认知交易系统。
然而,目前我们可以看到非常复杂的交易系统,其中很大一部分信息处理(认知任务)是由人工智能的专属模块执行的。然后我们可以说,认知任务在交易者和机器之间是共享的,即使越来越多的任务是由机器执行的,从而使人类交易者只能执行高层的认知任务,例如策略的制定或者全球风险的控制。此外,该机器已经从一台简单的计算机演变成了一个有着云端分布的复杂网络集群。因此需要有一个系统模型来设计当前复杂的交易活动。
因此,我们可以将认知交易系统视为一个扩展,它不仅包含行业中传统上使用的概念,例如交易算法、量化交易、交易策略、交易系统、交易架构、数据输入及其处理等,还包括由参与交易任务的人员(交易员、风险管理人员、系统管理人员等)执行的心理过程。这些目前人类最典型的心理过程(情境分析、目标设置、策略制定、实现、问题解决等)也可能很快由机器来执行。为此,认知交易系统旨在识别可以随时自动执行的任务,并将这些任务转移到机器上。然后,认知交易系统将作为一个设计和监控地图,以了解日益复杂和不断发展的交易系统的性能。
指南
当我们建立一个交易系统模型时,我们需要考虑对该系统和模型的期望。下面我是一些需求。
认知架构
认知架构是通用人工智能研究的一部分,该研究始于1950年代,旨在创建能够在不同领域中推理问题、开发想法、适应新情况并反思自己的程序。
认知架构的目标是为人类思维建模,最终允许在人类层面构建人工智能。为此,认知架构试图提供特定机制来产生智能行为的证据。人工智能可以通过四种不同的方式执行:
现有的认知架构已经探索了这四种可能性。我们要强调的是,现代交易系统需要具有良好的软件和硬件架构,但也需要认知架构。这样,就有可能以灵活的方式将人工智能应用于金融市场的所有进展整合起来。
在附录中,我们有一个当前正在实施和成熟的主要认知架构的列表。
在下一节中,我们将描述心理
模型,该模型允许我们指定认知交易系统模型是如何的。这个标准模型凝聚了三种认知架构,即:Soar、ACT-R和Sigma。然而,其使命是覆盖尽可能多的兼容模型。这就是为什么它是我们认知交易模型的良好基础。
具有思维风格标准模型的认知交易系统模型
心理模型(SMM)分为结构和处理、内存和内容、学习以及感知和行动。该模型表示作者对AAAI专题研讨会上通过的纲要提出的共识的理解,主要基于以下三种感兴趣的认知架构:
这是一个共识模型,因此,它不是普遍接受的,毕竟它不需要一致性:它是一种试图提
供连贯的总结以及在该领域广泛共享的一系列假设的尝试。
虽然原则上心理模型(SMM)很好地适应了上面提到的三种认知体系架构,但如果需要的话,仍可以继续添加当前或将来的其他架构,并进行相应的调整,这没有任何障碍。我们已经用组件的概念取代了codelet的概念,组件的概念更广泛地应用于金融行业软件的设计中。然而,已经有严格的codelet实施方式可以使完整的交易系统构建可行。
认知交易系统架构定义了如何将信息组织和处理成组件,以及信息如何在组件之间流动。该模型假定具有不同功能的独立模块构成一个认知交易系统。
下图1显示了基于心理模型提出的认知交易系统架构的结果。
认知交易模型的主要组成部分包括:
它可以作为设计和开发各种交易系统的模型。它是一个模型,所以它必须进行更改和修
改,以适应设计需要。
我们可以将每个模块看作是整体的,或者可以进一步分解为多个模块。
作内存缓冲器是:
在PC和AC模块之间的直接连接外,WM还充当组件之间的组件间通信缓冲区。我们可以将其视为单一的,或者由单独的特定于形式的内存(例如,市场数据、视觉数据等)组成,它们共同构成一个汇总的工作内存。
DLTM、PC和AC模块都只能访问和修改有关联的工作内存缓冲器,而程序式内存可以访问
所有工作内存。所有长期内存都具有一种或多种相关的学习机制,这些机制可根据架构的处理自动存储、修改或调整信息。
图1:基于心理模型的认知交易系统模型概述,其中主要模块是可观测的。检验(研究)和生产环境理想情况下应该是相同的。
我们已经表示了与生产环境分离的检验环境,因为它是一种常见的实践,但其思想是两个环境都集成在相同的认知结构中。也就是说,这种分离应该被认为是象征性的,因为交易系统的整个认知结构形成了一个整体。
认知交易系统模型
在本节中,我们将介绍认知交易系统模型的主要模块。图2显示了认知交易系统模型的概述。组件的名称遵循多用途增强认知架构和认知系统工具包参考架构。认知交易系统的概念从不同的来源继承了许多想法。首先,认知交易系统是心理模型的一个实例。这意味着认知交易系统分为五个模块。该模型四一个连接三种类型元素的网络:组件、内存和容器(将内存分组在一起)。模型的所有输入和输出都是由“感知”和“外部动作”模块单独完成。认知交易系统的输入由感觉组件(在图的左下方)完成,它们复制收集输入数据并填充“感觉内存”。认知交易系统的输出由“外部动作”组件执行,该组件从“外部动作”存储器中收集数据,并负责将这些数据发送到系统执行器(包括订单管理系统)。
图2:认知交易系统模型,它是可见的模块组件的详细试图
架构指南
接下来,我们将描述设计者在认知交易系统时应考虑的所有内容。此描述应作为一个设计检查清单。
结构和加工
认知交易系统的结构定义了如何将信息和处理组织为组件以及信息如何在组件之间流动。
行为是由认知周期中的顺序行动选择所驱动的。在人类认知中,这最后一次以每个周期50毫秒的速度运行,但对于机器周期,可能是以纳秒的顺序运行。
复杂的行为源于一系列在其本地环境中运行独立的认知周期,而没有用于全局优化的单独的架构模块(或规划)。
感知
无论其设计和目的如何,交易系统都不能孤立存在,需要输入来产生行为。感知通道是将原始输入数据转换为系统内部表示的过程。它将外部信号与关联的元数据转换成符号和关系,并将结果放入工作存储器中的特定缓冲器中。该系统可以有许多不同的感知模块,每个模块都有不同模态的信息(请参见下面可能的数据类型),每个模块都有其感知缓冲区。
根据源的来源和数据项的属性,可以区分多个模块:最常见的是:
自然,许多系统的架构都实现了其中的一些,以及其他与市场没有明确关联但以人类为象征性入口的模式以及各种传感器,甚至来自其他系统的预测。
根据其能力,交易系统可以出来各种数量和类型的数据作为感知输入。在本节中,设计人员必须调查交易架构中使用的数据项的多样性。另外,从这些来源中提取什么样的信息以及如何应用它。
感知将外部信号与相关的元数据转换为符号和关系,并将结果放入工作内存中的特定缓冲区中。该系统可以有许多不同的感知模块,每个模块都有不同模态的信息(请参见上面可能的数据类型),每个模块都有其感知缓冲区。
感知在特定的工作内存缓冲区中生成具有关联元数据的符号结构。
注意(过滤)
通过“注意”,我们想命名输入数据将提交到的所有过滤器和选择策略。
感知注意在交易系统的信息处理中起着至关重要的作用,因为它介导了相关信息的选择并过滤了输入数据中的无关信息。然而,将注意力看作一个决定处理什么或不处理什么的整体式过滤器将是错误的。我们必须将注意力理解为影响感知和处理任务的一系列机制。当前,对价格和成交量数据的处理以及系统入口处缺少任何数据,仍然是研究最多的关注形式。最后一点是因为只有少数架构具有有效过滤新闻或图像数据的基础机制。此外,注意组件还包括风险管理过滤器。
该模型假设存在一个注意瓶颈,该瓶颈限制了工作内存中可用的信息量,但并未在感知模块内纳入有关信息的内部表示(或处理)的任何妥协。
外部操作
外部操作通道通过订单管理器将符号结构及其存储在缓冲区中的元数据转换为订单。与感知通道一样,可以有多个订单模块。尽管风险控制(注意)系统监督对订单的最终控制。
操作选择在任何时间点都会决定“下一步做什么”。“什么”部分涉及决策,而“如何”部分涉及操作(运动)控制。在我们的交易环境中,运动操作是涉及订单管理相关动作的外部操作。
然后在“外部操作”模块和工作存储器中涉及操作。
我们区分了三种主要的操作类型:
选择类型:
选择标准:
执行反应操作,绕过操作选择。这些操作是典型的风险管理系统(RMS),必要时可以完全控制该系统。
最后,学习也会形象操作的选择。请记住,这些操作选择机制并非互斥,大多数交易系统都不止一个。
内存
内存是任何交易系统的重要组成部分。内存系统存储中间的计算结果,允许学习并适应不断变化的环境。然而,尽管它们在功能上相似,但是内存系统的具体实现却有很大的不同,这取决于研究目标和概念上的限制,例如编程语言、软件架构、框架的使用、软件范例。在认知架构中,内存是根据其持续时间(短期和长期)和类型(程序性、声明性、语义性)来描述的,尽管它不一定作为单独的知识存储来实现。
我们遵循内存惯例:
学习
学习是一个系统随时间的推移而提高其性能的能力。经验是任何学习(反馈)的基础,因此,一个交易者或交易系统本身能够从观察到的事件或其行动结果中推断出事实和行为。学习的类型及其实现取决于许多因素,例如设计范例、应用场景、数据结构和用于实现体系架构的算法等。Squire定义了学习的陈述性和非陈述性类型,Breazeal等人描述了启动:
声明性或显式项非声明性,包括类型:
推理
推理是逻辑和系统地处理知识的能力。这种推理几乎可以影响或构建任何类型的交易系统。结果,除了经典的逻辑推理三合一外,还考虑了其他类型的推理,如启发式推理、可辩护推理、类比推理、叙述推理,甚至道德推理。所有的交易系统都必须与实践推理有关,实践推理的最终目标是找到并实施下一个最佳操作,而不是旨在建立或评估信念的理论推理。为了构建一个具有非平凡能力的交易系统,需要设计师进行大量的推理和规划。推理与计划、决策和学习,以及对语言、情境和问题解决的感知、理解密切相关。
元认知
元认知,直观地被定义为“思考思想”,是一套能够内省地监控内部过程及其原因的技能。由于识别、解释和纠正错误决策的实际需要,人们对交易系统的元认知的发展越来越感兴趣。我们将关注三种最常见的元认知机制,即:
自我观察
自我分析
自我调节
实际应用
因此,使用此模型,我们可以映射所有类型的实际交易架构。下面的示例是一个交易架构,该交易架构是根据[Reid,2013年]设计的原始“算法交易系统”进行改编和修改而成的,在那里,我们可以看到粉红色的高级认知操作仍然存在于人类智能的特定领域中。该任务代表了走向全自动交易系统的研究机会领域。这些领域包括:
图3:根据[Reid,2013年]算法交易系统架构改编的认知交易系统模型实际应用。
结论
我们提供了金融市场中使用的交易系统的扩展定义,以及基于该系统被我们称为“认知交易系统”的认知架构。我们以心理模型为参照,提出了一个“认知交易系统”的模型。我们已经描述了主要模块以及此类模块的主要组件。最后,基于一个实际的交易系统架构,我们给出了该模型的具体应用实例。我们未来的工作将致力于提供每个模块及其可能实现的更重要细节。我们的目标也是利用这个模型来研究当前交易系统可能的改进之处。
附录:认知架构
4D-RCS https://github.com/usnistgov/rcslib
ACT-R http://act-r.psy.cmu.edu/software/
AIS http://www-ksl.stanford.edu/projects/BB1/bb1.html
APEX http://apex-autonomy.sourceforge.net/
ART http://techlab.bu.edu/resources/software/
ASMOhttps://github.com/airobots/asmo_python, https://github.com/airobots/asmo_ros
BECCA https://github.com/brohrer/becca
CAPS http://www.ccbi.cmu.edu/4CAPS/4caps-v1-3.2.6.lsp
CERA-CRANIUM https://github.com/raul-arrabales/OpenCranium,https://github.com/raularrabales/crubots
CHREST https://github.com/petercrlane/chrest
CLARION https://sites.google.com/site/clarioncognitivearchitecture/downloads
CogPrime https://github.com/opencog
CoJACK http://aosgrp.com/products/cojack/download_cojack.html
Copycat/Metacathttp://science.slc.edu/~jmarshall/metacat/Metacat-1.1.zip,
http://web.cecs.pdx.edu/~mm/how-to-get-copycat.html
CoSy http://www.cognitivesystems.org/software.asp
Darwinian Neurodynamicshttps://osf.io/7xfh2/
DIARC http://ade.sourceforge.net/
HTM http://numenta.org/
ICARUS https://github.com/ghballiet/acsjournal/tree/master/app/webroot/courses/langley/aicogsys11/Icarus
iCub http://wiki.icub.org/wiki/ICub_Software_Installation
Leabrahttps://grey.colorado.edu/emergent/index.php/Leabra,
https://grey.colorado.edu/emergent/index.php/Main_Page
LIDA http://ccrg.cs.memphis.edu/framework.html
MicroPsi https://github.com/joschabach/micropsi2
MIDCA https://github.com/mclumd/MIDCA
MusiCog http://www.sfu.ca/~jbmaxwel/MusiCog/downloads.html
NARS https://github.com/opennars/opennars/wiki
NEUCOGAR https://github.com/research-team/NEUCOGAR
OSCAR http://johnpollock.us/ftp/OSCAR-web-page/oscar.html
Pogamut http://pogamut.cuni.cz/main/tiki-index.php
PRODIGY http://www.cs.cmu.edu/afs/cs.cmu.edu/project/prodigy/Web/Distribution/distrib.html
Sigma https://bitbucket.org/sigma-development/sigma-release/wiki/Home
Soar https://github.com/SoarGroup
SPA (Spaun) http://www.nengo.ca/download
STAR https://github.com/TsotsosLab/STAR-FC
Xapagy https://github.com/Xapagy/Xapagy