问财量化选股策略逻辑
选股逻辑:振幅大于1,昨天3连板,10日涨幅大于0小于35。
选股逻辑分析
该选股逻辑较前面的逻辑更为严格,在振幅和3连板的基础上加入了10日涨幅的限制,只选取10日涨幅在0-35%的标的,排除了短期表现不佳的股票。这一逻辑的设置更为合理,相对于市场整体表现较好的标的股票可能更具价值。
有何风险?
该选股逻辑仍然存在以下风险:
- 选股逻辑的设置过于严格,难以满足所有情况;
- 该逻辑只考虑了近期涨幅,对于处于周期性行业的股票可能失去优秀标的;
- 筛选过程中没有对基本面进行考虑,可能会选择一些基本面不佳的标的。
如何优化?
为了优化该选股逻辑的准确性,可以考虑以下几点:
- 在10日涨幅的基础上,添加其他技术指标,如均线和RS等,以找出更为优秀的标的;
- 对于不同行业的股票,需使用不同的选股参数,并结合行业特征进行调整;
- 考虑加入基本面分析,如ROE、净利润增长率等指标,以筛选出具有良好基本面的标的。
最终的选股逻辑
改进后的选股逻辑如下:
- 振幅大于1.5%;
- 昨天3连板;
- 个股10日涨幅大于0小于35。
同花顺指标公式代码参考
该选股逻辑的通达信指标公式如下:
C1:=MA(MAX(CLOSE-REF(CLOSE,1),0),6)/MA(ABS(CLOSE-REF(CLOSE,1)),6)*100;
C2:=MA(MAX(CLOSE/REF(CLOSE,1)-1,0),6)/MA(ABS(CLOSE/REF(CLOSE,1)-1),6)*100;
V1:=IF(VOL>REF(VOL,1),VOL-REF(VOL,1),0);
V2:=IF(VOL<REF(VOL,1),REF(VOL,1)-VOL,0);
OSC:=(MA(V1,3)-MA(V2,3))/MA(V2,3)*100;
SELECT C1>20 AND C1<100 AND C2>20 AND C2<100 AND OSC>5 AND V2<1.5*MA(V2,26) AND COUNT(CLOSE>OPEN,5)>2
Python代码参考
import pandas as pd
from tqsdk import TqApi, TqAuth
api = TqApi(auth=TqAuth("YOUR_ACCOUNT", "YOUR_PASSWORD"))
symbol_list = api.query_quotes()["codes"]
for symbol in symbol_list:
klines = api.get_kline_serial(symbol, 24 * 60 * 60, data_length=500)
df = pd.DataFrame(klines)
# 计算涨幅
df['10_day_pct'] = (df['close'] / df['close'].shift(10) - 1) * 100
# 选股逻辑
C1 = (df['close'].max() / df['close'].min() - 1 >= 0.015)
C2 = ((df['close'] == df['close'].shift())
& (df['close'] == df['close'].shift(2))
& (df['close'] != df['close'].shift(3)))
C3 = (0 <= df['10_day_pct']) & (df['10_day_pct'] <= 35)
# 总筛选
selector = C1 & C2 & C3
result = df[selector == 1].sort_values(
by='amount', ascending=False).index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
