问财量化选股策略逻辑
该选股策略选取元宇宙行业中,机构动向大于0,并且近一个月内有过涨停的个股进行投资。
选股逻辑分析
该选股策略主要围绕以下条件进行选股:
- 选取元宇宙行业中的个股,因为元宇宙领域具有较高的成长性和隐含收益;
- 选择近期有过涨停的个股,可能代表着机构的操作意愿,同时也预示着该个股存在一定的成长性和投资价值。
综合以上条件,选择符合条件的个股进行投资。
有何风险?
- 近期涨停不一定代表着个股的真正价值和成长性;
- 选取目标股票时,机构动向仅代表着机构的交易情况,并不能准确反映机构对于该个股的未来预期。
如何优化?
- 增加选择股票的技术指标和基本面因素,综合判断股票的投资价值;
- 增加选股条件,如EPS、ROE等因素;
- 增加动态止损策略,控制投资风险。
最终的选股逻辑
该选股策略选取元宇宙行业中,机构动向大于0,并且近一个月内有过涨停的个股进行投资。
同花顺指标公式代码参考
元宇宙行情:GNBK("gnxq");
机构动向:DRS_M("zlltgtzb");
涨停条件:CLOSE_TODAY / REF(CLOSE, 1) - 1 = 0.1 AND REF(CLOSE, 1) / REF(CLOSE, 2) - 1 < 0.1
选股公式:GNBK("gnxq") AND DRS_M("zlltgtzb") AND CLOSE_TODAY / REF(CLOSE, 1) - 1 = 0.1 AND REF(CLOSE, 1) / REF(CLOSE, 2) - 1 < 0.1
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.query('daily', ts_code='000001.SH', start_date='2022-03-04', end_date='2022-03-08', fields='ts_code,trade_date,close')
data5 = pro.query('stk_limit', ts_code='000001.SH', start_date='2022-03-04', end_date='2022-03-08', fields='ts_code,trade_date,up_limit,down_limit')
data4 = pd.merge(data4, data5, on=['ts_code', 'trade_date'], how='left')
data4.dropna(inplace=True)
data4 = data4.groupby(by='ts_code').apply(lambda x:x.iloc[-1, :])
data4['today_up'] = (data4['close'] - data4['up_limit']) / data4['up_limit']
data4['yesterday_up'] = (data4['close'].shift(1) - data4['up_limit'].shift(1)) / data4['up_limit'].shift(1)
data4 = data4[(data4['today_up'] == 0.1) & (data4['yesterday_up'] < 0.1)]
data6 = pro.moneyflow(ts_code='000001.SH', start_date='2022-03-04', end_date='2022-03-08', fields='ts_code,trade_date,buy_sm_vol,buy_md_vol,buy_lg_vol')
data6 = data6.pivot_table(index='trade_date', columns='ts_code', values=['buy_sm_vol', 'buy_md_vol', 'buy_lg_vol'])
data6.columns = ['_'.join(col).strip() for col in data6.columns.values]
data6 = data6.iloc[-1, :]
data6 = pd.DataFrame({'ts_code': data6.index.values, 'buy_sm_vol': data6.values})
data7 = pd.merge(data3, data6, on='ts_code', how='inner')
data7.drop(['rank'], axis=1, inplace=True)
data7.set_index(['ts_code'], inplace=True)
data8 = data7[data7['buy_sm_vol'] > 0]
data8 = pd.merge(data8, data4, on='ts_code', how='inner')
data8.reset_index(inplace=True)
return data8
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


