问财量化选股策略逻辑
- 至少5根均线重合的股票
- 10日涨幅大于0小于35
- 30日平均线向上
选股逻辑分析
- 第一条均线是5日均线,表示最近5天的平均价格
- 第二条均线是10日均线,表示最近10天的平均价格
- 第三条均线是20日均线,表示最近20天的平均价格
- 第四条均线是30日均线,表示最近30天的平均价格
- 第五条均线是60日均线,表示最近60天的平均价格
当至少5根均线重合时,意味着这些均线在同一个时间点上汇聚在一起,表示市场在这个时间点上出现了比较明确的趋势,投资者可以考虑跟进这个趋势进行投资。
10日涨幅大于0小于35表示最近10天内,这只股票的价格涨幅大于0,但不超过35%,说明这只股票的价格有一定的上涨空间,但上涨速度不是很快。
30日平均线向上表示最近30天内,这只股票的价格一直在上涨,说明市场对该股票的走势比较看涨。
有何风险?
- 如果市场出现较大的波动,可能会导致这些均线在短时间内出现偏离,使得投资者无法准确判断趋势。
- 如果这只股票的价格涨幅过大,可能会导致30日平均线出现拐头向下,表明市场对该股票的走势开始看跌。
如何优化?
- 可以考虑加入更多的均线,例如90日均线、180日均线等,以更准确地判断趋势。
- 可以考虑加入更多的筛选条件,例如这只股票的市盈率、市净率等,以更准确地判断价值。
最终的选股逻辑
- 选取至少5根均线重合的股票
- 选取10日涨幅大于0小于35的股票
- 选取30日平均线向上的股票
- 选取市盈率小于20、市净率小于1的股票
python代码参考
import tushare as ts
# 设置pro接口key
ts.set_token('your_token')
# 初始化pro接口
pro = ts.pro_api()
# 获取所有A股股票的代码
codes = pro.list_all_code()
# 选取至少5根均线重合的股票
selected_codes = []
for code in codes:
# 获取该股票的历史K线数据
k_data = pro.k_data(code, start='2021-01-01', end='2021-12-31')
# 计算5日、10日、20日、30日、60日均线
ma5 = k_data['close'].rolling(window=5).mean()
ma10 = k_data['close'].rolling(window=10).mean()
ma20 = k_data['close'].rolling(window=20).mean()
ma30 = k_data['close'].rolling(window=30).mean()
ma60 = k_data['close'].rolling(window=60).mean()
# 找到至少5根均线重合的股票
if len(set(ma5)) == 5 and len(set(ma10)) == 5 and len(set(ma20)) == 5 and len(set(ma30)) == 5 and len(set(ma60)) == 5:
selected_codes.append(code)
# 选取10日涨幅大于0小于35的股票
selected_codes = []
for code in selected_codes:
# 获取该股票的历史K线数据
k_data = pro.k_data(code, start='2021-01-01', end='2021-12-31')
# 计算10日涨幅
delta = k_data['close'].pct_change(10)
# 选取10日涨幅大于0小于35的股票
if delta > 0 and delta <= 0.35:
selected_codes.append(code)
# 选取30日平均线向上的股票
selected_codes = []
for code in selected_codes:
# 获取该股票的历史K线数据
k_data = pro.k_data(code, start='2021-01-01', end='2021-12-31')
# 计算30日平均线
ma30 = k_data['close'].rolling(window=30).mean()
# 选取30日平均线向上的股票
if ma30 > ma30.shift(1):
selected
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
