问财量化选股策略逻辑
- 至少5根均线重合的股票
- 未清偿可转债简称不可为空
- 9点25分涨幅小于6%
选股逻辑分析
- 这个策略通过寻找至少5根均线重合的股票来筛选出可能具有较强趋势的股票。
- 未清偿可转债简称不可为空,可能是因为可转债是一种特殊的债券,需要确保公司的债务状况稳定。
- 9点25分涨幅小于6%,可能是因为这个时间点的股价波动较小,可以更好地反映股票的真实价值。
有何风险?
- 这个策略可能会过于依赖技术指标,而忽略了其他重要的基本面因素。
- 如果所选股票的趋势并不明显,或者市场整体趋势不利,那么这个策略可能会表现不佳。
如何优化?
- 可以考虑加入更多的技术指标,例如MACD、RSI等,以更全面地分析股票的趋势。
- 可以考虑加入一些基本面指标,例如市盈率、市净率等,以更全面地评估股票的价值。
最终的选股逻辑
- 选取至少5根均线重合的股票,未清偿可转债简称不可为空。
- 在9点25分之前,计算股票的涨幅,并将其与6%进行比较。
- 如果涨幅小于6%,则将该股票加入筛选列表。
- 在筛选列表中,选取技术指标和基本面指标综合评分最高的前100只股票。
python代码参考
import talib
import yfinance as yf
def get_stock_data(symbol):
# 获取股票数据
data = yf.download(symbol, start='2021-01-01', end='2021-12-31')
# 计算均线
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)
# 统计均线重合数量
count = 0
for i in range(5, 21, 2):
if ma5[i] == ma10[i] == ma20[i] == ma50[i] == ma200[i]:
count += 1
# 返回筛选结果
return count
def get筛选结果():
# 获取所有股票的代码
symbols = yf.ticker_all().keys()
# 初始化筛选结果列表
results = []
# 循环遍历所有股票
for symbol in symbols:
# 获取股票数据
data = yf.download(symbol, start='2021-01-01', end='2021-12-31')
# 计算涨幅
close_price = data['Close'].last()
open_price = data['Open'].last()
high_price = data['High'].last()
low_price = data['Low'].last()
if close_price > open_price:
price_change = (close_price - open_price) / open_price * 100
else:
price_change = (close_price - open_price) / open_price * (-100)
# 判断是否符合条件
if price_change < -6:
# 将符合条件的股票加入筛选结果列表
results.append(symbol)
# 返回筛选结果列表
return results
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


