(i问财选股策略)换手率_2%且_9%_、10日涨幅大于0小于35、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 10日涨幅大于0小于35
  • 换手率>2%且<9%

选股逻辑分析

  • 5根均线重合的股票意味着该股票的短期和中期趋势较为稳定,表明市场对该股票的走势较为一致。
  • 10日涨幅大于0小于35的股票意味着该股票近10日内的价格波动较为稳定,表明市场对该股票的走势较为稳定。
  • 换手率>2%且<9%的股票意味着该股票的交易较为活跃,表明市场对该股票的关注度较高。

有何风险?

  • 该策略可能会漏掉一些有潜力的股票,因为其短期和中期趋势不够稳定。
  • 该策略可能会选到一些表现不佳的股票,因为其近10日内的价格波动较为不稳定,交易也较为不活跃。

如何优化?

  • 可以加入更多均线的组合,例如10日、20日、30日等,以更好地反映股票的中期趋势。
  • 可以加入更多筛选条件,例如市盈率、市净率等,以更好地反映股票的价值。

最终的选股逻辑

  • 选取至少5根均线重合的股票
  • 选取10日涨幅大于0小于35的股票
  • 选取换手率>2%且<9%的股票
  • 可以加入更多均线的组合,例如10日、20日、30日等
  • 可以加入更多筛选条件,例如市盈率、市净率等

python代码参考

import talib
import pandas as pd

def get_stock_data(stock_code):
    # 获取股票的历史行情数据
    df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{stock_code}', index_col='Date')
    df = df.dropna()
    df['Close'] = df['Close'].ffill()
    df = df.dropna()
    df['Adj Close'] = df['Adj Close'].ffill()
    df = df.dropna()
    df['Volume'] = df['Volume'].ffill()
    df = df.dropna()
    return df

def get_stock_k_data(stock_code):
    # 获取股票的K线数据
    df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{stock_code}', index_col='Date')
    df = df.dropna()
    df['Open'] = df['Open'].ffill()
    df = df.dropna()
    df['High'] = df['High'].ffill()
    df = df.dropna()
    df['Low'] = df['Low'].ffill()
    df = df.dropna()
    df['Close'] = df['Close'].ffill()
    df = df.dropna()
    df['Adj Close'] = df['Adj Close'].ffill()
    df = df.dropna()
    df['Volume'] = df['Volume'].ffill()
    df = df.dropna()
    return df

def get_stock_ma_data(stock_code, n):
    # 获取股票的n日均线数据
    df = get_stock_k_data(stock_code)
    ma = talib.MA(df['Close'], n)
    df['MA' + str(n)] = ma
    return df

def get_stock_rsi_data(stock_code, n):
    # 获取股票的n日RSI数据
    df = get_stock_k_data(stock_code)
    rsi = talib.RSI(df['Close'], n)
    df['RSI' + str(n)] = rsi
    return df

def get_stock篩選条件_data(stock_code, n, m, rsi_min, rsi_max):
    # 获取股票的n日均线、m日RSI数据
    df = get_stock_ma_data(stock_code, n)
    df = get_stock_rsi_data(stock_code, m)
    # 筛选出符合RSI条件的股票
    df = df[df['RSI' + str(m)] >= rsi_min]
    df = df[df['RSI' + str(m)] <= rsi_max]
    return df

def get_stock篩選結果_data(stock_code, n, m, rsi_min, rsi_max):
    # 获取股票的n日均线、m日RSI数据
    df = get_stock_ma_data(stock_code, n)
    df = get_stock_rsi_data(stock_code, m)
    # 筛选出符合RSI条件的股票
    df = df[df['RSI' + str(m)] >= rsi_min]
    df

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

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

模板如何使用?

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


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

评论