程序化交易概要近期由于程序化交易而持续获取收益的交易者的增加,投资者对于程序化交易的关注度也逐渐升温。但是对于程序化交易的认识还仅仅是停留在用计算机交易或者是专业交易者使用的交易方法的层面上。为了进一步了解程序化交易,首先提出一个问题程序化交易!你是谁?如果让程序化交易来回答上述问题的话,答案应该是根据既定的交易规则,机械交易如此简单而已。稍微再扩展上述答案的话,应该可以解释为为了进行交易而设置入市和离市等一整套的规则,根据既定的交易规则机械交易的方法。如果单从这一层面上看,程序化交易和规则交易相同。但是我们把规则交易叫做程序化交易的原因是利用计算机等工具来制定一系列的交易策略,在交易策略实施的过程当中也保持一致性、规则性的进行交易。比如股价和移动平均线出现金叉则买入出现死叉则卖出的方法当中,用计算机语言编辑上述策略以后利用过去的数据进行回归测试,测试是否可以获取收益。如果测试结果显示是可以获取收益的交易策略的话,按照计算机里编程的交易策略的入市和离市信号进行交易即可。为了开发程序化交易策略,需要使用技术分析法。当然并不是说完全不能使用基本面分析法,只是基本面分析法是把分析的焦点对准个股的股价是否被高估或者低估的判断上,因此对于具体的入市和离市的时间点上很难交代清楚。另外,基本面分析法对于像衍生品市场等不适用基本面分析法的市场却束手无策。因此程序化交易是根据价格、交易量等信息来捕捉交易时间点的技术分析法为基础而发展起来的。同时,程序化交易所使用的数据是能够测量到具体数量的数据。在人为的交易当中个股的新闻和其他信息也可以成为是否交易的判断标准并且其价值在不同的交易者身上表现不同,因此不是能够客观的测量到数量的数据。在程序化交易过程中,为了要发出一贯性和客观性的信号,只能使用可以准确测量数量的数据。开发程序化交易策略始于交易构思。首先大致勾勒出交易构想,然后对于构想进行细分比如何时入市、何时离市等。截止决定入市和离市规则的过程和一般的规则交易一样。只不过程序化交易还包括把入市和离市的规则用计算机语言编辑出来并且对于已制定的交易策略进行多种多样的测试,从而判断是否可以获取收益的过程。利用经过上述过程而制定出来的交易策略进行一贯性、反复交易的过程我们称之为程序化交易,通过程序化交易进行交易的人我们称之为程序化交易员。程序化交易准备事项当我们接触到程序化交易,对于陌生的词汇以及是否要学习开发交易系统所需的各种各样的程序、英语、计算机语言等一筹莫展。并且针对系统语言和性能报告里的统计资料,都会显得无从下手。对于程序化交易大多数人都认为是综合了技术分析法、统计、数学、电脑编程、英语等的艺术,但是实际上我们不需要成为上述所有领域里的专家。程序化交易之所以觉得复杂而又难是因为我们没有接触过。那么,怎样开始接触程序化交易并为此我们需要做什么?第一,需要掌握技术分析法的相关知识。程序化交易以技术分析法为基础。技术分析法包括趋势分析、支撑阻力线分析、技术指标分析、波动分析等。其中为了程序化交易需要重点掌握技术指标分析法。多种多样的技术分析指标可以为开发交易策略提供构想并在决定入市和离市时间点上也会提供帮助。如果只利用价格开发交易策略的话,因表现力不足很难再继续制定新的交易策略。相反,如果充分利用价格波动的技术分析指标的话,将更加容易地开发出新的交易策略。在利用技术分析指标方面,尤为重要的是不能因为是经常使用的指标而忽略它。无论是图标分析师还是程序化交易员,大多数交易员都认为现在广为使用的技术分析指标不准确。那么现在广为使用的技术分析指标对于交易真的是无用之物吗?如果先说出结论的话,是广为使用的指标对于交易是最有用的。长时间一直被使用的指标可以认为是得到交易员的广泛认可的,也反映是最为有用的。因为所有人都使用所以没有太大的用处,这样的想法只是看到了技术分析指标的片面性而已。即使是分析图标的众多的交易员当中,能够准确的说出技术分析指标的计算公式的又有几个人呢?估计只有极少数的交易员能够准确的说出计算公式。每个技术分析指标都具有固有的特点。现阶段我们知道的指标就多达数百个。因此在众多的指标里先分析哪些指标就是一个非常头疼的问题。但是技术分析指标大致可以分为几种类型,其中我们只要重点掌握经常使用的移动平均线、MACD、RSI、随机指标、DMI、ADX等几种指标的话,其他的指标也可以迅速的掌握。只要先着重掌握经常使用的技术分析指标,然后可以逐渐向新的指标领域扩张。学习技术分析指标的过程中最为重要的不是背诵计算公式,而是理解指标的构成原理和背景。通过上述方法掌握的技术分析指标相关内容,会成为开发交易策略的原动力。第二,需要掌握编程能力。程序化交易是利用计算机把所有的交易用系统化的规则自动处理的过程,因此需要把自己勾勒出来的交易策略进行编程。这是把交易策略转换为计算机能够理解的语言的过程,因此需要掌握计算机编程能力。利用计算机语言编程交易策略的过程对于刚刚接触到程序化交易的人来说是最为困难的事情,但是比起计算机语言更为困难的是把交易策略客观的编辑的过程。第一次开发交易策略的交易员为了编程交易策略通常会使用图表或技术指标分析、趋势线分析、前高点/前低点分析、支撑阻力线分析、背离(Divergence)分析等等。但是上述方法具有致命的弱点就是主观性。比如编程出现双重底时入市的规则的过程当中,需要明确第一次见底和第二次见底的幅度并且要明确双重底的间隔和高度等等。上述方法可以依据分析师的主观判断会出现诸多不同之处,因此很难用客观的数据来定型。因此在第一次接触到计算机语言的过程当中,比起选择主观性较强的分析方法不如利用技术分析指标来编程基本的交易规则更为便捷。第三,需要程序化交易软件。程序化交易是开发完交易策略以后通过回归测试判断其有效性之后,才应用到实际交易当中。因此程序化交易软件必须要包含上述所有的功能。首先需要具备开发交易策略所需要的计算机语言,其次需要拥有对于已开发的交易策略进行测试的充足的数据。另外,还需要具备经过测试得出的各种测试结果报告书。开始程序化交易转变投资的概念首先为了选择并调整交易策略的构成要素,需要认识以下几种事项。第一,投资就像是经营企业。投资者即为企业家,要从整个公司的角度出发制定各个部门的业务并且要在适当的时机各个部门能够自行决定并执行部门业务而创造环境。要明确投资资金的预期回收期限和收集各种历史数据,并且根据上述资料制定事业计划书。成功的交易策略也是通过同样的方法开发出来的。那么各个部门的业务是什么1)建立头寸的部门2)平仓头寸的部门3)控制损失风险的部门4)分配及管理所有收益及损失的部门各个部门是构筑系统时以子系统的形式分割的。为了有效地管理资金,各个子系统里事先确定能够灵活对应头寸的规模、持仓期限、价格等信息,并且需要包含应急情况发生时的所有对策。另外,各个子系统之间不能存在摩擦和冲突。如果公司内部的部门之间发生严重的摩擦,如何展开工作呢另外,企业家也要考虑能否在运营当中克服感性和冲动的态度等等。如同所有公司的兴亡一样,在遇到困难的时候(发生亏损时)既不负责任也没有解决方法的话,公司的倒闭是必然的。决定公司的兴旺或者倒闭的因素是企业家是否拥有良好的业务能力和资格(交易员的能力)。有句话说炒股票体现人格的修养。即便是既聪明又高尚的人拿出自己全部的资产进行投资的话,也会重归人类本来的面目。这是股票市场常见的生理现象。对于市场的变化如何沉着应对,是与他的人格修养达到何种境界是息息相关的。这就意味着我们要思考的不是眼前的一次性的利益而是用长远的眼光确定损失最小化和利益最大化的目标(程序化交易的基本原则)。我们要牢牢记住,消除贪婪的人格修养是程序化交易成功的关键。符合自己的生活方式吗?无论是投资股票还是期货,投资行为必须要成为生活的一部分或者大部分。为了学习而买书、为了预测个股的股价变动而分析、为了实时看行情和交易而下单等等的时间并非是短时间的投入。此外,必须要考虑这种方式对自己的生活方式是否会造成障碍。大部分的投资者认为自己的这种投入从市场上得不到应有的回报。为了获取投资机会,要放弃休假吗?有没有根据交易策略而投资的充足的资金?有战胜风险的资金能力吗?有没有做好坚持既定的交易策略的心理准备?还是仅仅是跟着交易策略投资,如果不能获利的话就放弃?如果不考虑这种问题的话,我们很难开发出正确的交易策略。最坏的情况是放弃交易策略,用少量的资金从头开始也说不定。交易策略的开发和自己的生活方式是密切相关的。对于上述问题我们要有明确的答案并且要确信不疑。程序化交易策略仅仅是策略。首先我们要使用有助于分析的一些指标。而其中的秘诀是要理解它们所代表的原理。在开发交易策略的过程中,要对于投资者何时入市、何时获利离市、何时发生损失而平仓等等做出决定。开发出成功的交易策略所做的决定要建立在普遍和客观的规则之上。预测市场价格上升的时候入市,发生一些损失或者是获取高额收益时离不是程序化交易的原则,而仅仅是预测游戏罢了。从何开始刚开始接触程序化交易的交易员遇到的最大的困惑是要从哪里开始。成功的程序化交易包含以下四个要素。1)何时入市?2)何时获取收益并清仓?3)承受多少损失以后离市?4)何时投入多少资金并何时取出多少收益?只要充分考虑上述四个要素的话,就能够得到成功投资的基本原理。但是要充分考虑上述四个要素需要投入大量的时间和精力,并且这个过程是非常乏味和无趣的。因此我们需要懂得把这些乏味的工作变得有趣。那么具备上述四个要素就一定能得到令人满意的回报吗?在此过程中最重要的是加深对市场的了解。对于刚开始接触到交易策略的交易员来说,最重要的是要牢牢记住交易策略是机械化的。即一旦确定了交易规则就要排除感情因素,仅仅只是根据交易策略来投资。交易策略发出入市信号的时候,不能因为我今天不想入市而忽视交易策略。如果不遵守交易策略的话,没有必要开发和管理交易策略,并且会退步到之前的投资方法中去。但是,也不要对交易策略抱有太大的幻想。交易并很难。价格有可能上涨也有可能下跌,也有可能保持箱体趋势。因此为了交易策略可以适用于任何的价格变化,只要坚持以下四种基本原理就可以了。1)跟踪趋势(TrendFollowing)2)损失最小化(LossCut)3)收益最大化(MixProfit)4)资金管理(MoneyManagement)成功的交易策略是忠于上述原理并致力于证明上述原理和多种多样的尝试。下面让我们来证实交易策略的四种原理是否充实。1)跟踪趋势(TrendFollowing)有句话说趋势是我的朋友。仅仅依靠趋势进行的交易大部分都是以失败告终的,即使成功也很难持续获取收益。当然也有偶尔运气佳而获取收益的情况。跟踪趋势进行交易,看起来非常简单。但是趋势是什么?对此一定要有一个明确的定义。那么如何定义?即,现在市场是处于上升趋势还是处于下降趋势或者横盘趋势等等要有一个既定的指标。既定的指标可以是DMI或者是移动平均线等等。更为重要的是要有一个标准来衡量自己的交易策略是否和市场趋势是保持一致的。2)损失最小化我们要致力于减少损失,为此要提前一步进行交易。要制定发生损失的时候暂停投资的规则。另外,也需要制定风险对策。只有这样才能遵守暂停投资的规则。3)收益最大化获取收益的时候继续投资同样适用于市场清算方法(exitsystem),同时必须要坚持利用趋势的市场清算方法(exitsystem)。我们需要具备通过充分的调研能够把握市场趋势的能力。4)资金管理如何做好资金管理?这是限制风险原则的总结。在证券市场有些交易策略是非常有用的。因此要充分利用自己的资金管理系统,在发生亏损之前实施交易策略。开发交易策略的步骤开发交易策略的步骤根据每个人的情况都不同,但是一般分为收集信息阶段、制定交易策略阶段、测试及评价交易策略阶段、完善交易策略阶段等。只有在开发交易策略的过程中忠于每个阶段的工作,才能开发出最佳的交易策略。信息收集阶段1.买卖标的市场和商品选择开发交易策略的第一步是选择买卖标的市场和商品。即找出适合做程序化交易的商品为开发程序化交易策略的第一个步骤。1)选择流动性较好的商品一般来说,个人为