问财量化选股策略逻辑
该选股策略选取元宇宙行业中,机构动向大于0,今日最低价小于昨日最低价的个股进行投资。
选股逻辑分析
该选股策略主要围绕以下三个条件进行选股:
- 选取元宇宙行业中的股票,因为元宇宙领域具有较高的成长性和隐含收益;
- 机构动向具有预测性和引导作用,选择机构买入股票可以获得较好的资本回报;
- 选择今日最低价小于昨日最低价的个股,说明股票在短期内出现了相对大的回调或者股价有所修正,但整体行情仍然良好,可能具备较高的上涨潜力。
综合以上条件,选择符合条件的个股进行投资。
有何风险?
- 选股过程仅仅考虑了短期波动因素,忽略了长期的趋势变化和基本面变化,可能导致选股偏差;
- 在只考虑最低价的情况下,可能忽略了其他重要的技术指标和基本面因素;
- 过度依赖机构动向的指标,可能因为滞后性而导致选股不准确。
如何优化?
- 除了最低价以外,可加入其他技术指标,如RSI、MACD等,来判断股票是否处于超卖状态;
- 除了依赖机构动向以外,还可以结合资金流向等指标,进一步判断股票的市场情绪和预期;
- 在合理的仓位控制下,选择多个股票进行投资可以降低单个股票的风险。
最终的选股逻辑
该选股策略选取元宇宙行业中,机构动向大于0,今日最低价小于昨日最低价,30日内股价处于超卖状态的个股进行投资。
同花顺指标公式代码参考
元宇宙行情:GNBK("gnxq");
机构动向:DRS_M("zlltgtzb");
30日RSI指标超卖条件:RSI(C,30)<30
选股公式:GNBK("gnxq") AND DRS_M("zlltgtzb") AND C_LOW<REF(C_LOW,1) AND RSI(C,30)<30
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')
data1 = data1[data1['name'].str.contains('元宇宙')]
data2 = pro.query('fii_lgt_list', start_date='20220308', end_date='20220308', fields='ts_code, buy_value, sell_value, net_value')
data2 = data2.groupby(by='ts_code').sum()
data2['net'] = data2['net_value'] / 1e8
data2 = data2.sort_values(by='net', ascending=False)
data2 = data2.iloc[0:100, :]
data2['rank'] = range(1, 101)
data2 = data2.loc[:, ['rank']]
data3 = pd.concat([data1, data2], axis=1)
data3 = data3.dropna()
data3.reset_index(drop=True, inplace=True)
data4 = pro.daily(ts_code='000001.SZ', start_date='2022-03-04', end_date='2022-03-08', fields='ts_code,close,low')
data4 = data4.pivot_table(index='trade_date', values=['close', 'low'], columns='ts_code').T
data4.columns = ['day1_close', 'day2_close', 'day3_close', 'day4_close', 'day5_close', 'day1_low', 'day2_low', 'day3_low', 'day4_low', 'day5_low']
data4.dropna(axis=0, inplace=True)
data4['count'] = ((data4['day1_low'] < data4['day2_low']) & (data4['day1_close'] < data4['day1_close'])).astype(int)
data5 = pd.concat([data3, data4['count']], axis=1)
data5 = data5[data5['count'] == 1]
data5.reset_index(drop=True, inplace=True)
data6 = pro.query('investor', trade_date='20220308', fields='ts_code, trade_type, buy_value, sale_value, net_value')
data7 = pd.pivot_table(data6, values='net_value', index='ts_code', columns='trade_type')
data7['DRS_M'] = (data7.iloc[:, 0] - data7.iloc[:, 1]) / 1e8
data7 = data7.loc[:, ['DRS_M']]
data8 = pd.concat([data5, data7], axis=1)
data8.dropna(inplace=True)
data9 = pro.query('daily_basic', trade_date='20220308', fields='ts_code, rsi30')
data9 = data9[data9['rsi30'] < 30]
data10 = pd.concat([data8, data9], axis=1)
data10.dropna(inplace=True)
return data10
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


