(supermind量化-)振幅大于1、500日内至少2次涨停、10日涨幅大于0小于35_

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

问财量化选股策略逻辑

本股票策略选取以下股票:振幅大于1、500日内至少2次涨停、10日涨幅大于0小于35的股票。

选股逻辑分析

此选股策略综合考虑了涨幅和市场情绪的因素:利用涨幅筛选出近期表现良好的股票,再通过振幅和涨停次数筛选出市场情绪强劲的股票,综合考虑之后选出有较大上涨潜力的股票。同时,限制条件使得选出的股票规模不会过大,更加灵活。

有何风险?

此股票策略仍然存在风险:一方面,不论是市场情绪还是涨幅的指标都有局限性,股票价格受多种因素影响,选股策略不能完全预测未来股票表现。另一方面,随着市场情况和经济形势的变化,股票池中的股票表现也会有调整。

如何优化?

可以通过更加细致的技术分析和基本面分析,加入其他的指标,如MACD、均线、PE、ROE等指标,进一步筛选具有潜力的股票。同时可以根据市场的情况,设计多种投资策略,灵活调整。

最终的选股逻辑

选取振幅大于1、500日内至少2次涨停、10日涨幅大于0小于35的股票。

同花顺指标公式代码参考

  1. 振幅公式:(high-low)/close
    通达信代码:(HHV(HIGH,1)-LLV(LOW,1))/REF(CLOSE,1)
  2. 涨停次数公式:计算500日内涨停次数,使用rolling()和sum()函数求和
    通达信代码:(HIGH / LLV(LOW, 1) > 1.099).SUM(datetime, 500) >= 2
  3. 10日涨幅公式:(close - ref(close, 10)) / ref(close, 10) * 100%
    通达信代码:(CLOSE - REF(CLOSE, 10)) / REF(CLOSE, 10) * 100)
  4. 股票总筛选条件
    通达信代码:(HIGH-LOW)/REF(CLOSE,1)>0.01 AND (HIGH/LOW.1>1.099).SUM(500)>=2 AND ((CLOSE-REF(CLOSE,10))/REF(CLOSE,10)*100>0 AND (CLOSE-REF(CLOSE,10))/REF(CLOSE,10)*100<35)

python代码参考

import tushare as ts

# 定义筛选条件
amplitude_filter = 0.01
rise_stop_filter = 2
momentum_filter = {'start': 0, 'end': 35}
stock_pool_size = 200

# 获取历史交易日列表
trade_cal = ts.trade_cal()
trade_days = trade_cal[trade_cal["isOpen"] == 1].sort_values(by="calendarDate", ascending=False).head(500).calendarDate.tolist()

# 获取股票列表
stock_list = ts.get_stock_basics()

# 筛选振幅和涨停满足条件的股票
selected_stocks = stock_list[(stock_list["high"] - stock_list["low"]) >= amplitude_filter * stock_list["close"]]
selected_stocks = selected_stocks[
    (selected_stocks["high"] / selected_stocks["low"].shift(1) > 1.099).rolling(len(trade_days)).sum() >= rise_stop_filter]
selected_stocks = selected_stocks[selected_stocks.index.get_level_values(0).astype(str).isin(trade_days)]

# 筛选涨幅满足条件的股票
momentum = (selected_stocks["close"] - selected_stocks["close"].shift(10)) / selected_stocks["close"].shift(10) * 100
selected_stocks = selected_stocks[
    (momentum >= momentum_filter['start']) & (momentum <= momentum_filter['end'])]

# 选取股票池中的前200只股票
selected_stocks = selected_stocks.nlargest(stock_pool_size, "totalAssets")

# 输出选中的股票
print(selected_stocks.index.tolist())

以上代码仅供参考,具体实现方法可以根据投资者需要和市场情况进行调整。

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

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

    模板如何使用?

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


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

评论