问财量化选股策略逻辑
选股策略为:在元宇宙行业中选取KDJ刚形成金叉,并且非ST股票,五日内涨停五次以上的股票。在每个交易日的10点之前进行选股,选取当日的交易股票。
选股逻辑分析
本选股策略结合了技术面、资产面和时间条件的分析,通过技术面的选股条件,筛选符合要求的股票,再通过非ST股票和五日内涨停五次以上的资产条件,筛选出能够持续上涨的股票,以提高选股准确性和收益性。同时,在每个交易日的10点之前进行选股,能够减小市场波动的影响。
有何风险?
本选股策略存在以下风险:
- 所选条件忽略了公司基本面的要素,可能出现数据不全或失误导致的误判;
- 时间条件的限制可能导致错过一些交易机会;
- 特别是非ST股票和多涨停股票的选取,存在暴涨暴跌的风险,需要谨慎操作。
如何优化?
为提高本选股策略的准确性和鲁棒性,可以:
- 在技术面的选股条件中,加入更多的指标,例如MACD等,以提高选股的准确性;
- 在资产面的选股条件中,加入一些基本面分析,比如已披露的业绩、竞争环境等信息,以更全面的分析股票;
- 在时间条件的限制中,可以适当增加选股时间,以顺应市场波动和变化。
最终的选股逻辑
在元宇宙行业中选取KDJ刚形成金叉,并且非ST股票,五日内涨停五次以上的股票。在每个交易日的10点之前进行选股,选取当日的交易股票。
同花顺指标公式代码参考
# 选股条件:在元宇宙行业中选取KDJ刚形成金叉,并且非ST股票,五日内涨停五次以上的股票
INDUSTRY == '元宇宙' AND KDJ(9,3,3)上穿KDJ(9,3,3)的DEA AND GGT < 0 AND ZTGT-1>=5 AND ST == 0 AND REF(SHORTLN, 2)<-4
# 选股结果:选取当日的交易股票
选股条件:INDUSTRY == '元宇宙' AND KDJ(9,3,3)上穿KDJ(9,3,3)的DEA AND GGT < 0 AND ZTGT-1>=5 AND ST == 0 AND REF(SHORTLN, 2)<-4 AND CURRENT_TIME = 1000
排序规则:EMPTY()
选股数量:EMPTY()
python代码参考
import numpy as np
import pandas as pd
from typing import List
def select_stocks(data: pd.DataFrame, industry: str) -> List[str]:
df = data[data['INDUSTRY'] == industry]
# KDJ
df['KDJ_K'], df['KDJ_D'], df['KDJ_J'] = talib.STOCH(df['HIGH'].values, df['LOW'].values, df['CLOSE'].values, fastk_period=9, slowk_period=3, slowd_period=3)
df['KDJ_金叉'] = (df['KDJ_K'] > df['KDJ_D']) & (df['KDJ_K'].shift() < df['KDJ_D'].shift())
# 非ST股票和涨停次数
df['ST'] = df['NAMES'].str.contains('ST')
df['涨幅'] = df['CLOSE'] / df['CLOSE'].shift(1) - 1
df['涨停'] = df['涨幅'] >= 0.095
df['涨停次数'] = df['涨停'].rolling(window=5).sum()
select_df = df[(df['KDJ_金叉']) & (df['涨停次数'] >= 5) & (~df['ST']) & (df['TIME'] < '10:00:00')].index.tolist()
return select_df
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


