(同花顺量化)10天内涨停天数大于2_、昨日非涨停板、rsi小于65

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

问财量化选股策略逻辑

选股逻辑:选出RSI指标小于65,昨日非涨停板,10天内涨停天数大于2的股票。

选股逻辑分析

选股逻辑考虑了市场热度,通过多日涨停天数进行判断,但涨停板并不一定代表市场热度,同时选股逻辑较为单一,难以全面反应股票公司的财务状况和生产经营情况。

有何风险?

风险在于以涨停板天数来判断市场热度,忽略了其他重要的市场因素。同时,选股逻辑较单一,若选股因素不够全面,可能会选中业绩不佳、风险较高的股票。

如何优化?

可以综合考虑多个市场因素来判断市场热度,例如股票涨跌情况、资金流向、版块热度等,综合判断市场热度,避免单一因素造成误判。同时,应该综合考虑多种因素,例如财务数据、行业竞争等,全面评估公司的经营情况和潜在风险。

最终的选股逻辑

选股逻辑:选出RSI指标小于65,昨日非涨停板,10天内涨停天数大于2 ,股价不高于60元。

同花顺指标公式代码参考

C1: RSI(CLOSE, 14) < 65
C2: NOT(REF(涨跌幅, 1) >= 9.9)
C3: COUNT(IF(涨幅 >= 9.8, 1, 0), 10) > 2
C4: CLOSE <= 60

SELECT * FROM STOCK_LIST
WHERE C1 AND C2 AND C3 AND C4
ORDER BY DESCENDING(个股热度)

Python代码参考

import pandas as pd
import akshare as ak
import talib

def get_stock_list():
    result_df = pd.DataFrame()
    # 获取个股热度排行榜
    stock_pool = ak.stock_em_yjbb_industry_board_ths(date="20220107")
    stock_pool.sort_values(by='个股热度', ascending=False, inplace=True)
    for code in stock_pool['股票代码'][:100]:
        # 判断是否为涨停股、股价等条件
        stock_k_data = ak.stock_zh_a_daily(symbol=code, adjust="hfq")
        if stock_k_data['涨跌幅'].shift(1).iloc[-1] >= 9.9 or stock_k_data['收盘价'].iloc[-1] > 60:
            continue
        # 判断RSI指标
        rsi = talib.RSI(stock_k_data['收盘价'], timeperiod=14)
        if rsi.iloc[-1] >= 65:
            continue
        # 判断10天内涨停板天数
        count = sum(stock_k_data['涨幅'].shift(i) >= 9.8 for i in range(1, 11))
        if count <= 2:
            continue
        result_df = result_df.append(stock_k_data, ignore_index=True)
    result_df.sort_values(by='个股热度', ascending=False, inplace=True)
    return result_df
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论