(iwencai量化策略)kdj(k)增长值_、换手率_2%且_9%、振幅大于1

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

问财量化选股策略逻辑

选股逻辑为:振幅大于1,换手率>2%且<9%,KDJ指标中K值增长。该选股策略主要以技术面指标为主,即振幅、换手率和KDJ指标中K值增长,以筛选出潜在股票走势较强的标的。

选股逻辑分析

该选股逻辑主要以技术面指标为主,通过振幅和换手率来判断股票的走势和市场认可度,同时加入KDJ指标中K值增长的要求,以筛选出潜在走势较强的标的,该选股策略较为具有针对性和操作性。

有何风险?

该选股策略也存在一定的风险。首先,单纯依靠技术面指标可能会忽略掉一些股票的基本面因素,也可能会错过一些优质标的。其次,KDJ指标中K值增长的时间长度不好确定,在一些特殊行情中可能会导致误判,如在震荡行情中,KDJ指标中K值不易上升,但一定会有一些股票震荡行情中也有较好表现,可能会被排除掉。

如何优化?

为减少筛选出来的标的中的误判,可以加入更多的技术面指标,如MACD、RSI等指标,以充分判断股票的走势情况。同时,可以将KDJ指标中K值增长的时间长度作为可调节参数,并加入更多的行情判断,以取得更好的结果。

最终的选股逻辑

选股条件为:振幅大于1,换手率>2%且<9%,KDJ指标中K值增长。同时,加入更加完备的技术面指标,并将KDJ指标中K值增长的时间长度作为可调节参数,以更准确地筛选出符合条件的标的。

同花顺指标公式代码参考

选股条件为:振幅大于1,换手率>2%且<9%,KDJ指标中K值增长。

C1: ABS((HIGH/LOW-1)*100)>=1;//振幅大于1
C2: TURNOVER>2 AND TURNOVER<9;//换手率大于2%小于9%
C3: REF((CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100,2)>REF((CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100,3);//KDJ指标中K值增长

SYMBOL: C1 AND C2 AND C3;

Python代码参考

import pandas as pd
import tushare as ts

def select_stocks(length):
    ts.set_token('your token')
    pro = ts.pro_api()

    # 获取股票数据
    stock_data = pro.stock_basic(list_status='L', exchange='SSE', fields='ts_code,symbol,name,industry,list_date')
    current_date = '20220308'

    # 筛选符合条件的股票
    selected_stocks = []
    for index, row in stock_data.iterrows():
        code = row['ts_code']
        info = {}
        info['code'] = code
        info['name'] = row['name']

        # 排除科创板股票
        industry = row['industry']
        if industry.startswith('688'):
            continue

        # 获取技术数据
        tech_data = pro.daily(ts_code=code, start_date='20220301', end_date=current_date, fields='high,low,close,vol,open')
        if tech_data.empty:
            continue

        # 获取KDJ指标中K值
        kdj_data = pro.index_daily(ts_code='000001.SH', start_date='20220301', end_date=current_date, fields='close,low,high')
        kdj_n = 9
        kdj_rsv = (tech_data['close'] - tech_data['low'].rolling(kdj_n).min()) / (tech_data['high'].rolling(kdj_n).max() - tech_data['low'].rolling(kdj_n).min())
        kdj_k = pd.DataFrame({'kdj_k': [50]}).append(kdj_rsv.apply(lambda x: 2/3 * kdj_k.iloc[-1]['kdj_k'] + 1/3 * x * 100)).reset_index(drop=True)

        # 获取KDJ指标中K值增长
        kdj_k_growth = (kdj_k['kdj_k'] - kdj_k.shift(1)['kdj_k']).iloc[-1]
        high = tech_data.iloc[-1]['high']
        low = tech_data.iloc[-1]['low']

        if kdj_k_growth > 0 and (high - low) > 1 and tech_data.iloc[-1]['vol'] / pro.stock_basic(ts_code=code).iloc[0]['total_share'] > 0.02 and tech_data.iloc[-1]['vol'] / pro.stock_basic(ts_code=code).iloc[0]['total_share'] < 0.09:
            selected_stocks.append(info)

        if len(selected_stocks) >= length:
            break

    return selected_stocks

致辞

本次问答为问财量化选股策略逻辑的第六十四篇,该选股策略主要以技术面指标为主,加入KDJ指标中K值增长的要求,以筛选出潜在股票走势较强的标的。在未来的选股过程中,应该结合更多的市场因素,建立更全面、更科学的量化分析体系,以获得更好的选股效果。

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

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧