打字猴:1.703559189e+09
1703559189 机械式交易系统:原理、构建与实战 [:1703558332]
1703559190 机械式交易系统:原理、构建与实战 数据类型
1703559191
1703559192 决定了使用日线级别数据来测试某系统后,测试者有关数据的决策问题仍未完全解决。历史模拟测试通常使用的日线数据有3种:实际合约数据、永续合约(perpetual contract)[1]数据和连续合约数据。数据的选择会影响测试的程序与结果。
1703559193
1703559194 每项商品在任何一个交易日内都可能有2~12个交易活跃的不同交割月份合约。举例来说,在1月份的第1个星期内,你可以交易当年1月、3月、5月、7月、8月、9月或11月交割的大豆合约,或隔年1月交割的大豆合约。利率与贵金属合约则涵盖未来两年之内的交割月。你选择哪些日线价格来进行测试呢?在回答这个问题之前,必须进一步解释投机者实际上如何选择不同交割月的合约以及这些合约在到期时的情况。
1703559195
1703559196 虽然市场中同时交易许多不同交割月份的合约,但投机交易主要集中于近月份合约。在合约到期月份的最后交易日之前,大多数市场均设有第一通知日(First Notice Day)。在第一通知日的当天或其后,持有空头头寸的人可以(通过交易所)通知持有多头头寸的人,有意履行相关商品合约的交割(例如,5000蒲式耳的大豆)。如果多头头寸的持有者确实希望接受交割,则他无须担忧。然而,多数参与期货交易的人都不希望履行交割或接受交割。他们会在第一通知日之前平仓,以避免交割。他们可以在下一个月份的合约上建立类似的头寸。交易者可以同时进行这两笔交易。结清最近月份的头寸,并于下一个月份重新建立相同的头寸,称为换月移仓(rolling over)。
1703559197
1703559198 合约月份最接近当前时间但第一通知日尚未来临的合约,称为近月合约。许多金融期货并不进行交割,这些期货合约到期时以现金来结算。但是,为了避免结算流程困扰,这类期货投机者通常会在合约到期之前的几个星期出清头寸。如果他们希望继续持有该商品的头寸,则会通过换月的方式在下一个交易月份重新建立类似的头寸。合约逐渐接近到期时,上述的换月交易开始发生,近月合约的成交量与未平仓合约数将会下降,而下一交易月份的成交量与未平仓合约数则会上升。
1703559199
1703559200 某月份合约成交量与未平仓合约数代表该合约的流动性。市场流动性越高,则越容易找到买家与卖家,交易之间的价格变化也越小。投机者通常偏爱流动性最高的市场,在这样的市场交易时,从决定行动到实际开仓或平仓这段时间内价格滑移最小。最近月份通常都最具流动性,直至到期前几个星期。然后,下一个交易月份便会成为流动性最好的月份。在金融期货方面,例如美国短期国债、欧洲美元、美国长期国债,每年均有4个合约月份,3月份、6月份、9月份与12月份。在到期前一个月的最后一个星期前,那些最近的月份是最具流动性的。因此,在12月的最后一星期至2月份的最后一星期之间,3月合约是投机者所偏爱的市场。在2月份的最后一星期至5月份的最后一星期之间,6月合约交易最为活跃。其他月份依此类推。
1703559201
1703559202 因此,有关于先前所提及的问题——应该选择哪个合约之数据,答案是未平仓合约数最高的月份。这是流动性最强的月份,也是投机者最偏爱的合约月份。
1703559203
1703559204 现在假定你要用1987年的数据测试一套国债交易系统。如果你决定使用实际合约数据,那么会用到1987年3月份、6月份、9月份与12月份交割合约的日线数据。在1月1日至2月28日之间,使用3月份合约的数据;在3月1日至5月30日之间,使用6月份合约的数据,依此类推。每个月份的合约均需要一台电脑来测试。这意味着每年的测试均需要4台电脑来进行。电脑的运行速度虽然极快,但每跑一次都甚为耗时,因为程序在某个时间都只能处理一个数据文件。然后,你必须将4套结果合并起来,以观察全年的绩效。在某合约月份的末期,如何处理未平仓合约数也是一个问题。你可以了结即将到期的合约,并在下一个月份重新建立该头寸。但是在考虑下一个月份的数据情况下,若该系统持有相反的头寸,这又将如何处理呢?你可以了结即将到期的合约,并等待下一个月份的新信号。但是,若该系统持有相同的头寸,则又将如何呢?在此空当期间,你可能因此而失去了绝佳的长期交易机会。在实际交易中,你可能会将该头寸换月,并继续持有它。
1703559205
1703559206 在如何处理合约到期的问题上并无简单的解决之道,但仍有数种方法可供运用。有两种人工合成的合约不会到期。你可以使用其中一种,以其历史数据来测试系统,并产生交易信号。
1703559207
1703559208 罗伯特·培累提厄(Robert Pelletier)是商品系统公司(Commodity Systems Inc.)的老板,该公司拥有最受欢迎的商品数据库。他发明了一个永远不会到期的期货合约,被称为永续(perpetual)合约。对于每个市场,永续合约会锁定一个未来的固定日数,通常是91天,然后再根据两种较远期的期货合约来计算该天的价格。它选择该天之前与之后的两个紧邻合约,并利用两种价格做某种数学平均值的计算。这项未来的平均价格便成为今天的永续合约价格。这种程序的优点是其价格行为相当平滑,并且可以消除合约转换之间的任何价格间隙。其缺点是永续合约价格与实际的可交易合约价格并无关联。它可以利用永续价格来测试其系统,再用实际合约价格来产生交易信号,或利用永续价格来产生交易信号,而用实际价格来下单。另一项缺点是商品系统公司是永续价格的唯一提供者。如果你希望将它们运用于交易中,就必须通过电脑数据机每天传输数据,而这必须付费。
1703559209
1703559210 另一种人为合约,它并不像永续合约那般人工化,被称为连续(continuous)合约。连续合约使用最近月份在为期3个月内的实际交易价格。需要转换合约时,则开始添加下一个合约的实际交易价格。为了消除两种合约在价格上的差距,你必须将其收盘价与原合约收盘价之间的差值予以调整,调整的时间在使用新合约价格的前一天。举例而言,假定你在1987年12月1日至1988年2月29日之间交易欧洲美元,连续合约价格则是这段时间的3月合约的实际交易价格,因为这正是投机者当时偏爱的合约月份。到3月1日,连续合约则转换为6月份合约,并开始在数据文件中纳入其价格。在转换日的前一天,两种合约的收盘价通常会出现差距。在1988年2月29日,假定3月份合约的收盘价为93.13,而6月份的收盘价为93.00。为了在数据文件中保持2月29日与3月1日收盘价的正确关系,则先前的所有价格均需要扣减0.13。经过如此调整,所有先前之开盘价、最高价、最低价与收盘价在该合约的实际交易期间内的相互关系仍可以保留。实际的换月发生于何处并不重要。最佳的理论日期则是下一个月份之未平仓合约超越最近月份的当天。
1703559211
1703559212 使用连续数据文件,将允许你每天都只输入并使用当天的近月合约数据。你的数据文件将始终反映近月合约的当前价格,而该合约是你最可能交易的月份合约。交易系统所产生的信号与止损,都会以你实际交易的近月合约来表示。在数据文件中,所有先前价格每天的关系会完全等于你当时在交易近月合约时的关系。经过多年的交易,连续数据与实际交易数据之间的唯一差异是价格水平,它们可能较高或较低。然而,在连续数据中,每天的开盘价、最高价、最低价与收盘价之间的差价(不论是当天或每天之间的差值)均会与其对应的近月合约相同。价格水平的差异不会影响交易信号,除非该系统是根据实际价格的百分比来计算交易信号,但以此方式来运作的系统不多。相对于实际的近月合约而言,使用连续数据计算出来的其他种类交易信号(例如,移动平均、价格形态以及其他类似指标)大致上均完全相同。
1703559213
1703559214 因为每当合约到期而向远期移仓时,连续化处理会消除合约之间的价格差异,一定程度上使人们认为这会扭曲历史数据测试的结果。事实上,除了换月移仓时所发生的额外佣金费用,不论向远期移仓的次数有多少,使用连续合约所产生的历史测试结果大致上应该与使用实际合约的结果相同。以过去的结果来预测未来的绩效,其本身便不是一项十分精确的程序,在此情况之下,额外的佣金费用所造成的影响也就无关紧要。所以,使用连续数据文件来测试和交易,你并不会遗漏任何重要的事项。你可以因此而避免合约到期时的数据处理问题。如果你希望以人工方式来保存你的数据文件,你可以利用经纪商、报价机或报纸所提供的数据,而且无须付费。在本书中,所有测试的系统均使用连续合约。
1703559215
1703559216 [1] 永续合约详情见下文。——译者注
1703559217
1703559218
1703559219
1703559220
1703559221 机械式交易系统:原理、构建与实战 [:1703558333]
1703559222 机械式交易系统:原理、构建与实战 测试的时间段
1703559223
1703559224 测试交易系统时需要考虑的另一个重要因素,便是选择测试历史价格的时间段。乍看之下,似乎是测试的时间段越长越好,但市场性质若随着时间而改变,则长期的测试可能导致负面的效果。记住,你仅能通过未来的交易来赚钱。因此你必须设计一套历史测试法,能够预测未来的交易。某套系统在1980~1983年行情中曾经展现杰出的绩效,但在1988~1989年的行情中,如果价格走势的性质已经发生了重大变化,则该系统在此期间的表现可能极差。
1703559225
1703559226 虽然你不断听到交易者评论说,近来在市场上做交易已经变得比过去更难,但这种态度与其说反映了市场真实情况的改变,毋宁说反映了评论者交易的成败。如果只观察市场的长期图形,你很难洞悉特定市场的价格行为发生了根本的变化,而这项变化足以影响交易系统的成败。当然,市场化性质肯定在变化。市场常常出现极长期的牛市与熊市。市场的价格波动会发生周期性的变化。最大的问题是,你不知道在未来究竟是要面对哪一类型的市场。所以,你的系统必须能够处理所有这些变化形态。
1703559227
1703559228 最好是选择足够长的时间段,使它同时涵盖牛市和熊市,而且要包含价格波动性高及低的情况。另一方面,你也要考虑测试上的方便。人们所拥有的时间十分有限。选择相对短的时间段,而花费较多的时间致力于测试,这或许会胜过选择20年或30年的数据时间段。
1703559229
1703559230 比测试时间段的长短更重要的是系统所产生的交易笔数。就统计上而言,所产生的交易笔数越少,则测试越不足以信赖。统计学家在决定数据取样规模时所做的各种考虑,同样适用于商品交易者对系统的测试。如果你的测试时间段太短而无法产生至少30笔的交易,则测试结果的可信度将会受到影响。有人认为,如果测试时间段相当长,则必然是值得信赖的测试。事实上,如果系统无法在测试时间段内产生足够的交易笔数,则测试时间段的长短并无意义。不论时间长短,测试所产生的交易笔数越多,则测试结果在统计上越可靠。统计上的可信度十分重要,因为这关系着你的历史测试结果在未来重复出现的概率。这也正是测试的全部目的所在。
1703559231
1703559232 相信5年是相当不错的测试时间段。这应该可以提供完整的样本,涵盖完整的上升与下降趋势以及各种价格波动程度。最近5年与未来的交易应该仍然有相当的关联。这个时间段可以提供足够的时间来产生充分的交易笔数,而且相对地说也不是很长的时间,测试可以快速完成。如果你使用很长期的交易系统,它每年仅能产生几笔交易,那你就得延长测试时间段,才能使测试的交易笔数接近30笔。如果你使用相同的参数,就可以在几个不同的市场中累积交易笔数。本书所讨论的每一套系统,均是以5年的时间段来进行测试。
1703559233
1703559234 为了避免测试发生扭曲的结果,你也必须注意数据在特殊时间段内所出现的不正常现象。如果这种价格行为因此而造成特别有利或特别不利的结果,而它们在未来重复发生的概率甚微,则此测试结果便没有多大用处。举例而言,如1979~1980年的白银暴涨行情,以及1987年10月19日的股市崩盘。为了在本书中统一使用5年测试时间段,并删除1987年10月份的数据,于是我选择的测试时间段为1982年7月1日至1987年6月30日。
1703559235
1703559236
1703559237
1703559238
[ 上一页 ]  [ :1.703559189e+09 ]  [ 下一页 ]