作者harry901 (harry901)
看板Trading
标题Re: [请益] 最佳化???
时间Sun Jun 5 04:29:25 2016
有修文章过 建议从头开始看比较容易了解
※ 引述《gfee1 (fjijfsiodj)》之铭言:
: ※ [本文转录自 Stock 看板 #1NKXuGhB ]
: 作者: gfee1 (fjijfsiodj) 看板: Stock
: 标题: [请益] 最佳化???
: 时间: Sat Jun 4 08:17:17 2016
: 1.程式交易有提到不应该过度追求参数最佳化
: 2.1
: 但如果发现
: 礼拜一适合做多,就只做多
if f(x)=ax^3+bx^2+cx+d and f(D)=E
: 礼拜三适合放空,就只做空
if f(F)=G
please find f(x)
: 2.2
: 或者是今日出手两次皆失败
: 代表今日不适合作单的模型
: 就停止作单
on the other hand, you find that
if f(H)=I
also please find f(x)
: 依据第二点的"特性"下去作单
: 是否也犯了第一点的最佳化的陷阱?
: 还是这两者有差异?
moreover, the market is not only on deg f(x)=3
it cloud be on deg f(x)=n
※ 编辑: harry901 (36.231.227.104), 06/05/2016 04:31:15
1F:推 ETHZ: 请问哈利你在干嘛? 06/06 00:26
2F:推 Genki626: 哈利大的意思应该是说市场没有想像中简单 观察到的只是 06/06 06:39
3F:推 Genki626: 一个点而已吗? 06/06 06:39
4F:→ piss: function changes everyday 哭哭 06/06 17:09
5F:推 nds3ds: 深奥! 06/07 00:19
其实就是简单的求函数的一种概念而已
如果把市场比喻成函数f(x)
我们现有的资料集合k:f(Ak)=Bk
但是deg(f)=n 市场机制必然产生n>k 或n<k
最佳化的过程 就是让我们顶多只能尽量让k接近n
但不可能等於n 因为这是不可能发生的 市场的混沌比我们想像中复杂
以下以n>k为例子探讨
由於n>>k trader只是在动态市场上的某个时点(区间)内
最佳化使得f(x)有一定资料
因此原文问的作法 没有一定对错
因为原文问的部份比较不算在"过度参数最佳化"的范畴之内
能扯上关系的只是过度条件最佳化(文末有解释)
所谓过度最佳化 乃是指 太过依赖最佳化进而造成交易系统失真的过程
目前的程式交易必定是由过去的资料去推算未来的资料
当如上述的例子 对於每一个k 使得f(Ak)=Bk 这些k的集合都是过去的参数
因此若某人有交易系统做正常最佳化
必当可得到一条相近的f(x)=ax^n+bx^(n-1)+cx^(n-2)+d....+
则此f(x)是正常最佳化後的结果 其中可能有混沌参数n,a,b...这些未知
也有可能得到确定的数据c,d....
但若过度最佳化 则犹如上述对於每一个K,则f(AK)=BK
其中K>k, 表示资料过度依赖的部份为K-k
同理也可得到一条相近的F(x)=Ax^n+Bx^(n-1)+.....
这时由於K>k, 必然使得(n,a,b...)的量<(n,A,B....) 且(C,D...)的量>(c,d...)
因此F(x)会比f(x)更具体 或者说 f(x)比F(x)还要混沌复杂
但是因为K是过度依赖过去数据的部份造成F(x) 会产生与市场失真的现象
这个就是过度最佳化的弊端
如果说上面看得有点抽象 下面的例子比较好懂
假若真实市场f(x)是10次函数
某人测得市场上四个数据找到h(x)=3x^4-2x-1 (四个数据只能假设多项方程式为四次
最佳化的目的就是希望找到真实f(x)
然而另一人以相同数据再做最佳化,
他比上一个人还多了一些假设(比如市场必通过原点),
而这些假设通常没有标准答案
因此得到g(x)=x^5-3x^2-2
同样的市场 一个是h, 一个是g来描述
g很明显比h更精确 但是却不是更具体 反而增加了原本的混沌
因为市场f(x)是10次 是比g,h还要混沌的系统
回到原文 有些最佳化是有利系统找出一个h接近f
有些最佳化则是相反会让不利於系统 而找出一个g接近f
而这个g就是过度最佳化产生的结果 他虽然明确 但是他失真了
因此如果说原文的疑惑要用过度最佳化解释
""星期一作多 星期三空 外加条件失败两次就不作""
上面是三个条件 拿去跑最佳化 可能得到h
(情况一)
""回测资料区间由60天拉长至90天""
""回测资料区间由60天缩短至30天""
加上上面任何一条件 拿去跑最佳化 可能得到h' 也可能得到g
因为日线是系统的参数
如果得到g 观察系统如果有些特定资料有问题 表示对系统
过度参数最佳化
如果得到h' 同理观察系统 在合理范围的部份 则表示还没有
过度参数最佳化
通常如何判断过度最佳化 一般都是看MaxDD, 最大payoff等合不合理
每个人判断的准则不一 这部份没有一定答案
(情况二)
而若是
""前一天交易量>前前一天交易量且前一天股价>前前一天 则作多""
如果只考虑这个条件加上去原本假设 同理也会产生g,h'
一样的分析可得到底有没有过度最佳化
这部份因为跟参数无关因此一般都叫做系统条件过度最佳化
通常由於策略产生的过度最佳化 大部分都是因策略彼此的相依性而产生
这种情况发生的次数比较少 (前提是资料量够大)
因为策略产生的最佳化资料就像滤镜一样会过滤掉不少资料
过滤的过程只是把最佳化的几个解再过滤而已
参数的过度最佳化反而是最常见的
因为系统最依赖参数 参数有任何变动其实影响很大
※ 编辑: harry901 (36.231.227.173), 06/07/2016 03:53:24
※ 编辑: harry901 (36.231.227.173), 06/07/2016 04:00:55
6F:推 dodo222kimo: 这篇可以M起来吗 还蛮不错的 有很多启发点 06/07 04:16
7F:推 Genki626: 感谢harry大的分享 06/07 08:20
※ 编辑: harry901 (36.231.227.173), 06/07/2016 08:48:54
8F:推 ETHZ: 应观众要求,已脱...不是,是已M.... 06/07 09:06
9F:推 Sueo: 感谢 06/07 09:23
10F:推 vbnwei: 推一下~ 06/09 12:31
11F:推 Justisaac: 这篇得推 讲得观念不错~ 06/10 17:54
12F:推 bab7171: 最佳化可以说参数间相依性过高吗? 06/14 07:50
13F:→ harry901: 过度相依是原因 但结果非全然过度相依 06/14 09:25