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

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 10日涨幅大于0小于35
  • 换手率3%-12%

选股逻辑分析

  • 5根均线重合,意味着股票的价格趋势比较稳定,且有较强的支撑和阻力,有利于股票的长期走势。
  • 10日涨幅大于0小于35,说明股票近期有一定的上涨趋势,但还没有达到过高的程度,可以避免追高风险。
  • 换手率3%-12%,说明股票的流动性适中,交易活跃度较高,有利于股票的交易和流通。

有何风险?

  • 该策略只考虑了股票的短期趋势和流动性,没有考虑公司的基本面和行业前景等因素,可能会导致选出的股票表现不佳。
  • 如果股票的价格波动较大,可能会导致均线的重合程度不明显,影响策略的准确性。

如何优化?

  • 可以考虑加入更多的均线和指标,如20日均线、MACD等,以更全面地分析股票的趋势和风险。
  • 可以结合公司的基本面和行业前景等因素,对股票进行更全面的评估和筛选,以提高策略的准确性。

最终的选股逻辑

  • 选取至少5根均线重合的股票
  • 10日涨幅大于0小于35
  • 换手率3%-12%
  • 结合公司的基本面和行业前景等因素,对股票进行更全面的评估和筛选

python代码参考

import talib
import pandas as pd

def get_rolling_average(prices, n):
    """计算n日的滚动平均值"""
    return prices.rolling(n).mean()

def get_crossed_moving_average(prices, fast_n, slow_n):
    """判断fast_n日移动平均线是否交叉slow_n日移动平均线"""
    fast_ma = get_rolling_average(prices, fast_n)
    slow_ma = get_rolling_average(prices, slow_n)
    if fast_ma[-1] > slow_ma[-1]:
        return True
    else:
        return False

def get_stable_stock(prices, n1, n2, n3):
    """判断股票是否为稳定股票"""
    ma1 = get_rolling_average(prices, n1)
    ma2 = get_rolling_average(prices, n2)
    ma3 = get_rolling_average(prices, n3)
    if ma1[-1] == ma2[-1] == ma3[-1]:
        return True
    else:
        return False

def get_crossing_stable_stock(prices, n1, n2, n3):
    """判断股票是否为稳定股票,并且是否出现均线交叉"""
    ma1 = get_rolling_average(prices, n1)
    ma2 = get_rolling_average(prices, n2)
    ma3 = get_rolling_average(prices, n3)
    if ma1[-1] == ma2[-1] == ma3[-1] and get_crossed_moving_average(prices, n1, n2):
        return True
    else:
        return False

def get_stable_stocks(prices):
    """获取至少5根均线重合的稳定股票"""
    n1 = 10
    n2 = 20
    n3 = 30
    stocks = []
    for i in range(len(prices)):
        if get_crossing_stable_stock(prices, n1, n2, n3):
            stocks.append(prices[i])
    return stocks

def get_stocks_with_positive_trend(prices):
    """获取10日涨幅大于0小于35的股票"""
    stocks = []
    for i in range(len(prices)):
        if prices[i] > prices[i-10] and prices[i] < prices[i-10] + 35:
            stocks.append(prices[i])
    return stocks

def get_stocks_with_positive_trend_and_stable_prices(prices):
    """获取10日涨幅大于0小于35的稳定股票"""
    stocks = []
    for i in range(len(prices)):
        if prices[i] > prices[i-10] and prices[i] < prices[i-10] + 35 and get_stable_stock(prices, 10, 20, 30):
            stocks.append(prices[i])
    return stocks

def get_stocks_with_positive_trend_and_stable_prices_with换手率限制(prices, min换手率):
    """获取10日涨幅大于0小于35的稳定股票,并且换手率大于等于min换手率"""
    stocks = []
    for i in range(len(pr

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

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

模板如何使用?

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


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

评论