(supermind量化策略)task14/a/元宇宙、开盘价在十日线左右、KDJ刚形成金

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

问财量化选股策略逻辑

选股策略为:在元宇宙行业中选取开盘价在十日均线左右且KDJ指标刚形成金叉的股票。

选股逻辑分析

本选股策略同样以行业和技术指标作为筛选条件,KDJ指标能够较好地反映出股票的价格走势和超买超卖情况,同时结合十日均线进行筛选,可以更好地确定进场时机和风险控制。相较于前两个选股逻辑,本逻辑加入了KDJ指标的判断条件,以更好地确定股票价格的走势。

有何风险?

本选股策略中存在以下风险:

  1. KDJ指标并不一定准确反映股票价格走势,可能存在一定误导性;
  2. 此选股逻辑仍具有一定的主观性,可能选出风险较高的股票。

如何优化?

为了提高本选股策略的可靠性和全面性,可以加入一些辅助指标,如近期的股价和成交量分析、均线的多空判断等,以更好地确定股票的发展潜力和差异化特质。此外,在行业、市场和技术层面上,应加强指标选择和选股筛选标准化,以提高选股逻辑的准确性和普适性。

最终的选股逻辑

在元宇宙行业中,选取开盘价在十日均线左右且KDJ指标刚形成金叉的股票。

同花顺指标公式代码参考

选出符合元宇宙行业的股票:INDUSTRY == '元宇宙';

选取开盘价在十日均线左右的股票:
CROSS(OPEN, MA(CLOSE, 10)) AND CROSS(MA(CLOSE, 10), REF(CLOSE, 1));

选出KDJ刚形成金叉的股票:
KDJ(9, 3, 3, 1).KSGN > KDJ(9, 3, 3, 1).DSGN AND REF(KDJ(9, 3, 3, 1).KSGN, 1) <= REF(KDJ(9, 3, 3, 1).DSGN, 1) AND \
KDJ(9, 3, 3, 1).KSGN > REF(KDJ(9, 3, 3, 1).KSGN, 1);

合并选股条件:
(INDUSTRY == '元宇宙') AND \
(CROSS(OPEN, MA(CLOSE, 10)) AND CROSS(MA(CLOSE, 10), REF(CLOSE, 1))) AND \
(KDJ(9, 3, 3, 1).KSGN > KDJ(9, 3, 3, 1).DSGN AND REF(KDJ(9, 3, 3, 1).KSGN, 1) <= REF(KDJ(9, 3, 3, 1).DSGN, 1) AND \
KDJ(9, 3, 3, 1).KSGN > REF(KDJ(9, 3, 3, 1).KSGN, 1));

python代码参考

import tushare as ts
import pandas as pd

def get_eligible_stocks():
    eligible_stocks = []
    stock_data = ts.get_stock_basics()
    for stock_code, row in stock_data.iterrows():
        if '元宇宙' not in row['industry']:
            continue
        if (ts.get_today() - row['timeToMarket']).days < 365 * 2:
            continue
        prices = ts.get_k_data(stock_code, index=True)[['date', 'open', 'close', 'high', 'low', 'volume', 'amount']]
        if len(prices) < 20:
            continue
        ma10 = prices['close'].rolling(10).mean()
        if not ((prices['open'] - ma10).abs() / prices['open'] < 0.05).iloc[-1]:
            continue
        kdj = ts.get_k_data(stock_code, index=True, ktype='D')[['date', 'low', 'high', 'close']]
        kdj['K'], kdj['D'] = ts.STOCH(kdj['high'], kdj['low'], kdj['close'], fastk_period=9, slowk_period=3, slowk_matype=3, slowd_period=3, slowd_matype=3)
        if not (kdj.iloc[-1]['K'] > kdj.iloc[-1]['D'] and kdj.iloc[-2]['K'] <= kdj.iloc[-2]['D'] and kdj.iloc[-1]['K'] > kdj.iloc[-2]['K']):
            continue
        eligible_stocks.append(stock_code)
    return eligible_stocks

print(get_eligible_stocks())

本代码同样使用tushare库来获取股票数据,根据选股逻辑筛选符合条件的股票。相较于前两个选股逻辑,本逻辑加入了KDJ指标的判断条件,并增加了少量辅助指标,可以更全面地评估股票的发展潜力。

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

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

    模板如何使用?

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


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

评论