(同花顺量化)20日均线大于120日均线_、昨日非涨停板、rsi小于65

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

问财量化选股策略逻辑

选股逻辑:选出RSI指标小于65,昨日非涨停板,20日均线大于120日均线的股票。

选股逻辑分析

结合技术面的指标,选股指标较少,难以全面反映公司的基本面情况,选股的准确性较差。

有何风险?

在技术面的基础上,缺少基本面筛选,导致对公司的财务状况、生产经营等方面的情况无法全面了解,可能会选择一些业绩相对较差、风险较大的公司。

如何优化?

可以加入更多的基本面指标进行选股,例如公司的营收增长、净利润等财务数据,以及股东控制力等基本面指标。同时,可以根据目标市场的行情和业务特点,适当调整技术面的选股指标,例如加入MACD、KDJ等指标,以更好地适应市场行情的变化。

最终的选股逻辑

选股逻辑:选出RSI指标小于65,昨日非涨停板,20日均线大于120日均线的股票,并且20日均线处于上升趋势。

同花顺指标公式代码参考

C1: RSI(CLOSE, 14) < 65
C2: NOT(REF(涨跌幅, 1) >= 9.9)
C3: MA(CLOSE, 20) > MA(CLOSE, 120)
C4: REF(MA(CLOSE, 20), 1) < MA(CLOSE, 20)

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:
            continue
        # 判断RSI指标
        rsi = talib.RSI(stock_k_data['收盘价'], timeperiod=14)
        if rsi.iloc[-1] >= 65:
            continue
        # 判断20日和120日均线指标
        ma20 = talib.MA(stock_k_data['收盘价'], timeperiod=20)
        ma120 = talib.MA(stock_k_data['收盘价'], timeperiod=120)
        if ma20.iloc[-1] <= ma120.iloc[-1]:
            continue
        # 判断20日均线处于上升趋势
        if ma20.iloc[-1] <= ma20.iloc[-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)
收益&风险
源码

评论