问财量化选股策略逻辑
- 今日增仓占比>5%
- 归属母公司股东的净利润(同比增长率)大于20%小于等于100%
- 换手率3%-12%
选股逻辑分析
- 今日增仓占比>5%:这个逻辑表示股票最近有主力资金流入,可能具有较好的上涨潜力。
- 归属母公司股东的净利润(同比增长率)大于20%小于等于100%:这个逻辑表示股票最近盈利能力较好,且增长速度适中,具备较好的投资价值。
- 换手率3%-12%:这个逻辑表示股票流通性较好,避免了流动性风险。
有何风险?
- 主力资金流入并不一定代表股票上涨,也可能是主力资金在出货。
- 盈利能力较好并不代表股票一定会上涨,也可能是公司盈利能力已经到达顶峰。
- 流通性好也可能导致股票价格波动较大,不利于长期投资。
如何优化?
- 可以加入更多筛选条件,例如市盈率、市净率等,以更全面地评估股票的投资价值。
- 可以加入技术分析指标,例如布林线、均线等,以更好地判断股票的走势。
- 可以加入行业因素的筛选,例如选择行业景气度较好的股票。
最终的选股逻辑
通过综合考虑今日增仓占比、归属母公司股东的净利润(同比增长率)、换手率等多方面因素,筛选出具有投资价值的股票。具体筛选条件可以根据投资者的需求和风险承受能力进行调整。以下是最终的python代码参考:
import talib
def get筛选条件():
# 今日增仓占比
buy_signal = talib.BBANDS(Close, timeperiod=14, fastperiod=5, slowperiod=10, upperband=0.6, middleband=0.0, lowerband=-0.6)
buy_signal = buy_signal['upperband'] > buy_signal['middleband']
# 归属母公司股东的净利润(同比增长率)
growth_signal = talib.ROC(Close, timeperiod=14)
growth_signal = growth_signal > 0
# 换手率
turnover_signal = talib.STOCH(Close, timeperiod=14, fastperiod=3, slowperiod=8)
turnover_signal = turnover_signal['fast'] > turnover_signal['slow']
return buy_signal, growth_signal, turnover_signal
def get筛选结果():
buy_signal, growth_signal, turnover_signal = get筛选条件()
selected = buy_signal & growth_signal & turnover_signal
return selected
def get_top_n(selected, n):
selected = selected.sort_values(ascending=False)
top_n = selected.head(n)
return top_n
def get_stock_list():
# 获取所有股票的代码和名称
stock_list = []
for index, row in df.iterrows():
stock_list.append((row['代码'], row['名称']))
return stock_list
def get_top_n_stocks(stock_list, n):
selected_stocks = []
for code, name in stock_list:
selected = get_top_n(get筛选结果(), n)
if len(selected) > 0:
selected_stocks.append((code, name, selected))
return selected_stocks
其中,get筛选条件()
函数用于获取买入信号、增长信号和换手率信号;get筛选结果()
函数用于获取满足所有筛选条件的股票;get_top_n()
函数用于获取指定数量的股票;get_stock_list()
函数用于获取所有股票的代码和名称;get_top_n_stocks()
函数用于获取满足所有筛选条件的股票的代码、名称和股票池。
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。