问财量化选股策略逻辑
该选股策略选取振幅大于1、周线MA5金叉MA10且集中度小于20%的股票。此选股逻辑从价格波动性、技术指标和资金流向三个方面综合筛选,有利于从安全性、趋势性和资金流入流出方面考虑选股。
选股逻辑分析
本策略从振幅、金叉和集中度三个方面结合筛选股票。振幅大的股票价格更具波动性,可以更好地进行短线操作;金叉则能更好地判断价格趋势;集中度则是对资金流向与市场热度的一种衡量方式,避免了选取资金流向不稳定,市场热度不大的股票。这样的选股逻辑在综合考虑股价波动性、趋势性和资金流入流出方面具有一定优势。
有何风险?
市场可能出现短暂的异常波动,致使振幅、市场集中度等指标临时失灵,从而导致选股结果与预期不符。此外,选股逻辑中的细节因素可能会过多依赖于特定的市场情况,进而增加部分逻辑被证伪的风险。
如何优化?
根据市场情况变化,适当调整选股条件,例如设置较为合理的标准。考虑加入其它指标(如成交量、资金流量等指标)进一步筛选,以获得更为精准的选股结果。
最终的选股逻辑
该选股策略选取振幅大于1、周线MA5金叉MA10且集中度小于20%的股票。在使用时需要根据市场情况变化进行调整。
同花顺指标公式代码参考
- 振幅公式:
- Amplitude = (HIGH - LOW) / PRE_CLOSE
- 均线公式:
- MA(N) = SUM(CLOSE, N) / N
- 集中度公式:
- Concentration Degree = (MAX(HOLDERS) - HOLDERS) / SUM(HOLDERS)
python代码参考
import tushare as ts
from datetime import datetime
PRO = ts.pro_api('your_token')
def select_stocks(n):
selected_stocks = []
for code in PRO.stock_basic(exchange='', list_status='L', fields='ts_code,name,industry,market,circ_mv,total_mv')['ts_code']:
if code.startswith('300') or code.startswith('688'):
continue
valuation = PRO.daily_basic(ts_code=code, start_date='20200101', end_date='20211231', fields='circ_mv')['circ_mv'][-1]
if valuation < 2e8:
continue
df = PRO.daily(ts_code=code, start_date='20180101', end_date=datetime.now().strftime('%Y%m%d'), fields='ts_code,trade_date,open,high,low,close')
if len(df) == 0:
continue
amplitude = (df['high'] - df['low']) / df['close'].shift(1)
ma5 = df['close'].rolling(5).mean()
ma10 = df['close'].rolling(10).mean()
holders = PRO.top10_holders(ts_code=code, start_date='20210131', end_date='20211231', fields='hold_ratio').iloc[0]
if amplitude[-1] > 0.01 and ma5[-1] > ma10[-1] and (holders.max() - holders.min()) / holders.sum() < 0.2:
selected_stocks.append(code)
return selected_stocks[:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
