6个参数如何优化???

Discussion in 'Philosophy and Strategy' started by ch3coohqb, Sep 17, 2010.

  1. [​IMG]

    6个参数~假设每个参数有10个数可以选择
    则参数组为6^10=60w组参数
    要把这这些参数都算一遍实在太难了...
    速度慢的要死


    那么另外一个问题
    假设无聊的我把机器开了一天一夜把这些参数全算了一遍...
    得到一些比较好的参数组~
    我的理解是未来行情比较好的参数组应该是最优参数组周围的临域...

    [​IMG]
    2个参数的话就应该是周围颜色比较深的一个面
    3个参数的话就应该是周围颜色比较深的一个空间
    (如果相邻的区域不是颜色递增递减的话说明参数对利润影响敏感应该剔除)
    4个参数的话...四维空间...
    5个参数的话...
    6个参数...

    怎么表达出来多维空间?!
    有朋友告诉我用matlab画多维空间再找参数组的邻域
    还有朋友说用excel导入参数组然后再计算邻域参数递增递减是否敏感...
    你们有其他方法?

    另外不知道大家对使用哪组参数跟参数优化怎么看...
    这6个参数无时间周期参数~...
    我是觉得时间周期参数的优化比较不靠谱...
     
  2. 6个参数是不是也太多了。。 我感觉,超过3个参数的话,自由度就很高了

    目前,我自己弄的系统都是一个参数:时间周期。
     
  3. 应该是10^6吧
    用amibroker之类自己编程序算应该快很多
    另外收益曲线包含很多信息,似乎比收益绝对值更重要
     
  4. 给你一个例子,不过你应该知道利与弊。
     
  5. 波涛说了,参数越多越不可靠!
     
  6. 楼主是用的是什么软件?如果是使用amibroker的话,有很多搜索算法可用,可以把搜索数量限制在比较可以接受的水平。楼主说的图示,我没办法解决。
     
  7. 多位空间(向量)的优化算法,有专门的计算方法研究,比如最陡下降法,共轭梯度法等等。若对于有限的离散值组合,用遍历也是可以的,但计算量较大
     
  8. 用遗传算法之类的会快很多。不过,我觉得用穷举法没什么不好的,编程强度小很多,代价只是时间而已——有时候时间也并不等于金钱:D。我想,那些参数你也不用每天都算一次,只要设定你的程序每个周末算一次就行了,对吗?

    优化的目标我觉得用收益率可能不是很好,因为你不知道那个最高收益率,对应的回撤是多大,我建议用sharpe ration来作为优化的目标。
     
  9. 我用的是国内的软件金字塔~
    做的是国内的股指期货..
    大家说的部分算法只是听过没试过..
    不知道外软怎么导入国内期货数据
    哪位兄台能够推荐一个比较好的能导入国内股指数据的外国软件..
    语句比较好学就更好了~想学个国外软件专门用来写策略...
    以前只用过quotetracker做日内~写策略的还真没学过...

    参数不能太多也不能太少~
    我以前对于这个问题很是纠结...
    http://www.hylt.net/vb/showthread.php?t=28803
    增加观测量造成过度拟合的问题...
    不过目前想大量增加观测量~
    在未来行情中再去想怎么解决这个过度拟合的问题

    对于历史测试、参数优化、资金管理方法...大多基于概率统计的基础上
    如果概率真能预测未来那就不会有金融危机了~...(上笔交易与下笔交易到底有多大联系)
    我对于如何在未来交易中正确的运用概率工具还 是处于摸索当中~

    我做参数优化~不仅仅是要找一组好的参数~
    更重要的是想知道怎么样的情况下选的参数会过度拟合
    怎么样的情况下选的参数未来表现又会更好...
    正确的使用方法更重要.
     
  10. 试过样本外/样本内测试吗 虽然也不怎么灵 总比没有好
     
  11. 第一步: 根据你对系统的理解,为每个参数指定一个缺省值。然后分别对每个参数只做单参数的优化,观察每个参数的变动对系统的影响程度。

    然后有两种优化方法:
    方法1. 先选择2-3个对系统影响显著的参数(比如说那种选择不同甚至会导致是盈利还是亏损的参数),其他的参数取缺省值。在确定这些参数优化结果后,再对其他参数进行优化。

    方法2. 对所有参数把取值范围放粗, 比如说你原来认为每个参数可取1-10 这10个值, 可以先用1-4-7-10这四个值进行优化。 根据优化结果,如果某个参数对系统的影响是比较线性的话, 那么下一次优化就可以选取一个比较窄的范围进行优化了。对系统的影响非线性的参数可以继续保留比较宽的范围进行下一次优化, 留待所有其他参数确定后最后再进行细粒度的优化。
     
  12. 金字塔的导出数据,导入到amibroker里还是比较方便的。导出方和导入方都可以定制数据文件的格式。
     
  13. 目前所有优化都是05-08合约做的~然后拿到09合约上看结果是否也一样有所提高...
     
  14. 这个问题也许应该改成:

    6个参数的系统是否值得使用?
     

  15. 呵呵,同意。从开发、测试系统的角度讲,系统的参数个数随着对系统的理解逐渐深入,可慢慢舍弃一些参数,或者说将部分参数固化。

    对于参数的优化,确实很难判断是否产生“参数拟合”。我目前的做法时,比如一个系统只有一个参数(时间周期,小时为单位),如果在某个参数范围(比如13-21)系统测试结果都不错的话,我就取这个参数范围来实际操作,但确实很难找到一个优化后的最好的参数,我想的是能找到一群基本连续的参数。
     
  16. 深表赞同,这是一种很好的思路。
     
  17. oldwain的“取值范围放粗”的方法不错!好的参数组合或者好的系统应该在一个足够大的“平面”或者“空间”里面是稳定的,才能应对未来数据的变化。