问财量化选股策略逻辑
- 至少5根均线重合的股票
- 10日涨幅大于0小于35
- 2021年营收/2018年营收大于1.1
选股逻辑分析
- 第一条均线是5日均线,表示最近5天的平均价格
- 第二条均线是10日均线,表示最近10天的平均价格
- 第三条均线是20日均线,表示最近20天的平均价格
- 第四条均线是30日均线,表示最近30天的平均价格
- 第五条均线是60日均线,表示最近60天的平均价格
当5日、10日、20日、30日和60日均线重合时,意味着这些时间段内的价格走势较为稳定,可以视为一个短期的趋势。而10日涨幅大于0小于35则表示股票价格在最近10天内有一定的上涨趋势,但还没有达到过高的水平。2021年营收/2018年营收大于1.1则表示股票的营收在最近两年内有较大幅度的增长。
有何风险?
- 这个策略可能无法捕捉到股票价格的短期波动,因为均线的重合需要一定的时间才能实现。
- 如果股票价格在短期内出现剧烈波动,可能会导致均线的重合被打破,从而使得策略失效。
如何优化?
- 可以考虑加入更多的均线,如90日均线、180日均线等,以捕捉更长时间范围内的趋势。
- 可以加入一些其他的指标,如MACD、RSI等,以更好地判断股票价格的走势。
最终的选股逻辑
- 选取至少5根均线重合的股票
- 10日涨幅大于0小于35
- 2021年营收/2018年营收大于1.1
- 选取MACD指标的D线在0轴上方且柱状图红色区域,RSI指标在50-70之间
python代码参考:
import tushare as ts
import talib
# 设置pro接口token
ts.set_token('your_token')
# 初始化pro接口
pro = ts.pro_api()
# 获取所有A股股票代码
stock_codes = pro.stock_all()
# 初始化macd和rsi指标
macd = talib.MACD()
rsi = talib.RSI()
# 选取至少5根均线重合的股票
def has_consecutive_moving_average(data, n):
for i in range(n):
if data[i] != data[i+1]:
return False
return True
# 选取10日涨幅大于0小于35的股票
def has_sufficient_price_change(data, n):
for i in range(n):
if data[i] > 0 and data[i] < 35:
return True
return False
# 选取2021年营收/2018年营收大于1.1的股票
def has_sufficient_revenue_growth(data, n):
for i in range(n):
if data[i] > 1.1 * data[i-1]:
return True
return False
# 选取MACD指标的D线在0轴上方且柱状图红色区域,RSI指标在50-70之间的股票
def has_macd_rsi_stock(data, n):
macd_data = macd(data, n)
rsi_data = rsi(data, n)
if macd_data['D'] > 0 and macd_data['D'] > macd_data['MACD'], rsi_data['rsi'] > 50 and rsi_data['rsi'] < 70:
return True
return False
# 选取符合条件的股票
def select_stocks(data, n):
stocks = []
for i in range(n):
if has_consecutive_moving_average(data, i+1) and has_sufficient_price_change(data, i+1) and has_sufficient_revenue_growth(data, i+1) and has_macd_rsi_stock(data, i+1):
stocks.append(data[i])
return stocks
# 获取所有A股股票的收盘价数据
data = pro.daily(ts_code=stock_codes, start_date='2021-01-01', end_date='2021-12-31')
# 选取符合条件的股票
selected_stocks = select_stocks(data, 5)
# 输出符合条件的股票代码
print(selected_stocks)
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


