我们平时在量化交易策略的设计或使用中,常常会遇见策略效果失常的情况。因此在策略的设计过程中,必须十分注意以下这些“陷阱”,才能让策略反映真实有效的结果。 1.偷价 如果一个交易策略要求你利用信号触发前的价格进行交易,那么这个交易策略就存在偷价的问题。偷价发出的交易信号不会消失,但是你已经没有机会利用这个信号进行交易了。 例如,信号可能提示,如果当天收盘价高于前一天最高价,则利用当天开盘价进行买入,而在开盘价成交已经几乎是不可能的事情了。 很多人也许会低估偷价的危害性,事实上,固定点数的偷价相当于在原本的资金曲线上叠加了一条斜率为正的直线(在每次交易都是固定手数的情况下)。例如,假设在股指上每次交易偷价1个点,那么一个上市至今交易2000笔的模型,会稳定净赚1×300×2000×2=120万。 2.未来函数 交易策略中如果包含了未来函数,运行后表现是,某天出现的交易信号会在一段时间后消失,之后可能会在其他位置出现相同或不同的信号。 出现这种情况的原因是,函数在判断是否发出信号以及发出何种信号时,利用了未来还不确定的行情信息。例如,如果当前柱线上还在跳动的收盘价被用来判断是否触发信号,则该函数是未来函数。使用这类函数的模型,会测表现胜率可能非常高,是典型的马后炮。 3.手续费 策略进行测试时,如果不计入手续费,资金曲线可能会产生巨大差异,甚至不计手续费的盈利策略,在计入手续费后也可能产生亏损。手续费相当于在原本的资金曲线上叠加了一条斜率为负的直线(在每次交易都是固定手数的情况下)。 4.滑点 滑点指的是开仓点位和成交点位之间的差异。滑点可能由网络延迟、交易平台不稳定、行情波动剧烈、市场容量不够等情况导致的,是难免会发生的情况,因此滑点是一个合格的交易策略必须充分考虑的因素。所以,如果在一个交易策略中,将滑点数设置为0,其资金曲线就会优于同一个滑点数不为0的策略。滑点和手续费对一个策略的资金曲线造成的影响是类似的。 5.指数合约 有些策略回测的合约是指数合约,而指数合约是使用该品种所有合约加权平均生成的,其价格与主力连续合约有所差异,这种价格上的差异会使回测的资金曲线不真实。 例如,某个合约上的短期剧烈波动被指数合约平滑了;或者,当远月合约升水,同时与近月合约基差较大,且处于移仓换月时,由于远月权重的逐步加大,可能会在指数合约上形成一轮涨势,而实际并不存在;再或者,实际操作中的移仓可能会产生一定的基差成本,这在指数合约却上无需支付。 6.过度优化 有些策略在公布资金曲线前可能进行了过度优化。过度优化有多种操作方法,例如,策略交易者可以针对某段特定的行情,或短时间的行情进行参数优化,之后将分段行情对应的资金曲线拼接起来,得到一个表现更出色的资金曲线;或者,策略交易者指定过去某几个表现较差的交易日不进行交易;再或者,策略交易者对过去的行情进行过度拟合,却并不考虑这个拟合方程不适用于未来;等等。上述种种经过加工的回测时的优异表现,都会与策略未来的运行结果存在较大差异。 曲线拟合可以帮助我们解释过去的走势,从而推导未来的走势。然而,如果策略交易者对行情进行了过度拟合,则策略对过去行情的解释可能会非常出色,但对于未来行情的解释却几乎肯定是非常糟糕的。 7.市场容量 对于承载较大资金规模的策略而言,如果没有充分考虑市场容量的问题,可能会导致交易结果与预期偏差较大。例如,涨跌停和流动性中断时,大资金常常很难成交,这在策略回测时很难纳入考量;或者,实际品种的市场容量有限,较大的单量不能全部以指定价格成交,这也会影响最终的交易结果。 8.样本量过少 有些策略覆盖的时间段太短,所以样本量太少,不能充分展现策略效果。这些策略在更长时间段上的资金曲线可能表现的并没有那么好。 9.信号量过少 有些策略虽然测试了较长的时间段,但触发的交易信号很少。这些策略未来是否表现稳定也有待观察。例如,应用在日线图上的策略需要考察更长的时期。 10.适用范围小 有些策略虽然覆盖了较长的时间段,或较多的品种或市场,但仅仅覆盖了一种类型的行情(例如一轮较长时间的大牛市)。这些策略在遇到截然不同的市场情况时,表现可能会大相径庭。 若觉得小编文章有意思,可关注公众号越声情报(ystz927),获取更多的股票投资要诀,不断地优化自身的投资体系。 |