问财量化选股策略逻辑
首先,我们需要定义一些关键参数:
- 5根均线:为了确保选出的股票有足够的支撑力和趋势,我们选择5根均线作为参考,包括5日、10日、20日、50日和200日均线。
- 100亿市值以内的无亏损企业:为了确保选出的股票具有较高的投资价值和可靠性,我们选择市值不超过100亿的企业。
- 10日涨幅大于0小于35:为了确保选出的股票具有一定的上涨潜力和可操作性,我们选择10日涨幅大于0小于35的股票。
基于以上参数,我们可以使用以下Python代码实现上述选股逻辑:
import talib
def get_top_5_moving_averages(symbol, n):
# 获取股票的历史K线数据
data = yf.download(symbol, start='2020-01-01', end='2021-12-31')
# 计算5日、10日、20日、50日和200日均线
ma5 = talib.MA(data['Close'], timeperiod=5)
ma10 = talib.MA(data['Close'], timeperiod=10)
ma20 = talib.MA(data['Close'], timeperiod=20)
ma50 = talib.MA(data['Close'], timeperiod=50)
ma200 = talib.MA(data['Close'], timeperiod=200)
# 将5日、10日、20日、50日和200日均线按时间顺序排列
ma_list = [ma5, ma10, ma20, ma50, ma200]
# 计算股票的5日、10日、20日、50日和200日移动平均线的乖离率
delta = ma_list[1:] - ma_list[:-1]
delta_diff = talib.DIF(delta)
# 返回前5个乖离率最大的股票
return delta_diff.nsmallest(n, axis=0)
def get_top_5_stocks(symbol):
# 获取股票的历史K线数据
data = yf.download(symbol, start='2020-01-01', end='2021-12-31')
# 获取股票的市值和涨跌幅
market_cap = data['Market Cap'].max()
price_change = data['Close'].pct_change()
# 获取满足市值和涨跌幅条件的股票
stocks = data[(data['Market Cap'] <= 100) & (price_change > 0) & (price_change < 35)]
# 获取满足5根均线重合条件的股票
ma_stocks = get_top_5_moving_averages(stocks['Symbol'], 5)
# 返回前5个满足市值、涨跌幅和5根均线重合条件的股票
return stocks[ma_stocks.index.tolist()]
# 示例
top_stocks = get_top_5_stocks('AAPL')
print(top_stocks)
选股逻辑分析
该策略的逻辑是通过计算股票的5日、10日、20日、50日和200日移动平均线的乖离率,筛选出市值不超过100亿、10日涨幅大于0小于35且5根均线重合的股票。这种策略的优点是能够综合考虑股票的市值、涨幅和趋势,从而筛选出具有较高投资价值和操作性的股票。
然而,该策略也存在一些风险。首先,该策略只考虑了股票的短期趋势和价格波动,而忽略了公司的基本面和长期价值。其次,该策略只能筛选出一部分符合条件的股票,而不能保证选出的股票都是最佳投资标的。最后,该策略可能会漏掉一些符合条件的股票,而这些股票可能具有更高的投资价值和潜力。
为了优化该策略,我们可以考虑加入更多的筛选条件,例如加入公司的盈利能力、成长潜力、股息收益率等指标。我们还可以考虑使用更复杂的算法来计算移动平均线的乖离率,例如加入布林线、MACD等指标。此外,我们还可以考虑加入更多的市场数据,例如宏观经济数据、政策数据等,以更好地判断股票的投资价值和趋势。
最终的选股逻辑如下:
import talib
def get_top_5_moving_averages(symbol, n):
# 获取股票的历史K线数据
data = yf.download(symbol, start='2020-01-01', end='2021-12-31')
# 计算5
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
