问财量化选股策略逻辑
- 今日增仓占比>5%, 表示最近一段时间内,该股票的成交量出现了明显的增加,说明有资金在流入该股票,这是一个积极的信号。
- 竞价涨幅>-2<5, 表示该股票在集合竞价阶段的涨幅超过了-2%,并且在5%以内,说明该股票有比较强的上涨意愿,这也是一个积极的信号。
- 非科创, 表示该股票不属于科技创新板股票,这个条件是为了避免选择一些特殊的股票,使得策略更加稳健。
选股逻辑分析
- 该策略选择的是在最近一段时间内出现明显增仓,并且在集合竞价阶段有比较强上涨意愿的股票,这些股票可能存在比较强的上涨动力。
- 但是需要注意的是,该策略并没有考虑股票的基本面情况,也没有考虑股票的估值水平,因此可能会选择一些高估的股票,从而带来一定的风险。
有何风险?
- 该策略选择的是在最近一段时间内出现明显增仓,并且在集合竞价阶段有比较强上涨意愿的股票,这些股票可能存在比较强的上涨动力,但是如果股票的基本面情况较差,或者股票的估值水平过高,那么这些股票可能会出现回调,从而带来一定的风险。
- 另外,该策略并没有考虑股票的行业属性,因此可能会选择一些处于不同行业的股票,这些股票的走势可能会受到行业因素的影响,从而带来一定的风险。
如何优化?
- 为了降低风险,可以考虑在选择股票时,加入一些基本面因素的判断,例如市盈率、市净率等指标,以更好地判断股票的基本面情况。
- 另外,可以考虑加入一些行业因素的判断,例如选择同一行业的股票,或者选择一些受益于行业发展趋势的股票,以更好地把握行业趋势。
最终的选股逻辑
- 选择在最近一段时间内出现明显增仓,并且在集合竞价阶段有比较强上涨意愿的股票,同时加入一些基本面因素的判断,例如市盈率、市净率等指标,以更好地判断股票的基本面情况。
- 另外,加入一些行业因素的判断,例如选择同一行业的股票,或者选择一些受益于行业发展趋势的股票,以更好地把握行业趋势。
python代码参考
- 以下是一个简单的Python代码示例,用于实现上述的选股策略:
import talib
def get_stock_data(stock_code):
# 获取股票的历史数据
data = talib.STATISTICS.STOCHF(stock_code, timeperiod=14)
# 获取股票的增仓数据
data = talib.STATISTICS.MA(data['fast'], timeperiod=5)
# 获取股票的竞价涨幅数据
data = talib.BBANDS(data['close'], timeperiod=14, upperband=2, middleband=0, lowerband=-2)
# 获取股票的基本面数据
data = data.join(get_fundamentals(stock_code))
# 获取股票的行业数据
data = data.join(get_industry_data(stock_code))
return data
def get_fundamentals(stock_code):
# 获取股票的基本面数据
data = get_balance_sheet(stock_code)
data = data.join(get_income_statement(stock_code))
data = data.join(get现金流量表(stock_code))
return data
def get_balance_sheet(stock_code):
# 获取股票的资产负债表数据
url = f'https://finance.yahoo.com/quote/{stock_code}/balance-sheet'
soup = BeautifulSoup(requests.get(url).text, 'html.parser')
data = []
for table in soup.find_all('table', class_='wB6u9'):
table = table.find_all('tr')
for row in table:
cells = row.find_all('td')
data.append([float(cell.text) for cell in cells])
return pd.DataFrame(data, columns=['资产', '负债', '所有者权益'])
def get_income_statement(stock_code):
# 获取股票的收入表数据
url = f'https://finance.yahoo.com/quote/{stock_code}/income-statement'
soup = BeautifulSoup(requests.get(url).text, 'html.parser')
data = []
for table in soup.find_all('table', class_='wB6u9'):
table = table.find_all('tr')
for row in table:
cells = row.find_all('td')
data.append([float(cell.text) for cell in cells])
return pd.DataFrame(data, columns=['营业收入', '营业成本', '营业利润', '所得税费用', '净利润'])
def get_cash_flow_statement(stock_code):
# 获取股票的现金流量表数据
url = f'https://finance.yahoo.com/quote/{stock_code}/cash-flow-statement
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
