(supermind策略)换手率3%-12%、KDJ刚形成金叉、周线MA5金叉MA10_

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

问财量化选股策略逻辑

该选股策略选股逻辑为:换手率3%-12%,KDJ刚形成金叉,周线MA5金叉MA10。

选股逻辑分析

该选股策略同样在流动性和趋势信号两个方面进行选股。换手率可以筛选出流动性好的股票。KDJ指标通过刚形成金叉来选出顺势股。MA5金叉MA10可以验证股票处于上涨趋势中。

有何风险?

该选股策略同样忽略了许多基本面和行业特征的因素,而且会通过片面的指标选出一些短期板块热度过高的股票。同时,由于该策略仅考虑了较短时间的走势,可能忽略了股票的长期趋势。

如何优化?

同样可增加其他筛选指标,例如股票的估值、ROE、毛利率等基本面数据,或者增加其他技术指标,例如RSI、MACD等来验证选股策略的可靠性。同时,可以加入更长时间的技术指标以判断趋势的长短。

最终的选股逻辑

该选股策略选股逻辑为:总市值> 10亿, 换手率大于等于3%且小于等于12%,KDJ金叉,周线MA5金叉MA10。

同花顺指标公式代码参考

通达信指标公式代码:

MARKET_VALUE>1000000000 
AND TURNOVER_RATIO >= 0.03 AND TURNOVER_RATIO <= 0.12 
AND KDJ_CROSS(0,1)
AND CROSS(MA(CLOSE,5),MA(CLOSE,10),2) > 0

python代码参考

import pandas as pd
from datetime import datetime, timedelta
from pytdx.hq import TdxHq_API

# 创建连接
api = TdxHq_API()
api.connect('119.147.212.81', 7709)

# 所有A股列表
all_stocks = api.get_security_list(1, 0)
df_stocks = pd.DataFrame(all_stocks, columns=['code', 'name', 'market_type', 'exchange_type'])

# 获取A股财报数据
selected_stocks = []
for code in df_stocks['code']:
    stock_k_data = api.get_k_data(code, 'W')
    if stock_k_data is not None and len(stock_k_data) > 1 \
            and stock_k_data['turnover_ratio'].quantile(0.7) >= 0.03 \
            and stock_k_data['turnover_ratio'].quantile(0.7) <= 0.12 \
            and stock_k_data['kdjj'].iloc[-2] < stock_k_data['kdjj'].iloc[-1] \
            and (pd.Series(stock_k_data['close']).rolling(window=5).mean().iloc[-2] < pd.Series(stock_k_data['close']).rolling(window=10).mean().iloc[-2]) \
            and (pd.Series(stock_k_data['close']).rolling(window=5).mean().iloc[-1] > pd.Series(stock_k_data['close']).rolling(window=10).mean().iloc[-1]):
        selected_stocks.append({'code':code, 'name':df_stocks[df_stocks['code']== code]['name'].values[0], 
                                    'market_type':df_stocks[df_stocks['code']== code]['market_type'].values[0],
                                    'turnover_ratio': stock_k_data['turnover_ratio'].iloc[-1]})
selected_stocks = pd.DataFrame(selected_stocks)
selected_stocks = selected_stocks.sort_values(by=['turnover_ratio'], ascending=False).head(n)

# 断开连接
api.disconnect()
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论