(supermind)振幅大于1、昨天龙虎榜、kdj(k)增长值_

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

问财量化选股策略逻辑

选股逻辑为振幅大于1、昨天出现在龙虎榜单上,且当天KDJ(K值)增长的股票。通过振幅筛选出波动较大的潜在投资机会,通过龙虎榜单筛选出资金异动的股票,以及通过KDJ指标判断股票短期趋势,综合考虑多方面因素进行选股。

选股逻辑分析

  1. 振幅大于1的股票在短期内波动较大,具有一定的投资机会;
  2. 龙虎榜单的股票,通常说明存在资金流入或离开的情况,短期内对股价波动产生一定的影响;
  3. KDJ指标是衡量股票技术面的重要指标,KDJ(K值)增长可判断股票的短期趋势。

有何风险?

  1. 市场风险和行情反转的风险存在;
  2. KDJ指标的判断也有一定的主观性,需要考虑多方面因素,综合分析;
  3. 龙虎榜单上的个股,可能出现主力因素,不能仅仅通过单一指标判断。

如何优化?

  1. 引入更多指标进行综合判断,如MACD等指标,提升选股策略的稳定性和准确性;
  2. 对KDJ指标的判断要注意其主观性,引入更多其他指标进行协同分析;
  3. 龙虎榜单的判断不可仅仅通过单一指标进行,要综合考虑股票本身的基本面和商业模式等因素。

最终的选股逻辑

选股逻辑为振幅大于1、昨天出现在龙虎榜单上,今天KDJ(K值)增长的股票。通过波动够大的前提,综合考虑资金流动和股价的短期趋势等多方面因素,筛选出具备投资价值的股票。

同花顺指标公式代码参考

# 计算振幅
high = REF(HIGH, 1)
low = REF(LOW, 1)
close = REF(CLOSE, 1)
amplitude = 100 * (high - low) / close
picks_amplitude = IF(amplitude > 1, 1, 0)

# 判断昨天是否出现在龙虎榜上
lhb = LHB
yesterday_lhb = REF(lhb, 1)
picks_lhb = IF(yesterday_lhb['buy'] + yesterday_lhb['sell'] > 0, 1, 0)

# 计算KDJ指标
RSV = (CLOSE - LLV(LOW, 9)) / (HHV(HIGH, 9) - LLV(LOW, 9)) * 100
K = SMA(RSV, 3, 1)
D = SMA(K, 3, 1)
J = 3 * K - 2 * D
today_KDJ_K = REF(K, 1)
picks_KDJ = IF(K > today_KDJ_K, 1, 0)

picks = picks_amplitude * picks_lhb * picks_KDJ
picks_final = SortBy(picks, C, descending=True)

# 输出选股结果
WriteIf(picks_final, picks_final, 0)

Python代码参考

# 计算振幅
df['amplitude'] = 100 * (df['high'] - df['low']) / df['close']
picks_amplitude = df[df['amplitude'] > 1].index.tolist()

# 判断昨天是否出现在龙虎榜上
lhb_data = pro.top_list(trade_date='20211008')
lhb_data.set_index('ts_code', inplace=True)
picks_lhb = lhb_data[(lhb_data['buy'] + lhb_data['sell']) > 0].index.tolist()

# 计算KDJ指标
df['RSV'] = (df['close'] - df['low'].rolling(9).min()) / (df['high'].rolling(9).max() - df['low'].rolling(9).min()) * 100
df['K'] = df['RSV'].ewm(com=2, adjust=False).mean()
df['D'] = df['K'].ewm(com=2, adjust=False).mean()
df['J'] = 3 * df['K'] - 2 * df['D']
picks_KDJ = df[df['K'] > df['K'].shift(1)].index.tolist()

# 选取符合条件的股票
picks = set(picks_amplitude) & set(picks_lhb) & set(picks_KDJ)
picks_final = df.loc[picks].sort_values(by='close', ascending=False)['ts_code'].tolist()

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

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

    模板如何使用?

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


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

评论