问财量化选股策略逻辑
- 至少5根均线重合的股票
- 换手率>2%且<9%
- 今日增仓占比>5%
选股逻辑分析
这个策略基于三个条件来筛选股票。首先,要求至少5根均线重合,这可能意味着股票价格在一段时间内保持了稳定的趋势。其次,要求换手率在2%到9%之间,这意味着股票的交易活跃度适中,没有过度交易或极度低迷的情况。最后,要求今日增仓占比大于5%,这可能意味着机构投资者或主力资金正在积极买入该股票。
有何风险?
这个策略的局限性在于它只考虑了股票的基本面和技术面因素。它没有考虑市场情绪、政策因素等外部因素对股票价格的影响。此外,如果机构投资者或主力资金在买入股票后不久就将其卖出,那么这个策略可能会失去效果。
如何优化?
为了优化这个策略,可以考虑加入更多的条件来筛选股票,例如加入市盈率、市净率等财务指标,或者加入股票的行业、市值等信息。此外,可以考虑加入技术指标,例如布林线、移动平均线等,来更好地判断股票的价格趋势。
最终的选股逻辑
以下是一个优化后的策略,它结合了基本面和技术面因素:
- 股票价格至少5根均线重合
- 换手率在2%到9%之间
- 市盈率低于20倍
- 市净率高于1倍
- 布林线在中轨之上
- 移动平均线多头排列
python代码参考
以下是使用pandas和ta-lib库实现上述策略的python代码:
import pandas as pd
import talib
def get_top筛选条件:
# 获取股票数据
df = pd.read_csv('stock_data.csv')
# 筛选条件1:至少5根均线重合
df['ma5'] = talib.MA(df['close'], timeperiod=5)
df['ma10'] = talib.MA(df['close'], timeperiod=10)
df['ma20'] = talib.MA(df['close'], timeperiod=20)
df['ma30'] = talib.MA(df['close'], timeperiod=30)
df['ma60'] = talib.MA(df['close'], timeperiod=60)
df['ma120'] = talib.MA(df['close'], timeperiod=120)
df['ma250'] = talib.MA(df['close'], timeperiod=250)
df['ma5 ma10 ma20 ma30 ma60 ma120 ma250'] = df.apply(lambda x: x['ma5'] == x['ma10'] == x['ma20'] == x['ma30'] == x['ma60'] == x['ma120'] == x['ma250'], axis=1)
df = df[df['ma5 ma10 ma20 ma30 ma60 ma120 ma250'] == True]
# 筛选条件2:换手率在2%到9%之间
df['turnover'] = df['volume'] / df['close']
df = df[(df['turnover'] > 2) & (df['turnover'] < 9)]
# 筛选条件3:市盈率低于20倍
df['pe'] = df['close'] / df['eps']
df = df[df['pe'] < 20]
# 筛选条件4:市净率高于1倍
df['pb'] = df['close'] / df['book_value']
df = df[df['pb'] > 1]
# 筛选条件5:布林线在中轨之上
df['boll_upper'] = talib.BBANDS(df['close'], timeperiod=20, upperband=2, middleband=1, lowerband=1)
df = df[df['boll_upper'] > df['close']]
# 筛选条件6:移动平均线多头排列
df['ma'] = talib.MA(df['close'], timeperiod=5)
df = df[df['ma'] > df['ma10']]
df = df[df['ma'] > df['ma20']]
df = df[df['ma'] > df['ma30']]
df = df[df['ma'] > df['ma60']]
df
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


