问财量化选股策略逻辑
- 至少5根均线重合的股票
- 昨天换手率>8%
- 竞价主力净买大于0
选股逻辑分析
这个策略的逻辑是基于均线和换手率的。首先,要求股票至少有5根均线重合,这表明股票的走势比较稳定,均线的黏合力较强。其次,要求昨天的换手率大于8%,这表明股票的交易活跃度较高,可能存在交易机会。最后,要求竞价主力净买大于0,这表明主力资金在买入股票,可能对股票的走势产生积极影响。
有何风险?
这个策略的局限性在于它只考虑了均线和换手率这两个因素,而忽略了其他因素的影响。例如,股票的市盈率、市净率等财务指标,以及行业背景、政策环境等因素,都可能对股票的走势产生重要影响。因此,这个策略的使用需要谨慎,不能完全依赖于它。
如何优化?
为了优化这个策略,可以考虑加入更多的因素来分析股票的走势。例如,可以加入市盈率、市净率等财务指标,以及行业背景、政策环境等因素,来更全面地分析股票的走势。此外,还可以考虑加入技术指标,如MACD、KDJ等,来更准确地判断股票的走势。
最终的选股逻辑
最终的选股逻辑如下:
- 股票至少有5根均线重合
- 昨天换手率大于8%
- 竞价主力净买大于0
- 市盈率小于50
- 市净率小于2
- 行业背景良好
- 政策环境有利于股票发展
python代码参考
以下是一个简单的Python代码参考,用于实现上述策略:
import talib
def get_stock_data(symbol):
# 获取股票的历史数据
data = yf.download(symbol, start='2020-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)
# 计算换手率
data['volume'] = data['volume'].cumsum()
data['turnover'] = data['volume'] / data['close'].cumsum()
data['yesterday_turnover'] = data['turnover'].shift(1)
data['yesterday_turnover'] = data['yesterday_turnover'].fillna(0)
data['yesterday_turnover'] = data['yesterday_turnover'] * (data['close'] > data['close'].shift(1))
data['yesterday_turnover'] = data['yesterday_turnover'] * (data['close'] < data['close'].shift(1))
data['yesterday_turnover'] = data['yesterday_turnover'].fillna(0)
data['yesterday_turnover'] = data['yesterday_turnover'] / data['close']
data['yesterday_turnover'] = data['yesterday_turnover'].fillna(0)
data['yesterday_turnover'] = data['yesterday_turnover'] * (data['close'] > data['close'].shift(1))
data['yesterday_turnover'] = data['yesterday_turnover'] * (data['close'] < data['close'].shift(1))
data['yesterday_turnover'] = data['yesterday_turnover'].fillna(0)
# 计算主力净买
data['net_buy'] = data['volume'] - data['volume'].shift(1)
data['net_buy'] = data['net_buy'].fillna(0)
data['net_buy'] = data['net_buy'] * (data['close'] > data['close'].shift(1))
data['net_buy'] = data['net_buy'] * (data['close'] < data['close'].shift(1))
data['net_buy'] = data['net_buy'].fillna(0)
# 选择符合条件的股票
stocks = data.loc[data['close'] > data['close'].shift(1) & data['close'] < data['close'].shift(2) & data['net_buy'] > 0 & data['yesterday_turnover'] > 0.08 & data['yesterday_turnover'] < 0.1
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


