(iwencai量化策略)KDJ刚形成金叉_、企业性质、振幅大于1

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

问财量化选股策略逻辑

选股逻辑为:振幅大于1,企业性质优秀,KDJ刚形成金叉。

选股逻辑分析

该选股逻辑考虑了股票价格波动较大、企业基本面良好以及技术面的变化。振幅大于1表明该股价格波动较大,存在投机机会和投资价值,企业性质优秀保证了企业的盈利能力和可持续性,而刚形成的KDJ金叉则表明股票处于技术面上的买入信号。如果股票符合以上条件,则可以考虑进行买入操作。

有何风险?

该选股逻辑有以下风险:

  1. KDJ金叉可能是短期信号,不一定代表长期市场趋势;
  2. 振幅大可能忽略了短期股票波动而忽略了企业基本面和股票内在价值;
  3. 将企业基本面、技术面和市场表现单一因素考虑不充分,可能导致选出风险偏高的股票。

如何优化?

在选股策略中添加其他基本面指标、技术指标、市场表现指标等多个维度考虑,综合判断股票市场表现以及内在的价值。可以考虑引入机器学习和数据挖掘技术,借助大数据分析和模型优化技术实现更加准确、有效的选股策略。

最终的选股逻辑

在综合以上分析基础上,完善后的选股逻辑如下:

  • 企业性质优秀,包括但不限于利润率、成长性、股息率等;
  • 市盈率、市净率等基本面指标均优秀;
  • KDJ刚形成金叉,表明技术面上处于买入信号;
  • 振幅大于1,说明价格波动较大;
  • 在技术面上,可以考虑其他技术指标,如MACD、RSI等;
  • 根据市场情况和个人风险偏好,选择适当的排名范围;
  • 在选股过程中,综合考虑技术指标、基本面指标、市场宏观指标、流动性指标、热度等多个方面进行筛选;
  • 根据综合信息判断股票的投资价值及风险情况,最终得出投资决策。

同花顺指标公式代码参考

该选股逻辑的同花顺指标公式如下:

/* 选股公式 */
A:XX企业性质;
B:REF(KDJJ,2)<REF(KDJJ,1) AND KDJJ>KDJJ1 AND KDJJ>CLOSE AND KDJJ1>CLOSE1;
C:(HIGH-LOW)/REF(CLOSE,1)>EPS;
A AND B AND C<=N; /* N为排名范围 */

其中,A:XX企业性质表示企业性质优秀,B:REF(KDJJ,2)<REF(KDJJ,1) AND KDJJ>KDJJ1 AND KDJJ>CLOSE AND KDJJ1>CLOSE1表示当前KDJJ大于KDJJ1并且大于收盘价,并且KDJJ的2日前的值小于1日前的值,即刚形成金叉。C:(HIGH-LOW)/REF(CLOSE,1)>EPS表示振幅大于1。A AND B AND C<=N 表示逻辑与且排名不高于N。

Python代码参考

适用于Tushare库的Python选股代码如下:

import tushare as ts
import numpy as np

def is_selected(code, eps=1, rank_range=(1, 50)):
    '''
    判断股票是否满足选股逻辑
    '''
    df_basic = ts.get_stock_basics()
    if not XX企业性质:
        return False
    df_hist = ts.get_hist_data(code)
    if df_hist.empty or len(df_hist) < 10:
        return False
    kdjj, kdjj1, k, d, close, close1 = talib.STOCH(df_hist['high'].values, df_hist['low'].values, df_hist['close'].values)
    if kdjj[-1] < kdjj1[-1] or kdjj[-1] < df_hist['close'].iloc[-1] or kdjj[-2] > df_hist['close'].iloc[-2]:
        return False
    if (df_hist['high'] - df_hist['low']).mean() / df_hist['close'].iloc[-1] <= 0.01:
        return False
    rank = ts.top_list(df_moneyflow.index[0])['code'].tolist().index(code) + 1
    if rank < rank_range[0] or rank > rank_range[1]:
        return False
    return True

# 获取热度排名前N的股票列表,遍历股票进行选股
stocks = ts.top_list()
selected_stocks = []
for i in range(N):
    code = stocks['code'].iloc[i]
    if is_selected(code, rank_range=(1, N)):
        selected_stocks.append(code)

# 利用选股结果进行股票交易
for code in selected_stocks:
    pass # 参考其他策略

其中需要根据选股策略修改参数,通过tushare库获取股票基本面信息和历史交易数据,并利用策略中设定的其他指标进行计算判断,最后利用选股结果进行股票交易。需要使用TA-Lib库计算KDJ指标。

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

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧