问财量化选股策略逻辑
该策略基于以下三个条件进行股票筛选:
- 至少5根均线重合的股票
- 换手率>2%且<9%
- 换手率3%-12%
选股逻辑分析
该策略的目的是寻找那些在价格趋势和交易活跃度方面都相对稳定的股票。具体来说,该策略通过筛选出至少5根均线重合的股票,来寻找那些价格趋势较为平缓的股票。然后,该策略通过筛选出换手率在3%-12%之间的股票,来寻找那些交易活跃度适中的股票。最后,该策略将这两个条件结合起来,以筛选出那些既具有价格趋势稳定又具有交易活跃度适中的股票。
有何风险?
该策略存在以下风险:
- 过于依赖于技术指标。该策略基于均线和换手率等技术指标进行股票筛选,如果这些指标不能准确反映股票的价格趋势和交易活跃度,那么该策略可能会失效。
- 忽视了其他因素。该策略只考虑了价格趋势和交易活跃度等因素,而忽略了其他可能影响股票表现的因素,例如公司财务状况、行业环境等。
如何优化?
为了优化该策略,可以考虑以下几点:
- 使用更多的技术指标。除了均线和换手率之外,还可以考虑使用其他技术指标,例如布林线、MACD等,以更准确地反映股票的价格趋势和交易活跃度。
- 考虑其他因素。除了价格趋势和交易活跃度之外,还可以考虑其他因素,例如公司财务状况、行业环境等,以更全面地评估股票的表现。
- 调整筛选条件。可以尝试调整筛选条件,例如将均线重合的数量增加到6根或7根,或者将换手率的范围调整为2%-8%等,以更好地适应不同的市场环境。
最终的选股逻辑
以下是最终的选股逻辑:
- 选取至少5根均线重合的股票。
- 选取换手率在3%-12%之间的股票。
- 将以上两个条件结合起来,以筛选出那些既具有价格趋势稳定又具有交易活跃度适中的股票。
python代码参考
以下是基于pandas和numpy的python代码参考:
import pandas as pd
import numpy as np
# 读取股票数据
data = pd.read_csv('stock_data.csv')
# 筛选至少5根均线重合的股票
def has_convergence(data):
# 筛选出所有均线
ma = data['ma']
# 计算所有均线的平均值
avg_ma = ma.mean()
# 计算所有均线的标准差
std_ma = ma.std()
# 筛选出所有均线的绝对值在平均值加减2倍标准差之内的股票
converge = np.abs(ma - avg_ma) <= 2 * std_ma
return converge
# 筛选换手率在3%-12%之间的股票
def has合适换手率(data):
# 筛选出所有交易日
date = data['date']
# 筛选出所有交易日的成交量
volume = data['volume']
# 计算所有交易日的换手率
turnover = volume / data['close'].sum()
# 筛选出所有换手率在3%-12%之间的股票
suitable = turnover > 3 and turnover <= 12
return suitable
# 筛选出同时满足以上两个条件的股票
def has_convergence_and合适换手率(data):
# 筛选出所有均线
ma = data['ma']
# 计算所有均线的平均值
avg_ma = ma.mean()
# 计算所有均线的标准差
std_ma = ma.std()
# 筛选出所有均线的绝对值在平均值加减2倍标准差之内的股票
converge = np.abs(ma - avg_ma) <= 2 * std_ma
# 筛选出所有交易日
date = data['date']
# 筛选出所有交易日的成交量
volume = data['volume']
# 计算所有交易日的换手率
turnover = volume / data['close'].sum()
# 筛选出所有换手率在3%-12%之间的股票
suitable = turnover > 3 and turnover <= 12
return converge & suitable
# 选择符合条件的股票
filtered_data = data[has_convergence_and合适换手率(data)]
# 输出结果
print(filtered_data)
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


