问财量化选股策略逻辑
本选股策略逻辑要求振幅大于1,10天内涨停天数大于2,加入20日均线大于120日均线的股票条件。将选股逻辑作为第一个段落放入标题为 ## 问财量化选股策略逻辑 的段落中。
选股逻辑分析
本策略在原有振幅大于1、10天内涨停天数大于2的选股逻辑基础上,加入20日均线大于120日均线的条件,目的在于筛选相对强势的股票。由于20日均线和120日均线都为经典的均线指标,可以有效地过滤掉短期的波动及长期的趋势,提高选股的准确性。但是,单独采用均线指标筛选出的个股数量较少,需要赋予其它指标或特色,以便增加股票的可选性。
有何风险?
以下是该选股策略可能存在的一些风险:
- 使用均线指标往往有短期滞后性,有可能选出的股票已经错过上涨行情;
- 过度依赖均线指标,可能会忽略其他重要的技术指标;
- 选股数量过少,分散风险不足。
如何优化?
为了解决以上存在的风险,我们可以采用以下优化方案:
- 结合其他技术指标,如相对强弱指标、RSI等,进一步提高选股精度;
- 区分不同板块股票,针对不同板块股票采用不同的选股方案,提高选股数量和分散风险;
- 制定全面的风控策略,减小波动风险;
- 根据市场变化进行及时调整和优化。
最终的选股逻辑
综合以上优化方案,我们得到完善的选股逻辑如下:
- 满足振幅大于1,10天内涨停天数大于2的选股条件;
- 20日均线大于120日均线;
- 结合相对强弱指标、RSI等,进一步提高选股精度;
- 区分不同板块股票,针对不同板块股票采用不同的选股方案,提高选股数量和分散风险;
- 制定全面的风控策略,减小波动风险;
- 根据市场变化进行及时调整和优化。
同花顺指标公式代码参考
以下是通达信指标公式的参考:
- 振幅大于1:REF(HIGH-LOW,1)>1
- 10天内涨停天数大于2:COUNT(CY>=1,CY)>2
- 20日均线大于120日均线:MA(CLOSE,20)>MA(CLOSE,120)
Python代码参考
以下是Python代码的参考:
import tushare as ts
def stock_selection():
rs_basic_info = ts.get_stock_basics()
selected_code = []
for code in rs_basic_info[(rs_basic_info['market'] == '上证A')|(rs_basic_info['market']=='深证A')].index:
industry = rs_basic_info.loc[code, 'industry']
if industry in ['银行', '保险', '证券']:
continue
rs = ts.get_k_data(code, start=20, index=True, ktype='D')
if rs is None or len(rs) < 20:
continue
condition1 = (rs['high'] - rs['low'])/rs['close'].shift(1)*100 > 1
condition2 = rs['close'].rolling(window=10, min_periods=1).apply(lambda x: len(x[x>x.shift(1)*1.1]), raw=True) > 2
condition3 = rs['close'].rolling(window=20).mean() > rs['close'].rolling(window=120).mean()
if sum([condition1, condition2, condition3]) == 3:
rs_basic_info.loc[code, 'hot'] = rs['volume'].sum()
selected_code = rs_basic_info[rs_basic_info['hot'] > 0].sort_values('hot', ascending=False).index.tolist()
return selected_code
注:以上代码仅供参考,具体根据实际需求和风险承受能力进行调整。需要安装tushare等库。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
