楼主: yao_heart
2757 1

[交易策略] 常见的回测陷阱(二) [推广有奖]

  • 3关注
  • 1粉丝

硕士生

5%

还不是VIP/贵宾

-

威望
0
论坛币
464 个
通用积分
2.7000
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
1929 点
帖子
67
精华
0
在线时间
117 小时
注册时间
2014-7-16
最后登录
2023-10-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
常见的回测陷阱(二)

2016-11-02 火星挖矿人 量化投资宽客
公众号的内容都是本人这些年在交易过程中的所看、所感和所悟,以下内容是从国外的一本交易书籍(《ALGORITHMIC TRADING》)亲自翻译过来,以后会陆续的翻译,觉得有意思的会和大家分享,当然,翻译水平有限,希望大家多多体谅,希望大伙能喜欢,正文如下:
    之前讲过了两个偏差,分别是前视偏差、数据透视偏差和线性美,以下是继续翻译的内容:

股票拆分和股息的调整

    当一个公司的股票要进行1股拆分为N股时,该公司的股票价格也会除以N。但是,如果在股票拆分之前,你拥有该公司的股票,拆分之后,你的股票数量将乘以N倍,这样实际上你持有的股票总市值是不变的。但是在回测过程中,我们通常是根据股票价格来决定我们的开仓信号,而不是根据账户的股票市值。所有除非我们在股票拆分的前一天,调整股价除以N,否则我们会看到估计会在拆分那天会有急促的下跌,这样可能会触发一些错误的交易信号。在实盘过程中也会出现类似的情况,所以你也需要做同样的事情,在股票拆分开盘前,已经调整好股价。(如果是        N股并成1股,我们是调整股价是乘以N。)

    同理,当一个公司支付每股d美元的现金(或股票)股利时,股价也相应的下降d美元(假设没有其他市场波动)。因为如果在股利发放之前你持有该公司股票,你的账户会得到现金(或股票)派发,所以你的账户总市值依旧是没有变化的。如果你在股利发放之前没有回调之前股价,这个突然地下跌可能也会触发错误的交易信号。这个调整也应该在股利发放前日,应用在实盘模型上。(以后讨论的调整同样要应用在ETFs上,在期权价格上的调整可能会稍微的复杂些。)

    你可以在许多网站上找到历史股票拆分和股利发放的信息,个人推荐一个优秀而且免费的网站earnings.com。该网站不仅记录了历史上发生股票拆分和股利发放的次数,而且显示了股票拆分和股利发放的数量,包括未来要进行股票拆分和股利发放的日期,所以我们可以在我们自动交易软件上提前预测此类事件。如果你对已经调整好的历史股票数据感兴趣,这个也很容易下载,试试这个网站csidata.com。

股票数据库的幸存者偏差

    假设你在回测一个股票交易模型,如果选择的历史数据不包括退市股票,那你将会遭遇幸存者偏差。想象一个极端的情况:假设你的模型要求你在股票前一天下跌很多的时候买入,然后一直持有。但是实际情况下,该策略会表现得非常差劲,因为股票在前一天下跌很多的时候,大部分情况下这家公司可能会破产,这样你会导致100%的损失。但是你的历史数据里没有包含这些退市的股票,仅仅包含了存活下来的股票,这样会使你的回测结果看起来非常优秀,这是因为你所买入的股票被打压很严重,但是随后幸存下来了,所有该策略实盘交易时,你就不能预测该股票最终是否幸存下来。

    相比与股票均值回归的多空头策略或空头策略,幸存者偏差对于多头策略更危险。这是因为股票均值回归中的多头策略是要求我们在低位买入,高位卖出,正如我们之前所说的那样,幸存者偏差会夸大回测结果。反之,股票空头策略要求我们在高位卖出,低位买入,该偏差也会低估回测表现,因为这些股票可能会退市,股价趋近于零,但是这类股票因为幸存者偏差不会出现在我们回测数据里。对于均值回归中的多空头策略,该偏差会对其有两种相反的影响,对于做多股票,它会夸大效果,对于做空股票,它会低估效果,所以幸存者偏差带来的危险减少了,但不是消除了。该偏差在动量策略里有较小的危险,收益为正的做空动量交易因为回测数据里面没有退市的股票,所以该回测结果是被低估的。

    你可以在网站csidata.com(也提供一个退市股票列表)以合理的价格买到历史数据,其他的供应商包括kibot.com、tickdata.com和crsp.com。或者你自己去收集那些由于幸存者偏差而提出的股票历史数据。最后,为了幸存者偏差数据缺失的情况下,你可以限制你的回测在最近三年的历史数据,去减少该偏差带来的伤害。

原始和合成的股票价格
   
    美国许多股票可以在多个的交易所场内,电子通讯网络(ECNs)和场外暗池做交易,包括如下市场:纽约证券交易所(NYSE),纽交所高增长板市场(NYSE Arca),纳斯达克(Nasdaq),Island系统,BATS 交易所,INSTINET公司,英国Liquidnet公司,彭博社(Bloomberg Tradebook),高盛的 Sigma ,瑞士信贷的CrossFinder等等。当你查阅股票的历史每日收盘价时,它反映了在该场所正常交易时段的最后一次撮合交易价格。同样,每日开盘价格反映了第一次撮合交易价格。但是当你委托一个以收盘价为市价(MOC)或以开盘价为市价(MOO)的指令时,它通常只会按原始的交易所的路线发送。例如,但你发送一个IBM的MOC订单时,它将会通过NYSE发送该指令,发送一个SPY的MOC订单时,它将会通过NYSE Arca发送该指令,Microsoft 的MOC订单指令由Nasdaq发送。因此,如果你的策略是依据MOC或MOO指令,你需要从相应的原始交易所获取历史价格,然后才能准确的回测你的模型。如果你回测用的是一般合成的历史价格,结果会很不切实际。特别是你用合成的历史价格来回测均值回归模型,你可能会夸大你的回测结果,因为一些数量很小的股票在交易所场外成交价格可能会和交易所的撮合价完全不一样。成交价格在下一个交易日通常会从这些难以达到的异常值回归正常。(美国交易所的开盘价和收盘价总是有竞价产生,但是该交易不考虑由第二个交易所竞价产生收盘价)。

    类似的考虑也同样适用于那些使用最高价或最低价的策略,最高价和最低价一般是根据历史数据合成的,而不是直接来自于一级交易所。在交易量较小的次级交易所,最高价和最低价常常不具有代表性,其数值会被夸大。

    我们在一级交易所哪里可以找到历史价格数据呢?彭博社的用户作为它们订阅方有权限获取数据。当然,就像之前所说的去存储幸存者股票,我们可以去直接去一级交易所订阅行情数据,然后实时地存入我们自己的数据库,作为我们一级交易所的数据来源,以后就可以直接使用它。但是单独去订阅数据可能会要一笔昂贵的费用,但是如果你的股票经纪商已经订阅了,等他们把数据收集好了再重新发送给你,这样费用会低很多。不幸的是,许多散户经纪商不会直接重新发送从交易所购买来的数据,但是机构经纪商会,比如经纪商Lime。

    如果我们没有获取以上所讲的数据,所有我们所做的回测结果,都要接受别人正常的质疑。

欢迎加入“量化投资宽客”,这里会分享量化策略和最新观点,欢迎您的留言!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Algorithmic Microsoft Bloomberg Algorithm bloomber 量化 程序化交易 股票 期货 计算机

已有 1 人评分经验 论坛币 收起 理由
fantuanxiaot + 12 + 12 精彩帖子

总评分: 经验 + 12  论坛币 + 12   查看全部评分

沙发
EddieChiu 发表于 2016-11-7 10:18:19 |只看作者 |坛友微信交流群
Thanks for sharing!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 07:03