问财量化选股策略逻辑
选股逻辑包括三个条件:选择元宇宙行业的股票、机构动向大于0,KDJ刚形成金叉。根据这些条件进行选股,进行投资。
选股逻辑分析
该选股策略主要围绕以下三个条件进行选股:
- 选取元宇宙行业中的股票,因为元宇宙领域具有较高的成长性和隐含收益;
- 机构动向具有预测性和引导作用,选择机构买入股票可以获得较好的资本回报;
- 选取KDJ指标形成金叉的股票进行投资,符合这一条件的个股可能处于短期上涨趋势中。
综合以上条件,选择符合条件的个股进行投资。
有何风险?
- 只考虑短期的KDJ指标可能会忽略一些长期趋势;
- 如果市场整体大跌,该策略可能无法有效保护投资本金。
如何优化?
- 结合其他技术指标和基本面指标进行筛选,多角度综合分析;
- 加入风险控制指标,有效保护投资本金;
- 优化选股条件,例如可以加入成交量、换手率等指标进行筛选。
最终的选股逻辑
该选股策略选择元宇宙行业中,机构动向大于0,KDJ指标刚形成金叉的股票进行投资。
同花顺指标公式代码参考
元宇宙行情:GNBK("gnxq");
机构动向:DRS_M("zlltgtzb");
KDJ:KDJ("9,3,3");
选股公式:GNBK("gnxq") AND DRS_M("zlltgtzb") AND CROSS(KDJ("9,3,3").K, KDJ("9,3,3").D);
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.new_share(ts_code='', start_date='20220301', end_date='20220308',
fields='ts_code,sub_time,price,amount,money,circ_mv,total_mv')
data3 = data3.sort_values(by='sub_time', ascending=False)
data3 = data3.drop_duplicates(subset=['ts_code'], keep='first')
data3 = data3.loc[:, ['ts_code', 'circ_mv', 'total_mv']]
data4 = pro.daily_basic(ts_code='', trade_date='20220308', fields='ts_code,open,high,low',
filters='open > 0 and high > 0 and low > 0')
data5 = pro.query('stock_company', exchange='SZSE', fields='ts_code,chairman,manager,secretary,province')
data6 = pd.concat([data1.loc[:, 'ts_code'], data2, data3.iloc[:, 1:], data4.iloc[:, 1:], data5.iloc[:, 1:]],
axis=1)
data6 = data6.dropna()
data6.reset_index(drop=True, inplace=True)
data7 = data6[data6['ts_code'].str.startswith(('600', '601', '603', '688'))]
data7.reset_index(drop=True, inplace=True)
data8 = pro.query('daily_basic', trade_date='20220308', fields='ts_code,turnover_rate', filters='turnover_rate > 0')
data9 = pd.concat([data7, data8.iloc[:, 1]], axis=1)
data9 = data9.dropna()
data9.reset_index(drop=True, inplace=True)
data9['kdj_k'], data9['kdj_d'], data9['kdj_j'] = talib.STOCH(
data9['high'].values, data9['low'].values, data9['close'].values,
fastk_period=9, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
data9['ma10'] = talib.MA(data9['close'].values, timeperiod=10)
data9['ma60'] = talib.MA(data9['close'].values, timeperiod=60)
data9['macd_macd'], data9['macd_signal'], data9['macd_hist'] = talib.MACD(data9['close'].values, fastperiod=12,
slowperiod=26, signalperiod=9)
data10 = data9[(data9['kdj_k'] > data9['kdj_d']) & (data9['kdj_j'] < 20) & (data9['macd_hist'] > 0) &
(data9['turnover_rate'] > 1) & (data9['open'] > data9['ma10']) & (data9['open'] < data9['ma60'])]
data10.reset_index(drop=True, inplace=True)
return data10
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


