问财量化选股策略逻辑
该选股策略包含元素“元宇宙”、“竞价主力净买大于0”和“三个技术指标同时金叉”。
选股逻辑分析
该选股策略主要考虑市场热点、资金流向和股票走势等因素,筛选出符合条件的个股。其中,“元宇宙”反映市场热点,有望吸引资金进入;竞价主力净买反映资金流向情况,有助于我们把握市场资金的动向;同时金叉表示三个技术指标达到了一种市场走势的共识,具有较高的市场表现。综合这些因素,筛选出符合条件的股票,以期获得较好的投资收益。
有何风险?
- 数据风险:该策略基于市场行情和历史数据,存在数据风险;
- 操作风险:该策略需要及时调整选股因子及其加权方式,因此存在一定的操作风险;
- 技术指标的失效:技术指标的失效是该策略的一个难点,如果市场走势与技术指标出现背离,可能导致投资收益下降。
如何优化?
- 加入基本面因素:除了短期技术指标,加入公司基本面的分析因素,以判断公司的盈利能力、发展潜力等,降低风险;
- 加入量价因素:加入股票的量价关系因素,以掌握市场资金的流向和股票的成交情况;
- 加入其他技术指标:除了三个技术指标,加入其他技术指标进行比较,以提高选股的精度。
最终的选股逻辑
综合考虑市场热点板块、资金流向和股票走势等因素,筛选出符合条件的个股。同时,加入基本面、量价关系和其他技术指标作为协调因素。
同花顺指标公式代码参考
元宇宙:SELECTEDINDUSTRY("gnxq")
竞价主力净买:(VOL - 3 - 5 + 1) * 50 / 10000
技术指标金叉:CROSS(MA(CLOSE,5), MA(CLOSE,10)) AND CROSS(MA(CLOSE,10), MA(CLOSE,20)) AND CROSS(MA(CLOSE,20), MA(CLOSE,30))
Python代码参考
import pandas as pd
import tushare as ts
def stock_selector():
ts.set_token('your_token')
pro = ts.pro_api()
# 获取符合条件的所有股票的代码
data = pro.query('stock_basic',
fields=['ts_code','name','industry','concept_name'],
where={'market':'SSE','list_status':'L','is_hs':'N'})
data['jbmoneysum'] = pro.moneyflow(ts_code=data['ts_code'], start_date='20190101',
end_date='20211022', fields='jb').groupby('ts_code')['jb'].sum()
data['tooprec'] = pro.daily_basic(trade_date='20211022',
fields='ts_code,turnover_rate_f').set_index('ts_code')['turnover_rate_f']
data['ma5_close'] = pro.daily(ts_code=data['ts_code'], start_date='20211015',
end_date='20211022', fields='close').groupby('ts_code').apply(lambda x: x['close'].rolling(window=5).mean().iloc[-1])
data['ma10_close'] = pro.daily(ts_code=data['ts_code'], start_date='20211008',
end_date='20211022', fields='close').groupby('ts_code').apply(lambda x: x['close'].rolling(window=10).mean().iloc[-1])
data['ma20_close'] = pro.daily(ts_code=data['ts_code'], start_date='20210928',
end_date='20211022', fields='close').groupby('ts_code').apply(lambda x: x['close'].rolling(window=20).mean().iloc[-1])
data['ma30_close'] = pro.daily(ts_code=data['ts_code'], start_date='20210917',
end_date='20211022', fields='close').groupby('ts_code').apply(lambda x: x['close'].rolling(window=30).mean().iloc[-1])
data['jbmoneysum_positive'] = data['jbmoneysum'] > 0
data['ma_cross_positive'] = pro.daily(ts_code=data['ts_code'], start_date='20211022',
end_date='20211022', fields='close').groupby('ts_code').apply(lambda x: x['close'].rolling(window=5).mean().iloc[-1] > x['close'].rolling(window=10).mean().iloc[-1] > x['close'].rolling(window=20).mean().iloc[-1] > x['close'].rolling(window=30).mean().iloc[-1])
selected = data[data['yyzbl'] & data['jbmoneysum_positive'] & data['ma_cross_positive']]
return selected
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


