问财量化选股策略逻辑
该选股策略选择元宇宙行业中,符合以下条件的股票进行投资:股票均价站在五日均线之上,且属于饮料酒进出口行业。
选股逻辑分析
该选股策略的主要选股条件包括:选择元宇宙行业中的股票、股票均价站在五日均线之上、且属于饮料酒进出口行业。
选择元宇宙行业中的股票可以关注到这个行业的潜在成长性,股票均价站在五日均线之上可以较好地抓住股票的涨势,饮料酒进出口行业则可以关注到当前的热点产业。
有何风险?
该选股策略可能会受到市场环境、政策变化等多种因素的影响,存在一些风险:
- 股票对市场判断错误;
- 饮料酒进出口行业政策变化;
- 元宇宙行业的投资风险;
- 选出来的股票数量可能比较少。
如何优化?
为了减小选股策略受到的风险,可以进行如下优化:
- 融合其他指标,如RSI、KDJ等,加强对股票技术分析;
- 加强对企业财务状况、业绩、盈利能力等方面的研究;
- 关注市场投资者情绪等因素,如通过情感分析、大数据分析等进行处理;
- 加入约束条件,如市值、成交量等限制。
最终的选股逻辑
该选股策略选择元宇宙行业中,股票均价站在五日均线之上,并且属于饮料酒进出口行业的股票进行投资。
具体的选股条件为:
- 元宇宙行情为GNXQ;
- 股票均价站在五日均线之上,可以通过计算五日均价和股票的收盘价比较;
- 股票所属行业为饮料酒进出口,可以通过相关的行业分类指数来筛选股票。
因此,该选股策略的最终选股公式为:
INDUSTRYIDB(508030,GNXQ) AND CROSS(MA(C,5), C) AND INDUSTRYIDB(34,508030)
同花顺指标公式代码参考
- 元宇宙行情:GNBK('gnxq')
- 五日均线:MA(C,5)
- 行业分类代码:INDUSTRYIDB(34,508030)
在通达信中,可以使用如下指标代码:
CROSS(MA(C,5), C) AND INDUSTRYIDB(34,508030)
Python代码参考
import pandas as pd
import tushare as ts
def stock_selector():
ts.set_token('your_token')
pro = ts.pro_api()
data1 = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code, name, industry, list_date, market_cap, float_share, close')
data2 = pd.DataFrame()
for i in range(1, 6):
ts_code = f"399997.SZ{i:02d}"
data = pro.index_daily(ts_code=ts_code, start_date='20220501', end_date='20220501', fields='trade_date, close')
data = data.rename(columns={'close': ts_code})
data2 = pd.concat([data2, data], axis=0, ignore_index=True)
data3 = pd.concat([data1, data2], axis=1)
data4 = data3.sort_values(by=['ts_code', 'trade_date'])
data5 = pd.DataFrame(columns=['ts_code', 'ma', 'industry_code'])
for ts_code, df in data4.groupby('ts_code'):
close = df['close'].values
ma = talib.MA(close, timeperiod=5)
industry_code = df['industry'].values[-1] if len(df['industry'].unique()) == 1 else ''
data5 = data5.append({'ts_code': ts_code, 'ma': ma[-1], 'industry_code': industry_code}, ignore_index=True)
data6 = data5[(data5['ma'] < data5['close']) & (data5['industry_code'] == '饮料酒进出口')]
data7 = pd.merge(data6, data1, on='ts_code', how='inner')
data8 = data7[(data7['market_cap'].notnull()) & (data7['market_cap'] > 0) & (data7['market_cap'] < 20000000000) & (data7['float_share'].notnull()) & (data7['float_share'] > 0) & (data7['float_share'] < 30000000000)]
if len(data8) > 0:
return data8[['ts_code', 'name']]
else:
return pd.DataFrame()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


