(iwencai量化策略)k小于20_、昨天换手率>8%、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 昨天换手率>8%
  • k小于20

选股逻辑分析

  • 这个策略选择至少5根均线重合的股票,这意味着这些股票的走势比较稳定,不容易出现大幅波动。
  • 要求昨天换手率>8%,这表明股票的交易活跃度较高,可能有更多的机会获得收益。
  • 要求k小于20,这表明股票的短期趋势比较平缓,不太可能出现大幅上涨或下跌。

有何风险?

  • 该策略选择的股票可能不符合投资者的偏好和风险承受能力。
  • 如果股票的换手率过高,可能会导致股票价格的剧烈波动,投资者可能会承受较大的风险。
  • 如果股票的k值过低,可能会导致股票价格的波动较小,投资者可能无法获得足够的收益。

如何优化?

  • 可以根据投资者的偏好和风险承受能力选择不同的均线数量和换手率要求。
  • 可以根据股票的具体情况调整k值的范围,以更好地反映股票的短期趋势。

最终的选股逻辑

  • 选择至少5根均线重合的股票
  • 要求昨天换手率>8%
  • 要求k小于20

python代码参考

import talib

def get_stock_info(symbol):
    # 获取股票的基本信息
    data = yf.Ticker(symbol)
    info = data.info
    return info

def get_ma_data(symbol, n):
    # 获取股票的n日均线数据
    data = yf.download(symbol, start='2021-01-01', end='2021-12-31')
    ma = talib.MA(data['Close'], n)
    return ma

def get_sma_data(symbol, n):
    # 获取股票的n日简单移动平均线数据
    data = yf.download(symbol, start='2021-01-01', end='2021-12-31')
    sma = talib.SMA(data['Close'], n)
    return sma

def get_k_data(symbol):
    # 获取股票的k线数据
    data = yf.download(symbol, start='2021-01-01', end='2021-12-31')
    k = talib.KAMA(data['Close'], timeperiod=20)
    return k

def get筛选条件():
    # 获取筛选条件
    ma5 = get_ma_data('AAPL', 5)
    ma10 = get_ma_data('AAPL', 10)
    ma20 = get_ma_data('AAPL', 20)
    sma5 = get_sma_data('AAPL', 5)
    sma10 = get_sma_data('AAPL', 10)
    sma20 = get_sma_data('AAPL', 20)
    k = get_k_data('AAPL')
    ma5_diff = ma5[-1] - ma5[0]
    ma10_diff = ma10[-1] - ma10[0]
    ma20_diff = ma20[-1] - ma20[0]
    sma5_diff = sma5[-1] - sma5[0]
    sma10_diff = sma10[-1] - sma10[0]
    sma20_diff = sma20[-1] - sma20[0]
    if ma5_diff > 0 and ma10_diff > 0 and ma20_diff > 0:
        return True
    elif ma5_diff < 0 and ma10_diff < 0 and ma20_diff < 0:
        return True
    else:
        return False

def get筛选结果():
    # 获取筛选结果
    stocks = yf.get_stocks()
    filtered_stocks = []
    for stock in stocks:
        if get筛选条件():
            filtered_stocks.append(stock)
    return filtered_stocks

def run():
    # 运行策略
    stocks = get筛选结果()
    for stock in stocks:
        print(stock.info['shortName'], stock.info['exchange'], stock.info['industry'], stock.info['sector'], stock.info['marketCap'], stock.info['payoutRatio'], stock.info['trailingP/E'], stock.info['beta'], stock.info['peRatio'], stock.info['roa'], stock.info['roe'], stock.info['diluted EPS'], stock.info['freeCashFlow'], stock.info['ebitda'], stock.info['de

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

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

模板如何使用?

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


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

评论