(iwencai量化策略)PE_0_、10日涨幅大于0小于35、至少5根均线重合的股票

用户头像神盾局量子研究部
2023-08-31 发布

问财量化选股策略逻辑

首先,我们定义了至少5根均线重合的股票,即5日、10日、20日、30日和60日均线重合。这个条件可以帮助我们筛选出股票的中期趋势较为稳定,不容易受到短期波动影响的股票。

接下来,我们筛选出10日涨幅大于0小于35的股票。这个条件可以帮助我们筛选出有上涨潜力的股票,但同时也避免了涨幅过大的股票,从而降低风险。

最后,我们筛选出PE>0的股票。这个条件可以帮助我们筛选出盈利能力较强的股票,从而提高投资回报率。

选股逻辑分析

这个策略的逻辑主要是通过均线的重合来筛选出中期趋势较为稳定,有上涨潜力的股票,并通过PE的筛选来进一步提高投资回报率。这个策略相对简单,易于理解和执行。

有何风险?

尽管这个策略可以通过均线的重合和PE的筛选来降低风险,但仍然存在一定的风险。首先,市场波动可能会导致股票价格的大幅波动,从而影响策略的执行效果。其次,如果所选股票的盈利能力不足,可能会导致投资回报率较低。最后,如果所选股票的中期趋势不稳定,可能会导致策略的执行效果不佳。

如何优化?

为了优化这个策略,我们可以考虑增加更多的筛选条件,例如筛选出盈利能力较强、市盈率较低、负债率较低等股票。此外,我们还可以考虑使用技术分析指标,例如MACD、布林线等,来辅助筛选股票。

最终的选股逻辑

以下是最终的选股逻辑:

  1. 筛选出至少5根均线重合的股票,即5日、10日、20日、30日和60日均线重合。
  2. 筛选出10日涨幅大于0小于35的股票。
  3. 筛选出PE>0的股票。
  4. 在满足以上条件的股票中,筛选出盈利能力较强、市盈率较低、负债率较低等股票。
  5. 使用技术分析指标,例如MACD、布林线等,辅助筛选股票。

python代码参考

以下是参考代码:

import talib

def get_rolling_average(prices, n):
    """
    获取n日的滚动平均值
    """
    return talib.MA(prices, n)

def get_stochastic_rsi(prices, n):
    """
    获取n日的Stochastic RSI指标
    """
    rsi = talib.RSI(prices, n)
    k, d = rsi
    return k, d

def get筛选条件(prices, n):
    """
    获取n日的均线重合、涨幅和PE条件
    """
    ma5, ma10, ma20, ma30, ma60 = get_rolling_average(prices, 5), get_rolling_average(prices, 10), get_rolling_average(prices, 20), get_rolling_average(prices, 30), get_rolling_average(prices, 60)
    diff = prices[-1] - prices[0]
    close_price = prices[-1]
    gain = close_price - prices[0]
    pe = prices[-1] / prices[0]
    return ma5, ma10, ma20, ma30, ma60, diff, gain, pe

def get筛选结果(prices, n):
    """
    获取n日的筛选结果
    """
    ma5, ma10, ma20, ma30, ma60, diff, gain, pe = get筛选条件(prices, n)
    if ma5 == ma10 == ma20 == ma30 == ma60:
        return True
    else:
        return False

def get筛选结果_with_indicator(prices, n):
    """
    获取n日的筛选结果和Stochastic RSI指标
    """
    ma5, ma10, ma20, ma30, ma60, diff, gain, pe = get筛选条件(prices, n)
    k, d = get_stochastic_rsi(prices, n)
    if ma5 == ma10 == ma20 == ma30 == ma60:
        return True, k, d
    else:
        return False, k, d

使用方法:

import talib
import pandas as pd

# 读取股票数据
df = pd.read_csv('stock_data.csv')

# 筛选出n日均线重合、涨幅和PE条件
ma5, ma10, ma20, ma30, ma60, diff, gain, pe = get筛选条件(df['close'], 10)

# 筛选出符合条件

## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

select_sentence = '市值小于100亿' #选股语句。

模板如何使用?

点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


## 如果有任何问题请添加 下方的二维码进群提问。
![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论