问财量化选股策略逻辑
选取满足振幅大于1、2019年度分红比例大于25%、KDJ指标形成金叉的股票作为选股对象。
选股逻辑分析
该选股策略主要在考虑股票短期波动性和市场情况下,加入技术面的判断因素。金叉是股票技术面分析中非常重要的指标之一,其可以帮助判断股票的上涨趋势是否加强。选股策略考虑了振幅、分红和技术面三个因素,选出具备实力、价值和趋势的股票。
有何风险?
该选股策略在技术面判断上过度依赖KDJ指标的金叉,可能存在较高的误判率。同时,忽略了股票的基础面情况,例如财务实力、管理能力等。
如何优化?
可以加入更多的技术面指标,例如MACD、DMI等指标,综合判断股票的市场性质和趋势。同时,可以引入公司基本面指标,例如净利润增长率、资产负债率等指标,更全面地了解股票的价值和盈利能力。
最终的选股逻辑
通过综合考虑股票短期波动性、市场情况、技术面和基本面等因素,选取具有实力、价值和趋势优势的股票。
同花顺指标公式代码参考
// 筛选振幅大于1的股票
amplitude = (HIGH - LOW) / OPEN
amplitude_bool = amplitude > 1
// 筛选2019分红比例大于25%的股票
dividend_year = DIVIDENDYIELD * 100
dividend_year_bool = dividend_year > 25
// 筛选KDJ指标形成金叉的股票
K, D = KDJ(CLOSE, 9, 3, 3)
KDJ_bool = CROSS(K, D)
// 筛选符合条件的股票
result = amplitude_bool & dividend_year_bool & KDJ_bool
// 输出筛选结果
result
Python代码参考
import tushare as ts
# 筛选条件1:振幅大于1
today_data = ts.get_today_all()
amplitude = (today_data['high'] - today_data['low']) / today_data['open']
amplitude_bool = amplitude > 1
# 筛选条件2:2019分红比例大于25%
basic_data = ts.get_stock_basics()
dividend_year = basic_data['dividend_yield'] * 100
dividend_year_bool = dividend_year > 25
# 筛选条件3:KDJ指标形成金叉
n = 9
m1 = 3
m2 = 3
low_list = today_data['low'].rolling(window=n, min_periods=1).min()
low_list.fillna(value=today_data['low'].expanding().min(), inplace=True)
high_list = today_data['high'].rolling(window=n, min_periods=1).max()
high_list.fillna(value=today_data['high'].expanding().max(), inplace=True)
rsv = (today_data['close'] - low_list) / (high_list - low_list) * 100
K = rsv.ewm(com=m1).mean()
D = K.ewm(com=m2).mean()
J = 3 * K - 2 * D
KDJ_bool = (K.shift(1) < D.shift(1)) & (K > D)
# 筛选符合条件的股票
result = amplitude_bool & dividend_year_bool & KDJ_bool
# 输出筛选结果
final_result = today_data.loc[result].sort_values(by=["turnoverratio"], ascending=False)
print(final_result)
注:以上为示例代码,请根据实际情况进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
