(supermind量化)连续5年ROE>15%_、昨天换手率>8%、至少5根均线重合的股

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 昨天换手率>8%
  • 连续5年ROE>15%

选股逻辑分析

  • 这个策略主要基于技术分析和基本面分析。首先,选择至少5根均线重合的股票,这通常意味着股票价格趋势稳定,有较强的支撑和阻力。其次,选择昨天换手率大于8%的股票,这表明市场活跃度较高,可能有更多的交易机会。最后,选择连续5年ROE大于15%的股票,这表明公司盈利能力较强,具有较好的投资价值。

有何风险?

  • 这个策略的局限性在于它只能选择部分股票进行投资,无法覆盖整个市场。此外,如果市场出现大幅波动,该策略可能会出现较大的回撤风险。

如何优化?

  • 为了降低风险,可以考虑将策略组合起来,与其他策略进行结合。例如,可以将该策略与价值投资策略相结合,选择低估值、高ROE的股票进行投资。
  • 另外,可以考虑使用量化交易软件进行自动化交易,以提高交易效率和降低交易成本。

最终的选股逻辑

  • 选择至少5根均线重合的股票
  • 选择昨天换手率大于8%的股票
  • 选择连续5年ROE大于15%的股票
  • 将该策略与价值投资策略相结合,选择低估值、高ROE的股票进行投资
  • 使用量化交易软件进行自动化交易,以提高交易效率和降低交易成本

python代码参考

  • 以下是基于pandas和ta-Lib库的Python代码示例,用于实现该策略:
import pandas as pd
import talib

def get_moving_average(df, n):
    """获取n日移动平均线"""
    MA = talib.MA(df['close'], n)
    df['MA%s' % n] = MA
    return df

def get_volume(df):
    """获取成交量"""
    df['volume'] = df['volume'].diff()
    df['volume'] = df['volume'].fillna(0)
    return df

def get_roe(df):
    """获取ROE"""
    df['roe'] = df['net_income'] / df['total_assets'] * 100
    return df

def get筛选条件(df):
    """获取筛选条件"""
    df['ma5'] = get_moving_average(df, 5)
    df['ma10'] = get_moving_average(df, 10)
    df['ma20'] = get_moving_average(df, 20)
    df['ma60'] = get_moving_average(df, 60)
    df['volume昨天'] = get_volume(df)
    df['roe连续5年'] = get_roe(df)
    return df

def get_top_n(df, n):
    """获取前n个最大的股票"""
    df = df.sort_values(by='close', ascending=False)
    return df.head(n)

def get_stocks(df):
    """获取所有股票"""
    stocks = df.index.tolist()
    return stocks

def main():
    # 获取所有股票数据
    df = pd.read_csv('stock_data.csv')

    # 筛选条件
    df = get筛选条件(df)

    # 获取前n个最大的股票
    stocks = get_top_n(df, 50)

    # 输出股票列表
    print(stocks)

if __name__ == '__main__':
    main()

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论