问财量化选股策略逻辑
- 至少5根均线重合的股票
- 10日涨幅大于0小于35
- 流通盘小于等于55亿股
选股逻辑分析
- 这个策略通过寻找至少5根均线重合的股票来筛选出可能具有较强趋势的股票。
- 10日涨幅大于0小于35的条件是为了筛选出近期有上涨趋势的股票。
- 流通盘小于等于55亿股的条件是为了筛选出中小盘股票,因为中小盘股票通常具有更高的活跃度和更好的市场表现。
有何风险?
- 这个策略可能会忽略一些具有长期上涨趋势的股票,因为它们可能不符合均线重合的条件。
- 这个策略可能会选择一些短期波动较大的股票,因为它们可能在短期内符合涨幅条件。
- 这个策略可能会选择一些流通盘较小的股票,因为它们可能具有更高的市场风险。
如何优化?
- 可以考虑增加均线数量,例如选择10根均线或更多,以提高策略的准确性和稳定性。
- 可以考虑加入其他条件,例如市盈率、市净率等,以更好地筛选出具有投资价值的股票。
- 可以考虑使用其他技术指标,例如MACD、布林线等,以更好地判断股票的趋势和波动。
最终的选股逻辑
- 选择至少5根均线重合的股票
- 选择10日涨幅大于0小于35的股票
- 选择流通盘小于等于55亿股的股票
- 选择市盈率小于20、市净率小于2的股票
- 选择MACD金叉且DIF线上穿0轴的股票
python代码参考
- 以下是一个简单的Python代码示例,用于实现上述策略:
import talib
def get_cooperation_line(df):
# 获取5日、10日、20日、60日和120日均线
ma5 = talib.MA(df['close'], timeperiod=5)
ma10 = talib.MA(df['close'], timeperiod=10)
ma20 = talib.MA(df['close'], timeperiod=20)
ma60 = talib.MA(df['close'], timeperiod=60)
ma120 = talib.MA(df['close'], timeperiod=120)
# 计算五线合一的条件
cooperation_line = ma5 == ma10 == ma20 == ma60 == ma120
# 返回结果
return cooperation_line
def get_trend(df):
# 获取10日涨幅
delta = df['close'].diff()
# 计算涨幅条件
trend = delta > 0 and delta[-1] > 0.35
# 返回结果
return trend
def get_size(df):
# 获取流通盘
size = df['流通盘']
# 返回结果
return size
def get策略(df):
# 获取至少5根均线重合的股票
cooperation_line = get_cooperation_line(df)
trend = get_trend(df)
size = get_size(df)
# 返回结果
return cooperation_line & trend & size
# 读取数据
df = pd.read_csv('data.csv')
# 筛选出符合条件的股票
selected = df[df['策略'] == 1]
# 输出结果
print(selected)
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


