如何对待系统测试出的最优参数?

Discussion in 'Risk and Uncertainty' started by duanmuyufei, Apr 10, 2010.

  1. 理论上说,历史测试最优的参数,在未来的表现同样最优的几率微乎其微,那么我们该如何对系统测试出的最优参数呢?

    我现在是这样做的:先分别测试出每一年的最优参数,然后用这个参数测试其他年份的最大回撤、收益率,这样得到一组二维的表格,把各组参数测试结果中历年表现最不稳定、收益最小、回撤最大(三者之间用“or”)的去除掉,得到表现相对稳定的几组,把这几组参数分别用在同一模型中,把这些模型(不同参数的同一模型,相当于不同的模型)叠加起来使用。

    在参数优化方面,哪位还有更好的办法?请指点一二,多谢!
     
  2. 这是个有趣的话题,说实在话,也是一个也很困难的话题。我觉得如果系统或者算法本身不行的话,怎么优化参数都没有用,就跟一个非正期望值的系统,怎么做资金管理,都很难把这个系统变成正的是一样道理的。所以,假设我们讨论的是一个有正期望值的系统。

    我现在在自己的系统里是这么做的:

    首先,不管一个系统是简单还是复杂,不管你叫它做model,Algo,structure,strategy,system或者任何什么东西,从本质上,我把它看成一个函数,它的形式是这样的:

    Action=f(P, D);

    其中:
    Action是函数的产出,是一个买卖的信号(在这里假设我们不去考虑position sizing的问题);
    D是市场的数据,这是由市场决定的,我们无法做任何改变;
    P是一个参数组,假设P={p1,p2,p3,p4....},由我们自己来设置,修改,优化。

    我的做法就是把P这个参数组看成基因,然后我用遗传算法,对{p1,p2,p3,p4....}进行一代又一代的优化,最后产生一个比较稳定而高质量的参数组——说起来跟袁隆平培育超级水稻有点像。:D

    当然,细节还会比这个复杂一点,因为遗传算法经常会导致参数组过度优化,或者收敛在局部最优,所以还需要一些措施来矫正。
     
  3. 很简单,不企盼,不恐惧,坦然笑纳哈
     
  4. nix

    nix

    连续性的参数是有用的 :)
     
  5. 避免参数孤岛,如果多周期,多品种测试都有不太差的表现,就可以接受。至于结果如何,那是天意。
     
  6. 我觉得调参数不能光看结果 重要的是曲线的线性性和平滑性 如果长期线性性很好 短期内失效可能性不大
     
  7. 如果按照action=f(P,D)的说法,需要注重优化(比方说是用遗传算法优化)的更应该是f,参数组P的优化是第二位的。一个良好的策略,应该对于在较为宽泛的参数取值范围内都具有显著的正期望收益。
     
  8. 优化后的拟合=事后猪哥亮,有时,我会相信,无招胜有招
     
  9. 多谢各位的指点,请问BeeGee,遗传算法是如何进行的呢?是软件中的功能吗?能否举个例子简单说明一下?
     
  10. “遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。

    遗传算法通常实现为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。”

    http://zh.wikipedia.org/zh-cn/遗传算法
     
  11. 明白了,多谢!感觉对于遗传算法对系统的优化非常有用,尤其适和大型系统的全局优化,值得认真研究!
     
  12. 不过遗传算法用在NP问题上比较合适,如果不是大规模运算量的参数优化穷举即可
    我目前优化的参数组合是30^6,每组参数几千个周期的,1天可以运行完。
     
  13. 30^6=7亿2千9百万
    每组几千个,按一千个算。
    30^6*1000=7千2百9十亿。。。
    1天24小时,86400秒
    每秒速度=7千2百9十亿/86400=8百4十3万8千每秒:eek:
    你那是什么算法啊?
     
    Last edited by a moderator: May 21, 2010
  14. 这个问题真的有趣,本人也在研究过程中。无数次测试表明,最优的参数往往在后市表现不尽人意。
     
  15. 不好意思,我算错了,不是30^6,只有几千万,不过我是在小机上跑:p
     
  16. 你讨厌~~害得人家的心激动的扑通扑通的:o

    ------------------------------------------
    运用熵率,以及最大熵,我倒是把部分算法的浮点运算效率提高了8*10^8倍,但是我发现,还是差点儿事儿。
     
  17. 最优参数系统包装一下卖了,那是比较稳妥来钱的(卖得出的话)
     
  18. 得看参数的性质,如果理论上,这个参数是全局稳定的,当然是越优化越好。
    如果理论上不支持这个参数的稳定性,说明这个模型是有问题的。
     
  19. 楼上说的不错。个人经验,对于比较稳定的参数(没有突出的波峰或孤岛),可以比较放心地优化。
     
  20. 我最近也遇到这个问题,不过个人觉得一个模型的盈利情况太过于依赖参数的调整,这个模型本身可能不是太好,最多只能算是一个“数据拟合模型”吧...