策略分享

股票连续上涨后的持续上涨的概率是多少

由ypyu创建,最终由qxiao 被浏览 475 用户

旧版声明

本文为旧版实现,仅供学习参考,新版请移步至以下几个链接。

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU


预计算因子表[数据平台] https://bigquant.com/data/datasources/cn_stock_prefactors

https://bigquant.com/wiki/doc/dai-PLSbc1SbZX

https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS


旧表达式如何迁移至新版 https://bigquant.com/wiki/doc/dai-PLSbc1SbZX#h-用dai代替python表达式

新旧表达式差异 https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS#h-新旧表达式差异

https://bigquant.com/wiki/doc/102-ai-hXNHGsyWzS

数据读取 https://bigquant.com/wiki/doc/dai-PLSbc1SbZX#h-读取数据



在BigQuant上做股票数据分析和可视化展示真是太方便了。只需要写两行代码,其他都是搭积木。

在交易中是否我们常常会想一个已经连续涨的股票(比如3天),继续上涨的概率大么?(好吧,这很散户思维,只考虑了一个维度)。除了看连续上涨的股票上涨概率,我们还需要用全市场股票上涨情况做为对比(不然就很业余了)。

  • 构造如下模型
  • 特征输入
    • cond = (close_0 / close_1 > 1.01) & (close_1 / close_2 > 1.01) & (close_2 / close_3 > 1.01):结果为True这三日都在上涨(超过1%),否则为False
    • label = where(shift(return_0, -1) > 1.01, 1, 0):1 表示明天上涨超过1%,0表示明天下跌
  • 用自定义模块计算:主要是使用 pandas groupby g1 = df['label'].groupby(pd.Grouper(freq='M')).apply(lambda x: x.sum() / len(x)) g2 = df['label'][df['cond']].groupby(pd.Grouper(freq='M')).apply(lambda x: x.sum() / len(x))
  • 最后使用绘制DataFrame模块
  • 结果:初步看起来没有必然上涨关系,和市场强弱有关系
  • 改进:
    • 可以看更长时间周期
    • 考虑不同日期参数等
    • 考虑引入其他维度

策略案例

https://bigquant.com/experimentshare/f642e05da0d043479bb53a5ebd27d7e7

\

标签

交易