问财量化选股策略逻辑
选股逻辑包括三个条件:选择元宇宙行业的股票、机构动向大于0、大单净量排行。根据这些条件进行选股,进行投资。
选股逻辑分析
该选股策略主要围绕以下三个条件进行选股:
- 选取元宇宙行业的股票,瞄准未来的投资机会;
- 机构动向具有一定的预测性和引导作用,选股策略容易捕捉机构动向;
- 大单净量排行可以反映市场资金的集中程度,具有一定的参考价值。
综合以上条件,选择符合条件的个股进行投资。
有何风险?
- 大单净量排行可能存在信息滞后和偏差,选股策略的参考意义有限;
- 行业投资的风险因素较大,选股策略难以捕捉行业整体动向;
- 机构资金流向并不能完全代表市场交易情况,有可能存在流动性不足或其他风险。
如何优化?
- 加入其他行业、板块和市场因素,以较全面地掌握市场情况;
- 考虑加入其他技术指标和基本面数据进行综合考虑股票的投资价值;
- 重新定制大单净量排行的选股策略,或采用其他的资金流向指标并将其作为参考。
最终的选股逻辑
该选股策略选择元宇宙行业中,机构动向大于0,大单净量排行靠前的股票进行投资。
同花顺指标公式代码参考
元宇宙行业:GNBK("gnxq");
机构动向:DRS_M("zlltgtzb");
大单净量排行:DLO_MA10()>REF(DLO_MA10(),1);
选股公式:GNBK("gnxq") AND DRS_M("zlltgtzb") AND DLO_MA10()>REF(DLO_MA10(),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('元宇宙')) & (data1['industry'] != '银行')]
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 = pro.query('fina_mainbz', ts_code='', end_date='20220308', fields='ts_code,main_business_profit')
data3 = data3[data3['main_business_profit'] > 0]
data4 = pro.query('daily_basic', trade_date='20220307', fields='ts_code, close,turnover_rate, turnover_rate_f, \
volume_ratio, pe, pe_ttm, pb, ps, ps_ttm, total_share, float_share, free_share, total_mv, circ_mv')
data4 = data4[data4['turnover_rate'] > data4['turnover_rate'].quantile(q=0.5)]
data4 = data4[data4['turnover_rate_f'] > data4['turnover_rate_f'].quantile(q=0.5)]
data5 = pro.moneyflow(trade_date='20220308', fields='ts_code, trade_date, buy_sm_vol, sell_sm_vol, buy_md_vol, \
sell_md_vol, buy_lg_vol, sell_lg_vol, buy_elg_vol, sell_elg_vol, buy_value, sell_value, net_mf_vol')
data5 = pd.concat([data5.loc[:, 'ts_code'], data5.loc[:, 'net_mf_vol']], axis=1)
data5.columns = ['ts_code', 'net_inst_buy']
data5 = data5.loc[data5.net_inst_buy > 0, :]
data6 = pro.cctv_news(date='20220306')
data6 = data6.iloc[0, :]
hs_300 = data6['hs_300_code']
data7 = pro.query('daily_basic', trade_date='20220307', ts_code='', fields='ts_code, float_share')
data7 = data7.groupby(by='ts_code').sum()
data7 = data7.sort_values(by='float_share', ascending=False)
data7 = data7.iloc[0:100, :]
data7['rank'] = range(1, 101)
data7 = data7.loc[:, ['rank']]
data8 = pd.concat([data1.loc[:, 'ts_code'], data2, data3.loc[:, 'main_business_profit'], \
data4.loc[:, ['turnover_rate', 'turnover_rate_f', 'volume_ratio', 'pe', 'pe_ttm', 'pb', 'ps', 'ps_ttm', \
'circ_mv']], axis=1)
data8.columns = ['ts_code', 'ddjlr_rank', 'main_business_profit', 'turnover_rate', 'turnover_rate_f', 'volume_ratio', \
'pe', 'pe_ttm', 'pb', 'ps', 'ps_ttm', 'circ_mv']
data8 = pd.merge(data8, data5, on='ts_code')
data8 = pd.merge(data8, data7, on='ts_code')
data8 = data8[data8['ts_code'] != hs_300]
data8 = data8.sort_values(by='ddjlr_rank', ascending=True)
data8 = data8.iloc[0:50, :]
return data8
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


