找回密码
 注册
搜索
查看: 1221|回复: 13

[原创] 步进(walk forward)思维与步进式系统优化

[复制链接]
发表于 2009-10-25 12:04 PM | 显示全部楼层 |阅读模式


本帖最后由 bobcat 于 2009-10-25 13:08 编辑

我们往往在一笔交易完成后后悔,譬如卖了一支股票后,股价大涨,便悔恨自己卖错了,
誓言下次不这样做了。这是普通思维下的对错判断,往往导致进一步的失败。
如果用步进思维应如何判断对错呢?

步进思维的实质是:决定任何一笔交易的对错只能依靠交易以前的信息。如果仅仅因为事后
股价的涨落来决定对错,意义很小。股市有相当大的随机性,一个正确的策略,也不能保证
每笔都赢利。有经验的炒家在做这类判断时,会尽量避免事后信息对判断造成影响。但从人类
心理上看,很难完全做到这一点。我们往往不自觉地受事后信息的影响,偏向于寻找事前不应卖的理由。

下面再谈谈步进式系统优化。
据说很多年前,某大投行不断公布对个股的黄金移动平均线对。譬如
IBM的黄金对为(31,54),就是说当31天移动均线越过54天移动均线时便买进,而当54天移动均线越过31天
移动均线时便卖出。这一黄金对是最优化的结果。当时的想法很单纯,现在自然没有投行再这样做了。
这样的做法有两条本质上的缺陷。其一是样集太小,其二是优化过程用到了模型中每笔交易事后的信息,
即所谓“过去未来”阶段的信息。一旦用到了过去未来阶段的信息,其可靠性就要大打折扣,这一“折扣”
可用统计方法算出。从直观上也很容易理解:假设每个参数有100种变化,则两个参数共有10000种变化,
最优化的结果无非是在10000种情形中挑出最好的一个。这样做即使是纯随即步行数据也会有赚钱的表象。
优化过程很可能只是曲线填充而已。
但是如不做优化,便无法利用市场的个性。华尔街的老书只是说尽量增加样集,参数不能太多,也不能太少。
首先样集当然是越大系统越可靠,增大样集可依靠时空上的分散。 譬如说股票的个数远高于商品期货的个数,
所以做股票的 Sharpe 比率(即单位风险上的回报)远较做期货高。此外时间上的分散是指提高交易频率。高频率
交易的 Sharpe 比要高得多。统计学家 J KATZ 做期货只用5分钟线数据,为的就是靠时间分散增加样集。

在参数多时,统计上如何解决曲线填充的问题呢?

最优化的统计方法之一是将样集分为内样集(IS)与外样集(OS)。譬如将2001到2006年的股价当作 IS,
2006以后的股价当作 OS。 在IS中作优化,然后从OS中看结果。这样OS中的交易是过去的交易,
但没有用到过去未来时的信息。
因此可靠性便可直接从OS的结果看出(或算出),无须计算统计上的“折扣”。有些商业软件公布的只是 IS 的结果,
常有回报极高的假象。购买时一定要问清楚有没有OS的结果?如果看 OS 的结果,就不必担心优化中用了多少参数。

步进式系统优化可说是 IS-OS 测试方法的顶峰。在决定任何时刻的交易时,可用且只用那一时刻之前(即过去完成时)
的信息。所以其统计上的可靠性可直接从结果看出,无须作统计上的更正。步进式系统一旦被认为有利且可靠,
则可立即投入使用,不必进行实时检测(实时也是OS的一部分)。当然市场性质本身的变化仍会造成回报的变化,
譬如我们观测的很多系统,这两年的回报都明显高于2000到2007之间的回报。金融风暴为炒家带来了前所未有的机会。

顺便提一下,MARTIN SEWELL 最近建议用贝叶斯统计找到概率最高的线性回归系统,其中用到了贝叶斯信息准则(BIC)。
这也是避免曲线填充的一种方法。不过本猫认为,步进系统的结果更直接,相应的计算量更低。

评分

5

查看全部评分

发表于 2009-10-25 03:16 PM | 显示全部楼层
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-10-25 05:41 PM | 显示全部楼层
有意思的问题。

其实参数多时,解决曲线拟合(曲线填充?)的问题的确可以用步进式系统优化。 步进式系统优化结果与使用信息准则AIC差不多。 还有不少信息准则及变种, 如贝叶斯信息准则(BIC)更强调对系统真实机理的逼近。在一般的应用中,很多信息准则与步进式系统优化或者与Jacknife,bootstrapping比较一致,但是对股市这种随机性很大的系统,用不同方法做为系统判定选择,最后结果就很可能不一致。

样本多了,也不一定就有好处,会将一些阶段特有的小特征平均,平滑,当成噪音消失掉,毕竟股市中通用的规律很微弱,这不仅对股市适应,对人也适用,暂时盈利不难,但长久盈利确不容易。 另外,样本太多了,参数个数问题就会变得不太明显了。

估计很少人能判断出真实的股市和由加漂移项的随机漫游产生出的数据的区别,也很可能有人能发展出对随机漫游产生出的数据进行盈利的系统,但是会经不起步进式系统优化结果与信息准则的检验的。因为在理论上,绝不可能有人能系统性的击败随机数的。

当然股市不完全是带漂移项的随机漫游,尽管后者能对其在大样本下有很好的近似。股市中的系统性的规律比人们想象的要微弱得多,能长期做到55%的正确性,就有可能击败了股市内在的规律性,有了长期盈利的系统基础。

说实话,我没见过多少系统可以经得起长期大量数据或者理论上的检验,很多方法听起来很好,只要变成程序后,在实际中就不行了。 前段时间,也就发现了个对近10、15年以趋势作为交易的方法不错,但是再用更早的历史数据,效果就差了。

步进式系统优化或者部分信息准则都是以预测性来检验系统的,对要做系统的人很重要。 毕竟比用自己的真钱去检验要方便得多!

评分

2

查看全部评分

回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2009-10-25 08:13 PM | 显示全部楼层
xiaoht: "样本多了,也不一定就有好处,会将一些阶段特有的小特征平均,平滑,当成噪音消失掉."


你说的这点很重要。增加样集不能靠拖长历史。所以我们在任何固定时刻所用的样集不能含有太长的历史。步进测试可考虑
多年的历史,但其中每一步往往最好只考虑很短的历史(譬如一、二百天)。增大样集就要靠增加交易频率。
90年代市场效率低得多,但交易费用(包括进出差价)要高得多。到了2007年美国股市效率已很高,
多数系统都面临困境。只有高频率交易仍可获利,且 Sharpe 比仍相当高,但即使如此,从当时的趋势看,也到了无功的边缘。
但金融风暴之后,股市效率明显降低,很多系统都突然变得有利可图。如果今后几年股市稳定发展,股市效率
仍会增加,交易仍会变得越来越难。但仍应有两、三年的高回报时期。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-10-25 09:53 PM | 显示全部楼层
qiang
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-10-25 11:45 PM | 显示全部楼层
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-11-14 08:58 PM | 显示全部楼层
本帖最后由 Diffusion 于 2009-11-14 20:59 编辑

关于系统,今天看到一篇文章,提到用Monte Carlo analysis来做分析。原文如下

... applying the real trades over the five year period to a Monte Carlo analysis ...


我只知道Monte Carlo是simulation,不知道怎么用real data来做analysis。不知道bobcat有没有这方面的经验?
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-11-14 09:28 PM | 显示全部楼层
本帖最后由 yaobooyao 于 2009-11-14 21:29 编辑
关于系统,今天看到一篇文章,提到用Monte Carlo analysis来做分析。原文如下



我只知道Monte Carlo是simulation,不知道怎么用real data来做analysis。不知道bobcat有没有这方面的经验?
Diffusion 发表于 2009-11-14 20:58


我的理解:

用Monte Carlo 来做分析和模拟是一回事(不同的是,一个是用历史数据,一个是用假想的未来的数据),我知道有些Hedge Fund 用类似的分析模型对未来事件(比如美元走势与FOMC EVENT,企业ER EVENT,Economic Event,Politics event, 证券市场的sentiment factor & seasonal pattern factors 等等)做为variables,进行约束定义,然后通过Monte Carlo 方法对所关注的investment asset 进行Reward/risk analysis,对分析结果(多半是一个正态分布样子的曲线) 进行评估,制定相应的投资策略和决定。这样,你就大概有一个认识,关于自己的回报率的mean / mode value 大概是在哪儿, 各个要素的Max/min threads 是多少了。 尤其是对于高杠杆比率的投资者来言。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-11-14 10:01 PM | 显示全部楼层
... 进行约束定义 ...
yaobooyao 发表于 2009-11-14 21:28


对的,这个也是我对Monte Carlo Simulation的理解:所谓约束定义就是理论模型。然后通过simulation得到尽可能多的结果(这个过程类似于对实际结果抽样),然后进行分析。可是这也就是说,在simulation之间,已经确定了模型。现在让我搞不懂得就是,如何real trade来进行这一过程。因为real trade只是一个样本集,而Monte Carlo Simulatio需要一个stochastic模型。从样本集到stochastic模型还有挺长的一段路。要么是这篇文章是手工生成了一个模型,然后Monte Carlo simulation。要么是有自动的方法从样本集抽取一个stochastic模型。要么就是跳过建立模型的这步,直接simulation。如果是1,这个文章的结果我就要打点折扣,没人能保证作者没有刻意选一个对自己有利的模型。2我觉得不太可能。如果是3, 我很想知道如何做。

现在有个粗略的想法,原文说real trade是5年的数据,而最后他得到的结果是1年的expected profit and max drawdown。我的想法是有可能用simulation的方法对这5年的样本再次抽样,得到时间长度为1年的数据,然后进行分析。
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2009-11-16 05:21 PM | 显示全部楼层
本帖最后由 bobcat 于 2009-11-16 17:23 编辑

9# Diffusion

The price history is not a series of random variables. It is merely a series of values taken by
a series of random variables. The idea of simulation is to construct a series random variables
through a price model. This price model would then randomly generate a large number of price paths,
which can be used to analyze the performance of your strategies. The distribution of the price model
is based on the actual price history. The proponents of this method would say that this way you get
better idea whether the performance is more likely due to randomness.

I am personally not a fun of this idea.The simulation can be quite complicated, especially when
you consider time and cross correlations for a portfolio. The simulation could also throw away
the detailed non-random pattern structures of various kinds, such as symmetric triangles.
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-11-16 05:23 PM | 显示全部楼层
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-11-16 05:37 PM | 显示全部楼层
9# Diffusion

The price history is not a series of random variables. It is merely a series of values taken by
a series of random variables. The idea of simulation is to construct a series random  ...
bobcat 发表于 2009-11-16 17:21


Thx a lot. So it has to have a stochastic model first. Because this model may not reflect the true stock market, I believe the author is either overstating or simply picking a model that works for him.
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2009-11-16 06:03 PM | 显示全部楼层
12# Diffusion

The key is the connection between the actual price history and the price model.
For instance, one can find the distribution of the (log of) daily price change rate
from the actual price history, and use it for the price model. Of course, this might be too simple,
and one loses too much of the characteristics of the price history. But if one uses too much
of the price history, his simulation would be not very far from the price history.

Another serious issue is that quite often even the designer of
a sophisticated strategy would not know why his strategy
is making money. In the simulation, a non-random structure can be perceived as random and not be
implemented as special in the price model.
回复 鲜花 鸡蛋

使用道具 举报

发表于 2009-11-16 06:55 PM | 显示全部楼层
12# Diffusion

The key is the connection between the actual price history and the price model.
For instance, one can find the distribution of the (log of) daily price change rate
from the actua ...
bobcat 发表于 2009-11-16 18:03

回复 鲜花 鸡蛋

使用道具 举报

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

本版积分规则

手机版|小黑屋|www.hutong9.net

GMT-5, 2024-5-6 05:24 AM , Processed in 0.125611 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表