问财量化选股策略逻辑
选取振幅大于1、前日实际换手率在3%到28%之间、20日均线大于120日均线的股票。
选股逻辑分析
该选股策略主要选取了价格波动、交易活跃度以及技术分析指标(20日均线和120日均线)这三个因素。相较于上一个选股逻辑,多了技术分析因素的考虑,但仍较为单一。同时,该选股策略忽略了公司的财务状况和行业发展前景等重要因素。
有何风险?
在考虑技术分析指标的同时,忽略了公司的财务状况和行业发展前景等因素,可能会使选出来的标的股票未能反映公司的潜在价值,来自公司内部或外部的风险会被忽略。
如何优化?
除考虑价格、交易活跃度和技术分析指标之外,需要更多考虑公司的财务状况和行业发展前景等因素作为选股依据。同时,技术分析指标不是所有情况下都能有效反映股票的未来走势,需要在不同情况下结合其他因素进行判断。
最终的选股逻辑
选取振幅大于1、前日实际换手率在3%到28%之间、20日均线大于120日均线、市盈率小于30的股票。
同花顺指标公式代码参考
// 筛选振幅大于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)
// 筛选20日均线大于120日均线的股票
ma20 = MA(CLOSE, 20)
ma120 = MA(CLOSE, 120)
ma_bool = ma20 > ma120
// 筛选市盈率小于30的股票
pe_ratio = GET_PE()
pe_bool = pe_ratio < 30
// 选出符合条件的股票
result = amplitude_bool & volume_ratio_bool & ma_bool & pe_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:20日均线大于120日均线
real_data = ts.get_realtime_quotes('600519')
ma20 = real_data['ma20'].astype(float)
ma120 = real_data['ma120'].astype(float)
ma_bool = ma20 > ma120
# 筛选条件4:市盈率小于30
basic_data = ts.get_stock_basics()
pe_ratio = basic_data['pe']
pe_bool = pe_ratio < 30
# 选出符合条件的股票
final_result = today_data.loc[amplitude_bool & volume_ratio_bool & ma_bool & pe_bool]
# 输出筛选结果
print(final_result)
注:以上为示例代码,请根据实际情况进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
