用 Python 架构的策略探讨:价量结合+动量反转 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
datayes2015
V2EX    Python

用 Python 架构的策略探讨:价量结合+动量反转

  •  1
     
  •   datayes2015 2016-10-11 16:55:20 +08:00 5275 次点击
    这是一个创建于 3318 天前的主题,其中的信息可能已经有所发展或是发生改变。
    策略理念:

    从技术分析角度来讲,价量是最重要的两个指标,同时 momentum/reverse 是最通用也是最经典的分析法,

    本策略试图将这两者结合起来。

    策略思路:

    价量结合:以每日成交量为权重,计算过去 N 天的加权收盘价,可以看出计算的加权价格可以理解为过去 N 里的平均成交价,也可以理解为筹码最集中的地段

    动量反转:对比今天的收盘价和上述计算的加权平均价,我们假定当收盘价向上突破加权价一定比例时有继续上涨的趋势,但当突破到很大程度时会出现反转;当收盘价向下突破加权价一定比例时会有继续下跌的趋势,但跌到一定程度时会发生反转。

    策略频率:

    不建议经常换仓,所以定性为周度策略, refresh_rate = 5

    改进点:

    样本股扩容,考虑扩展到中证 800 或者更多

    仓位的资金分配,当样本股扩容后,如何根据信号分配好资金

    遇到 07 年和当前的大跌情况时要采取些措施,考虑止损或者进一步改进策略信号

    策略信号: https://uqer.io/community/share/55b1f886f9f06c91f918c5d1




    接下来进行参数分析: https://uqer.io/community/share/55b1f886f9f06c91f918c5d1 ,在上述五个参数( window,positive1,positive2,negative1,negative2 )中,最重要的可能是 window ,因为 window 的长短对加权平均价影响很大,这就直接影响了 signal 的大小,那么其余的四个参数也应该作相应的调整。

    下面: https://uqer.io/community/share/55b1f886f9f06c91f918c5d1 就不同 window 的情况做一下统计分析,统计不同 window 下,所有 signal 均值、标准差,看看变化规律。

    对于不同 window 的选取也比较一般化,由于周度策略,那么历史数据应该是过去一个月、两个月、、、半年。

    从上面: https://uqer.io/community/share/55b1f886f9f06c91f918c5d1 可以看出,从 06 年至今来看,股市整体还是上涨的,所以 signal 的均值都为正,但也都接近 0 ;而方差则随着窗口期的变大而变大,毕竟半年的行情和一个月行情比起来,不确定性会更多。

    接下来,以此为参考来确定其余的四个参数

    当 signal 位于( negative1 , positive1 ),我们不作任何操作,一方面是避免操作频繁,另一方面,收盘价和加权平均价相差较小时,也并没有包含任何趋势或者反转的信息

    当 signal 向上突破 positive1 时,就表明有趋势产生,但是当 signal 达到 positive2 时,就认为会产生反转; negative 的情况也是一致的

    根据上述计算的 signal 的均值和方差,来确定 positive2 和 negative2 ,取置信区间为 1.5 倍标准差作为参考(置信度大概为 85%)

    根据上述结果来确定各种情况下的合适参数,但不失一般性, positive 和 negative 要保证对称性,而且尽量取整(避免过度优化)

    最后的参数结果在如下的 params 中展示

    从上面的结果可以看出,策略本身可能更偏短线,在预测未来一周走势上,短期的 momentum/reverse 可能更有效。

    结合实际,当 window=20 时,表明用过去一个月的数据来预测未来一周的数据,这一点也是非常合理的

    所以,将 window 确定为 20 ,另外 4 各参数也都确定下来,下面就展示最终的策略回测表现



    至此,基于最开始策略思路的一个简单版策略实现了,从上图看,收益表现还行,但是波动太大,而且熊市不抗跌。。。。

    正如开篇提到的改进部分,还有很多部分需要去完善,而这些也都是在实盘中需要考虑到的

    暂时写到这吧,后续有更新版本再与大家共享,同时,也希望大家多提意见,一起把这个策略做的更完善~
    15 条回复    2016-10-21 18:13:45 +08:00
    chendd
        1
    chendd  
       2016-10-11 17:38:17 +08:00 via Android   1
    是做量化投资吗?最近也想学学。
    datayes2015
        2
    datayes2015  
    OP
       2016-10-11 19:09:03 +08:00
    @chendd 恩恩,亲具体想学哪方面呢?
    chendd
        3
    chendd  
       2016-10-11 19:16:02 +08:00   1
    @datayes2015 就是如何逐步建立稳定的策略, python 看过廖雪峰的基础教程。
    datayes2015
        4
    datayes2015  
    OP
       2016-10-12 10:43:35 +08:00
    @chendd 现在分两种,自上而下,先有金融想法在构建策略
    自下而上 通过寻找数据中的联系去构建策略。
    如果您采用上一种,不管是基本面量化或是技术指标组合现在都有人在用。
    下一种比较强调算法和工程能力,最常见就是形态识别跟预测。
    社区有很多例子开源的例子呐,您可以在基础上进行改进、细化。
    zhy0216
        5
    zhy0216  
       2016-10-12 11:57:48 +08:00
    @datayes2015 这个策略有什么地方可以个人跑么? 不是指模拟.
    datayes2015
        6
    datayes2015  
    OP
       2016-10-12 13:37:48 +08:00
    @zhy0216 您说的模拟是指回测还是模拟交易?
    huangfs
        7
    huangfs  
       2016-10-12 13:40:02 +08:00
    求教量化如何入门?
    datayes2015
        8
    datayes2015  
    OP
       2016-10-12 14:41:54 +08:00
    @huangfs 我马上会发一篇技术指标常用策略的帖子,亲有空的话可以戳一下哦。
    datayes2015
        9
    datayes2015  
    OP
       2016-10-12 14:55:18 +08:00
    Loker
        10
    Loker  
       2016-10-13 18:16:34 +08:00   1
    有入门课程吗?
    datayes2015
        11
    datayes2015  
    OP
       2016-10-14 15:44:28 +08:00
    @Loker 有的,这里面都是新手专栏:) https://uqer.io/community/list/tutorial/default_rank_time/-1/1
    suntxy
        12
    suntxy  
       2016-10-14 20:36:37 +08:00   1
    周度策略 调仓频率太低,遇到系统性风险/熊市开始阶段往往很难控制回撤,我想这是最大回撤有 62%的原因。 如果要控制波动(最大回撤),个人觉得还是应该把调仓频率提高,想办法提高止盈/止损参数的精度 。
    另一个办法可能是加入仓位判断因素进去 - - 不要玩满仓梭哈 应该也可以控制回撤。
    datayes2015
        13
    datayes2015  
    OP
       2016-10-20 17:17:31 +08:00
    @suntxy 感谢亲,给我提供了那么好的思路哈
    ethego
        14
    ethego  
       2016-10-21 10:39:18 +08:00
    做量化交易的人私下也会自己用量化交易玩一下吗?
    datayes2015
        15
    datayes2015  
    OP
       2016-10-21 18:13:45 +08:00
    @ethego 会的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5325 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:09 PVG 16:09 LAX 00:09 JFK 03:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86