(i问财选股策略)换手率3%-12%_、周线macd在零轴之上、rsi小于65

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

问财量化选股策略逻辑

选股逻辑:选择RSI小于65、周线MACD在零轴之上、换手率在3%到12%之间的股票。

选股逻辑分析

该选股策略同样关注股票的技术因素,通过RSI指标判断股票被低估,关注MACD指标判断股票的趋势和买进信号,同时要求换手率在一定区间范围内,以保证股票在一定程度上具有稳定性。

有何风险?

同样忽略了股票的基本面因素,存在较大的市场风险。同时,由于选股策略较为单一,可能会忽略其他有潜力的股票,导致错失机会。此外,换手率仅仅是一个参考因素,无法完全反映股票的业绩和市场状态,因此选股结果具有一定的不确定性。

如何优化?

增加股票的基本面因素如业绩、资产负债率等,加强对股票质量的筛选,避免单纯使用技术分析而导致的交易风险。同时在设置换手率区间时,可以结合市场热度因素进行调整,增加选股的科学性和合理性。

最终的选股逻辑

选取RSI小于65、周线MACD在零轴之上、换手率在3%到12%之间的股票,同时结合其他股票相关指标,进行综合评估和分析,以控制选股策略的风险。

同花顺指标公式代码参考

C2: DIF > 0 AND MACD > 0 AND MACD > 0 OR MACD < 0 AND REF(MACD, 1) < 0 AND MACD > REF(MACD, 1)
C3: TURNOVER > 0.03 AND TURNOVER < 0.12
SELECT * FROM (
SELECT STOCK_LIST.*,
GET_RANKING() AS RANKING
FROM STOCK_LIST) RESULT
WHERE C1 AND C2 AND C3
ORDER BY RANKING DESC

python代码参考

import pandas as pd
import akshare as ak
import talib


def get_ranking(df):
    df = df[df['成交量'] > 0]
    df = df[df['DIFF'] > 0]
    df = df[df['MACD'] > 0]
    df = df[(df['MACD'] > 0) | ((df['MACD'] < 0) & (df['MACD'].shift(1) < 0) & (df['MACD'] > df['MACD'].shift(1)))]
    df = df[(df['换手率'] > 0.03) & (df['换手率'] < 0.12)]
    df['RANKING'] = df['涨跌幅'].rank(ascending=False)
    df = df[df['RANKING'] <= 10]
    df.sort_values(by='RANKING', ascending=True, inplace=True)
    return df


def get_stock_list():
    stock_list = ak.stock_zh_a_spot_em()
    stock_list['市值'] = stock_list['市值'].astype(float)
    stock_list = stock_list[stock_list['市值'] > 0]
    stock_list = pd.merge(stock_list, ak.stock_zh_a_spot_top_n_big_order(symbol="", n='50'), on=['代码'])
    stock_list = pd.merge(stock_list, ak.stock_zh_a_spot_check(symbol="sh600000"), on=['代码'])
    stock_list = pd.merge(stock_list, ak.stock_zh_a_spot_em_limit_up(), on=['代码'])
    stock_list = pd.merge(stock_list, ak.stock_zh_a_daily_em(symbol="", adjust="", start_date='20210101', end_date='', index_bar="", ma=[5, 10, 20, 30, 60, 120], factors=["close"]), on=['代码'])
    stock_list.rename(columns={'开盘价': '开盘', '收盘价': '收盘', '最高价': '最高', '最低价': '最低', '交易日期': '日期', '前收盘价': '昨收盘',
                               '买家委比': '竞价时大单买入', '买家5档累计买入量': '特大单买入量', '卖家5档累计资金流向': '下午净流入'}, inplace=True)
    stock_list['DIFF'], stock_list['DEA'], stock_list['MACD'] = talib.MACD(stock_list['收盘'].astype(float).values, fastperiod=12, slowperiod=26, signalperiod=9)
    stock_list = stock_list[['代码', '名称', '日期', '开盘', '收盘', '最高', '最低', '成交金额', '成交量', '涨跌幅', '市值', 'RSI', 'close', 'MA5', 'MA10', 'MA20', 'MA30', 'MA60', 'MA120', 'DIFF', 'DEA', 'MACD', '竞价时大单买入', '特大单买入量', '下午净流入', '换手率', '有涨停','MAX_MIN']]
    stock_list = get_ranking(stock_list)
    return stock_list
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论