问财量化选股策略逻辑
选股逻辑为:元宇宙行业,圆弧形形态,主升起动股票。
选股逻辑分析
该选股策略综合考虑了行业、形态和趋势因素,筛选出换手率较大、形态符合条件、处在主升浪中的股票,提高了未来涨势的潜力。
有何风险?
该选股逻辑的风险在于其过于依赖主观判断,导致量化效果不明显以及选出的股票过度集中,还存在未来市场、行业和公司自身等风险。
如何优化?
可以加入更多的技术指标或基本面因素,例如RSI、MACD、PE、PB等指标,避免仅依赖形态和趋势判断。同时还可以加入风险控制因素,例如人为干预、风险警示等,以规避风险。
最终的选股逻辑
选股逻辑为:元宇宙行业,圆弧形形态,根据股票的主升起动和技术面指标等进行筛选。
同花顺指标公式代码参考
通达信代码:
SELECT C.SECODE FROM (SELECT SECODE FROM MARKET WHERE
HY = 'C010103'
AND (HIGH-OPEN)/OPEN > 0.01
AND (LOW-OPEN)/OPEN > 0.01
AND (HIGH-LOW)/OPEN > 0.03
AND TURNOVER > 0.05 AND TURNOVER < 0.2
AND COUNT(CLOSE>LCLOSE AND HIGH>LCLOSE, 60) >= 20
AND REF(COUNT(CLOSE>LCLOSE AND HIGH>LCLOSE, 60),1) < 20
ORDER BY TURNOVER DESC) C
WHERE MA(CLOSE,5) > MA(CLOSE,10)
AND LLV(LOW,20) == LOW
AND VOLUME > REF(VOLUME,1) * 1.5;
其中,COUNT(CLOSE>LCLOSE AND HIGH>LCLOSE, 60)表示60天内收盘价高于昨日收盘价并且最高价也高于昨日收盘价的天数。
python代码参考
import tushare as ts
import talib
def get_stock_data():
gg_stocks = ts.get_zz500s()
gg_stocks = gg_stocks[gg_stocks['industry'] == '元宇宙']
df_today = ts.get_today_all()
df_today = df_today[df_today['code'].isin(gg_stocks['code'])][['name', 'code', 'industry', 'trade', 'pb', 'pe', 'turnoverratio']]
# 选出圆弧形形态
close_ma60 = df_today['trade'].rolling(60).mean()
lclose_ma60 = close_ma60.shift(1)
df_today['count'] = talib.COUNT((df_today['trade'] > df_today['close'].shift(1)) & (df_today['high'] > df_today['close'].shift(1)), timeperiod=60)
df_today = df_today[(abs((df_today['high']-df_today['open'])/df_today['open']) > 0.01)
& (abs((df_today['low']-df_today['open'])/df_today['open']) > 0.01)
& (abs((df_today['high']-df_today['low'])/df_today['open']) > 0.03)
& (df_today['turnoverratio'] > 0.05) & (df_today['turnoverratio'] < 0.2)
& (df_today['count'] >= 20) & (df_today['count'].shift(1) < 20)
& (close_ma60 > close_ma60.rolling(10).mean())
& (df_today['low'].rolling(20).min() == df_today['low'])
& (df_today['volume'] > df_today['volume'].shift(1)*1.5)]
# 选出主升起动的股票
close_ma20 = df_today['trade'].rolling(20).mean()
close_ma10 = df_today['trade'].rolling(10).mean()
df_today['ma_diff'] = close_ma20 - close_ma10
df_today = df_today[(df_today['ma_diff'] > 0) & (df_today['ma_diff'].shift(1) < 0)]
res = df_today[['name', 'code', 'industry', 'pb', 'pe']]
res = res.rename(columns={'pb': '市净率', 'pe': '市盈率'})
return res
print(get_stock_data())
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


