(supermind量化)流通市值大于100亿元_、昨天换手率>8%、至少5根均线重合的股

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 昨天换手率>8%
  • 流通市值大于100亿元

选股逻辑分析

  • 这个策略的逻辑是基于技术分析和市场流动性来筛选股票。首先,要求股票至少有5根均线重合,这表明股票价格趋势相对稳定,有利于投资者进行长期投资。其次,要求昨天换手率大于8%,这表明股票市场活跃度较高,有利于投资者进行交易。最后,要求流通市值大于100亿元,这表明股票规模较大,有利于投资者进行投资。

有何风险?

  • 这个策略的局限性在于它只能筛选出部分股票,而不能保证筛选出的股票一定会有良好的表现。此外,技术分析和市场流动性分析也存在一定的不确定性,因此不能保证筛选出的股票一定会有良好的投资回报。

如何优化?

  • 为了优化这个策略,可以考虑加入更多的筛选条件,例如股票的盈利能力、财务状况等。此外,还可以考虑加入更多的技术分析指标,例如股票的MACD、RSI等,以提高策略的准确性和可靠性。

最终的选股逻辑

  • 选取至少5根均线重合的股票,昨天换手率大于8%,流通市值大于100亿元,并且股票盈利能力良好、财务状况稳定、技术分析指标良好的股票作为投资标的。

python代码参考

  • 以下是一个简单的Python代码示例,用于筛选符合上述策略的股票:
import talib
import pandas as pd

def get_stock_data():
    # 获取股票数据
    df = pd.read_csv('stock_data.csv')
    return df

def get_sma(df, n):
    # 计算SMA
    smas = talib.SMA(df['close'], timeperiod=n)
    return smas

def get_rsi(df, n):
    # 计算RSI
    rsi = talib.RSI(df['close'], timeperiod=n)
    return rsi

def get_ema(df, n):
    # 计算EMA
    emas = talib.EMA(df['close'], timeperiod=n)
    return emas

def get_cross_sma_ema(df, n1, n2):
    # 计算SMA和EMA的交叉
    cross = talib.CROSS(df['close'], get_sma(df, n1), get_ema(df, n2))
    return cross

def get_5均线重合(df):
    # 获取5日均线
    df['ma5'] = talib.MA(df['close'], timeperiod=5)
    df['ma10'] = talib.MA(df['close'], timeperiod=10)
    df['ma20'] = talib.MA(df['close'], timeperiod=20)
    df['ma30'] = talib.MA(df['close'], timeperiod=30)
    df['ma60'] = talib.MA(df['close'], timeperiod=60)

    # 获取5日均线与10日均线、10日均线与20日均线、20日均线与30日均线、30日均线与60日均线的交叉点
    cross1 = talib.CROSS(df['ma5'], df['ma10'])
    cross2 = talib.CROSS(df['ma10'], df['ma20'])
    cross3 = talib.CROSS(df['ma20'], df['ma30'])
    cross4 = talib.CROSS(df['ma30'], df['ma60'])

    # 筛选出至少5根均线重合的股票
    result = df[(cross1 & cross2 & cross3 & cross4) & (df['ma5'] > df['ma10']) & (df['ma10'] > df['ma20']) & (df['ma20'] > df['ma30']) & (df['ma30'] > df['ma60'])]
    return result

def get_yesterday_cross_sma_ema(df, n1, n2):
    # 获取昨天收盘价与SMA和EMA的交叉
    cross = talib.CROSS(df['close'], df['close'].shift(1), get_sma(df, n1), get_ema(df, n2))
    return cross

def get筛选条件(df):
    # 获取昨天换手率
    df['yesterday_cross_sma_ema'] = get_yesterday_cross_sma_ema(df, 5, 20)
    df['yesterday_cross_sma_ema'] = df['yesterday_cross_sma_ema'] * df['

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

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

模板如何使用?

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


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

评论