问财量化选股策略逻辑
该策略基于以下三个条件进行股票筛选:
-
五根均线重合:使用五日、十日、二十日、三十日和六十日均线,将它们的收盘价相加并除以5,得到平均收盘价。如果五条均线在某一天收盘价相等,则认为这五条均线重合。
-
换手率>2%且<9%:选择换手率大于2%且小于9%的股票。换手率表示股票的活跃程度,通常来说,高换手率的股票表示市场关注度较高,但过高的换手率也可能意味着市场风险较大。
-
100亿市值以内的无亏损企业:选择市值小于100亿的股票。市值较小的股票通常具有更高的成长潜力,但市值过小也可能意味着市场关注度较低。
选股逻辑分析
该策略通过结合五根均线的平均收盘价和换手率的条件,筛选出市场关注度较高且具有较高成长潜力的股票。同时,选择市值小于100亿的股票,可以避免市值过小带来的市场风险。
然而,该策略可能面临以下风险:
-
市场风险:由于该策略选择的是市场关注度较高且具有较高成长潜力的股票,因此在市场整体表现不佳时,这些股票的表现可能不如预期。
-
短期波动风险:由于该策略选择的是五根均线的平均收盘价,因此可能会受到短期市场波动的影响,导致筛选出的股票表现不佳。
如何优化?
为了优化该策略,可以考虑以下方法:
-
选择更多的均线:除了五根均线外,可以选择更多的均线进行筛选,例如十日、二十日、三十日、五十日和一百日均线等,以更好地反映市场趋势。
-
考虑其他指标:除了换手率和市值外,还可以考虑其他指标,例如市盈率、市净率等,以更好地评估股票的价值和风险。
最终的选股逻辑
根据以上分析,最终的选股逻辑如下:
-
选择五根均线的平均收盘价相等的股票。
-
选择换手率大于2%且小于9%的股票。
-
选择市值小于100亿的股票。
-
对于符合以上条件的股票,按照市值从小到大排序。
-
选择市值最小的前N只股票作为最终的股票池。
python代码参考
以下是一个简单的 Python 代码示例,用于实现上述策略:
import talib
def get_rolling_average(prices, n):
"""
获取 n 日的滚动平均值
"""
if n <= 0:
return prices
else:
return talib.MA(prices, n)
def get_top_n_rolling_average(prices, n, max_value):
"""
获取市值小于 max_value 的前 n 天的滚动平均值
"""
if n <= 0:
return None
else:
rolling_average = get_rolling_average(prices, n)
return rolling_average[rolling_average <= max_value]
def get_top_n_stocks(prices, n, max_value):
"""
获取市值小于 max_value 的前 n 天的股票
"""
stocks = []
for i in range(len(prices)):
rolling_average = get_rolling_average(prices[i:], n)
if rolling_average is not None and rolling_average[-1] <= max_value:
stocks.append(i)
return stocks
# 示例数据
prices = [10, 12, 11, 13, 14, 15, 16, 17, 18, 19, 20]
# 选择五根均线的平均收盘价相等的股票
rolling_average_5 = get_rolling_average(prices, 5)
rolling_average_10 = get_rolling_average(prices, 10)
rolling_average_20 = get_rolling_average(prices, 20)
rolling_average_30 = get_rolling_average(prices, 30)
rolling_average_60 = get_rolling_average(prices, 60)
# 选择换手率大于2%且小于9%的股票
rolling_average换手率 = get_rolling_average(prices, 20)
rolling_average换手率 = rolling_average换手率[rolling_average换手率 > 2]
rolling_average换手率 = rolling_average换手率[rolling_average换手率 < 9]
# 选择市值小于100亿的股票
rolling_average市值 = get_rolling_average(prices, 20)
rolling_average市值 = rolling_average市值[rolling_average市值 <
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
