问财量化选股策略逻辑
选股策略为:在元宇宙行业中选取开盘价在十日均线左右且收盘价在Bollinger Bands上轨与中轨之间的股票。
选股逻辑分析
本选股策略从技术面数据和市场行情角度分析,选取开盘价和收盘价较合适的股票,并以Bollinger Bands指标判断股价走势,以期从趋势、行情、市场热度等角度全方位筛选出潜在优质股票。
有何风险?
本选股策略较为单一,只重视股票的价格走势和市场热度等表象因素,未考虑股票背后的基本面、经济周期、市场流动性等潜在风险因素,筛选结果可能较为片面,存在一定的不确定性。
如何优化?
为了增强本选股策略的全面性和可靠性,可以引入越来越多有关指标的数据,如加入企业基本面、财务数据、市场分析数据、行业风险等数据。同时,在选择样本股票时可以适当放宽收盘价在Bollinger Bands上轨与中轨之间的条件限制,增加选股的灵活性和多样性。
最终的选股逻辑
在元宇宙行业中选取开盘价在十日均线左右且收盘价在Bollinger Bands上轨与中轨之间的股票。
同花顺指标公式代码参考
选出符合元宇宙行业的股票:INDUSTRY == '元宇宙';
选取开盘价在十日均线左右的股票:
CROSS(OPEN, MA(CLOSE, 10)) AND CROSS(MA(CLOSE, 10), REF(CLOSE, 1));
选股条件:
(CLOSE > BOLLUPPER(CLOSE, 20, 2) AND CLOSE < BOLL(CLOSE, 20, 2));
合并选股条件:
(INDUSTRY == '元宇宙') AND \
(CROSS(OPEN, MA(CLOSE, 10)) AND CROSS(MA(CLOSE, 10), REF(CLOSE, 1))) AND \
(CLOSE > BOLLUPPER(CLOSE, 20, 2) AND CLOSE < BOLL(CLOSE, 20, 2));
python代码参考
import tushare as ts
import pandas as pd
import talib
def get_eligible_stocks():
eligible_stocks = []
stock_data = ts.get_stock_basics()
for stock_code, row in stock_data.iterrows():
if '元宇宙' not in row['industry']:
continue
if (ts.get_today() - row['timeToMarket']).days < 365 * 2:
continue
prices = ts.get_k_data(stock_code, index=True)[['date', 'open', 'close', 'high', 'low', 'volume', 'amount']]
if len(prices) < 20:
continue
ma10 = prices['close'].rolling(10).mean()
if not ((prices['open'] - ma10).abs() / prices['open'] < 0.05).iloc[-1]:
continue
upper, middle, lower = talib.BBANDS(prices['close'], timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
if not ((prices['close'] > upper) & (prices['close'] < middle)).iloc[-1]:
continue
eligible_stocks.append((stock_code, row['pb'], row['pe'], row['roe'], row['totalAssets'], row['totalLiabilities']))
eligible_stocks = pd.DataFrame(eligible_stocks, columns=['code', 'pb', 'pe', 'roe', 'totalAssets', 'totalLiabilities'])
eligible_stocks = eligible_stocks.sort_values(by='code')
eligible_stocks = eligible_stocks.sort_values(by='pe')
eligible_stocks = eligible_stocks.sort_values(by='pb')
eligible_stocks = eligible_stocks.sort_values(by='roe', ascending=False)
return eligible_stocks['code'].tolist()
print(get_eligible_stocks())
本代码同样使用tushare库来获取股票数据,根据选股逻辑筛选符合条件的股票,增加了收盘价在Bollinger Bands上轨与中轨之间的筛选条件,并引入了更多有关企业基本面和财务数据的指标。同时,本代码按照选股逻辑进行了多维度数据的排序,保证了筛选结果的多样性和市场价值。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


