问财量化选股策略逻辑
选股逻辑为:在换手率3%-12%,剔除北京A股,选出KDJ刚形成金叉的股票。
选股逻辑分析
该选股逻辑主要利用了技术分析指标KDJ的信号,通过判断金叉信号来选出具有上涨潜力的股票。同时,也考虑了资金面因素,通过选取换手率较为活跃的股票进行筛选。
有何风险?
该选股逻辑只关注了KDJ指标,可能会出现其他指标影响导致的盲点。同时,KDJ指标具有一定的滞后性,存在选股信号过期的风险。
如何优化?
可以考虑引入其他技术指标进行综合分析,例如MACD指标、RSI指标等,以提高选股的精度。可以引入机器学习方法进行模型训练和特征工程,以提高选股的稳定性和效果。
最终的选股逻辑
在换手率3%-12%,剔除北京A股,选取KDJ刚形成金叉的股票,综合考虑其他的指标并分析选股。
同花顺指标公式代码参考
K:=SMA((CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
FILTER:(CROSS(K,D) AND REF(K,1)<REF(D,1)),0,1;
Python代码参考
import tushare as ts
import numpy as np
import pandas as pd
def select_good_stocks():
ts.set_token('your_token')
pro = ts.pro_api()
# 筛选出换手率3%-12%,剔除北京A股
df1 = pro.stock_basic(exchange='SZSE', list_status='L', fields='ts_code,name,industry,pe,pb,turnover_rate,amount,total_mv,float_mv')
df1 = df1[(df1['turnover_rate'] >= 3) & (df1['turnover_rate'] <= 12)]
df1 = df1[(df1['name'].str.contains('ST') == False)]
df1 = df1[(df1['ts_code'].str.startswith('002') == True) | (df1['ts_code'].str.startswith('000') == True)]
df2 = pro.daily(ts_code='', start_date='20220101', end_date='20220110')
df2 = df2.groupby(['ts_code']).first() # 获取开盘价
df2 = df2[['open']]
df1 = pd.merge(df1, df2, on="ts_code", how="inner") # 将dataframe按ts_code进行连接
# 获取KDJ指标中的K、D、J值
df3 = pro.daily(ts_code='', start_date='20220110', end_date='20220110')
for code in df1['ts_code']:
df_kdj = pro.new_share_kline(ts_code=code)
df_kdj = df_kdj.tail(9)
low_list = df_kdj.low
high_list = df_kdj.high
close = df3[df3['ts_code']==code]['close'].iat[0]
low_9 = min(low_list)
high_9 = max(high_list)
rsv = (close - low_9) / (high_9 - low_9) * 100
df_kdj['rsv'] = rsv
df_kdj['k'] = df_kdj['rsv'].rolling(window=3).mean()
df_kdj['d'] = df_kdj['k'].rolling(window=3).mean()
df_kdj['j'] = 3 * df_kdj['k'] - 2 * df_kdj['d']
if df_kdj['k'].iat[-1] > df_kdj['d'].iat[-1] and df_kdj['k'].iat[-2] < df_kdj['d'].iat[-2]:
df1 = df1[df1['ts_code'] != code]
df1 = df1.head(20)
return df1
good_stocks = select_good_stocks()
print(good_stocks)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


