问财量化选股策略逻辑
选取振幅大于1、前日实际换手率在3%到28%之间、周线红柱的股票。
选股逻辑分析
该选股策略综合考虑了股票的价格波动、交易行为、K线技术图形以及趋势分析。振幅大于1、前日实际换手率在一定范围内的股票为高波动性改变持仓的信号,同时周线红柱的形态可视为趋势上升的信号。综合考虑这些条件可以筛选出趋势向上、波动较大的潜在的股票。
有何风险?
该选股策略仍然较大程度上依赖特定股票的价格波动和交易行为,一定程度上偏向短期投机。同时,周线红柱的形态可视为参考,不能保证股票的明确趋势,存在一定程度的市场风险。
如何优化?
可以考虑加入其他技术指标,如布林带、相对强弱指数等作为副条件进行筛选,以更好地评估选中的股票的趋势和价格波动,同时提高数据的准确性和可靠性,将时间跨度适当进行调整,并结合基础面等因素进行全面综合考虑,以提高选股策略的精准度和稳定性。
最终的选股逻辑
选取振幅大于1、前日实际换手率在3%到28%之间、周线红柱的股票。
同花顺指标公式代码参考
// 筛选振幅大于1的股票
amplitude = (HIGH - LOW) / OPEN
amplitude_bool = amplitude >= 1
// 筛选前日实际换手率在3到28之间的股票
volume_ratio = TODAY_VOLUME / REF(YESTERDAY_VOLUME, 1)
volume_ratio_bool = (volume_ratio >= 0.03) & (volume_ratio <= 0.28)
// 筛选周线红柱的股票
ma5 = MA(CLOSE, 5)
ma10 = MA(CLOSE, 10)
ma20 = MA(CLOSE, 20)
ma60 = MA(CLOSE, 60)
up = STD(CLOSE, 20) * 2 + ma20
down = ma20 - STD(CLOSE, 20) * 2
condition1 = REF(CLOSE > REF(CLOSE, 1), 1)
condition2 = (CLOSE - ma10) / ma10 * 100 >= -3
condition3 = ma5 >= ma10
condition4 = ma10 >= ma20
condition5 = ma20 >= ma60
condition6 = CLOSE > up
condition7 = ma10 - ma20 >= ma20 - ma60
condition8 = (ma10 < up) & (ma10 > down)
week_bool = condition1 & condition2 & condition3 & condition4 & condition5 & condition6 & condition7 & condition8
// 选出符合条件的股票
result = amplitude_bool & volume_ratio_bool & week_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:前日实际换手率在3到28之间
hist_data = ts.get_hist_data('600519')
volume_ratio = hist_data['volume'] / hist_data['volume'].shift(1)
volume_ratio_bool = (volume_ratio >= 0.03) & (volume_ratio <= 0.28)
# 筛选条件3:周线红柱
week_data = ts.get_k_data('600519', ktype='W')
ma5 = week_data['close'].rolling(window=5).mean()
ma10 = week_data['close'].rolling(window=10).mean()
ma20 = week_data['close'].rolling(window=20).mean()
ma60 = week_data['close'].rolling(window=60).mean()
up = ma20 + week_data['close'].rolling(window=20).std() * 2
down = ma20 - week_data['close'].rolling(window=20).std() * 2
condition1 = week_data['close'] > week_data['close'].shift(1)
condition2 = ((week_data['close'] - ma10) / ma10 * 100) >= -3
condition3 = ma5 >= ma10
condition4 = ma10 >= ma20
condition5 = ma20 >= ma60
condition6 = week_data['close'] > up
condition7 = (ma10 - ma20) >= (ma20 - ma60)
condition8 = (ma10 < up) & (ma10 > down)
week_bool = condition1 & condition2 & condition3 & condition4 & condition5 & condition6 & condition7 & condition8
# 选出符合条件的股票
final_result = today_data.loc[amplitude_bool & volume_ratio_bool & week_bool]
# 输出筛选结果
print(final_result)
注:以上仅为示例代码,请根据实际情况进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
