在使用算法交易时,交易员将其辛苦赚来的钱信任他们使用的交易软件。 正确的计算机软件对于确保有效,准确地执行贸易订单非常重要。 有故障的软件,或没有所需功能的软件,可能会导致巨大的损失。
算法交易快速入门
算法被定义为一组特定的逐步说明以完成特定任务。 无论是像Pac-Man这样的简单易上瘾的计算机游戏,还是提供大量功能的电子表格,每个程序都基于基础算法遵循一组特定的指令。
算法交易是使用计算机程序的过程,该计算机程序遵循一组用于下达交易指令的定义指令。 算法交易程序的目的是动态地识别获利的机会并进行交易,以便以人工交易者无法匹配的速度和频率来产生利润。 由于具有更高的准确性和闪电般的执行速度的优势,基于计算机算法的交易活动获得了极大的欢迎。
谁使用算法交易软件?
算法交易主要由大型交易公司(例如对冲基金,投资银行和自营交易公司)主导。 鉴于其规模庞大而资源丰富,这些公司通常会构建自己的专有交易软件,包括具有专用数据中心和支持人员的大型交易系统。
在个人层面,经验丰富的专有交易员和量化交易员使用算法交易。 不太懂技术的专有交易者可以购买现成的交易软件来满足其算法交易需求。 该软件可以由其经纪人提供,也可以从第三方提供商处购买。 Quants在交易和计算机编程方面都具有丰富的知识,他们自己开发交易软件。
算法交易软件:构建还是购买?
有两种访问算法交易软件的方式:构建或购买。
购买现成的软件可提供快速,及时的访问权限,而您自己构建的软件则具有完全的灵活性,可根据您的需求进行定制。 自动交易软件的购买成本通常很高,并且可能充满漏洞,如果忽略这些漏洞,可能会导致损失。 软件的高昂成本也可能吞噬您从算法交易中获得的实际利润潜力。 另一方面,自行构建算法交易软件需要花费时间,精力和深厚的知识,但这仍然可能并非万无一失。
算法交易软件的主要功能
自动交易涉及的风险很高,可能导致巨大的损失。 无论您决定购买还是建造,熟悉所需的基本功能都是很重要的。
市场和公司数据的可用性。 所有交易算法均设计为根据实时市场数据和报价行情。 还定制了一些程序来说明公司基本面数据,例如EPS和P / E比率。 任何算法交易软件都应具有实时市场数据馈送以及公司数据馈送。 它应该作为系统的内置组件提供,或者应具有可从备用来源轻松集成的功能。
与各种市场的连接。 希望在多个市场上工作的交易者应注意,每个交易所可能以不同的格式(例如TCP / IP,多播或FIX)提供其数据Feed。 您的软件应该能够接受不同格式的提要。 另一个选择是与彭博社和路透社这样的第三方数据供应商合作,它们会汇总来自不同交易所的市场数据,并以统一的格式将其提供给最终客户。 算法交易软件应该能够根据需要处理这些汇总的提要。
潜伏。 这是算法交易的最重要因素。 延迟是在数据点从一个应用程序移动到另一个应用程序时引入的时间延迟。 请考虑以下事件序列。 价格报价从交易所到软件供应商的数据中心(DC)的时间为0.2秒,从数据中心到达交易屏幕的时间为0.3秒,交易软件处理收到的报价的时间为0.1秒,交易时间为0.3秒。它可以分析和进行交易,您的交易订单到达经纪人需要0.2秒,经纪人将您的订单传送到交易所需要0.3秒。
经过的总时间= 0.2 + 0.3 + 0.1 + 0.3 + 0.2 + 0.3 =总1.4秒。
在当今充满活力的交易世界中,原始报价在这1.4秒内会发生多次更改。 这种延迟可能会破坏您的算法交易业务。 人们需要将这种等待时间保持在尽可能低的水平,以确保您获得最新,最准确的信息而没有时间间隔。
延迟已减少到微秒,应尽一切努力将其在交易系统中保持尽可能低的状态。 一些措施包括直接连接到交换机,以消除中间的供应商,从而更快地获取数据。 通过改进您的交易算法,使分析和决策所需的时间少于0.1 + 0.3 = 0.4秒; 或取消经纪人并直接将交易发送到交易所以节省0.2秒。
可配置性和自定义。 大多数算法交易软件都提供标准的内置交易算法,例如基于50天移动平均线(MA)与200天移动平均线交叉的算法。 交易者可能想通过将100天MA切换为20天MA进行试验。 除非软件提供此类参数自定义设置,否则交易者可能会受到内置固定功能的限制。 无论是购买还是建造,交易软件都应具有高度的自定义和可配置性。
编写自定义程序的功能。 Matlab,Python,C ++,JAVA和Perl是用于编写交易软件的常用编程语言。 第三方供应商出售的大多数交易软件都可以在其中编写您自己的自定义程序。 这允许交易者尝试并尝试他或她开发的任何交易概念。 显然,首选使用您选择的编程语言进行编码的软件。
历史数据的回测功能。 回测模拟包括测试历史数据的交易策略。 它根据过去的数据评估该策略的实用性和获利能力,并对其成功(或失败或任何需要的更改)进行认证。 此强制性功能还需要伴随历史数据的可用性,可以在其上执行回测。
与交易界面集成。 算法交易软件会根据所需标准的出现自动进行交易。 该软件应具有与经纪人网络进行交易所需的必要连接性,或与交易所发送交易订单的直接连接性。
即插即用集成。 交易者可能同时使用Bloomberg终端进行价格分析,使用经纪人的终端进行交易以及使用Matlab程序进行趋势分析。 根据个人需求,算法交易软件应具有易于即插即用的集成以及跨此类常用交易工具的可用API。 这样可以确保可伸缩性以及集成性。
独立于平台的编程。 一些编程语言需要专用平台。 例如,某些版本的C ++只能在某些操作系统上运行,而Perl可以在所有操作系统上运行。 在构建或购买交易软件时,应优先考虑与平台无关并支持平台无关语言的交易软件。 您永远不知道几个月后您的交易将如何发展。
引擎盖下的东西。 俗话说:“哪怕一只猴子也可以单击按钮进行交易。”对计算机的依赖不应盲目。 交易员应该了解幕后情况。 在购买交易软件时,应该要求并花一些时间浏览详细的文档,这些文档显示了特定算法交易软件的基本逻辑。 避免使用任何交易软件,它们都是一个完整的黑匣子,并声称是秘密的赚钱机器。
在构建软件时,请对所实施的内容保持现实,并明确可能会失败的情况。 在投入真钱使用之前,请对其进行彻底的回测。
从哪里开始?
所有现成的算法交易软件通常会提供免费的有限功能试用版或具有完整功能的有限试用期。 在进行任何试用之前,请对它们进行全面研究,然后再购买任何东西。 不要忘记详细阅读可用的文档。
底线
算法交易软件购买成本高昂,并且难以自行构建。 购买现成的软件可提供快速,及时的访问,而构建自己的软件则具有完全的灵活性,可以根据您的需求进行自定义。 在尝试使用真钱进行算法交易之前,您必须完全了解交易软件的核心功能。 否则可能会造成重大损失。