问财量化选股策略逻辑
选股逻辑:振幅大于1、昨天有3连板、昨日9:15匹配价跌停。
选股逻辑分析
该选股逻辑主要是以市场活跃度、资金流向和一定的技术分析为参考因素。振幅大于1是反映市场活跃度的指标之一,昨天有3连板更加表明该股票当前有一定的市场关注度。昨日9:15匹配价跌停是反映股票当前的价格变动趋势和市场风险的指标之一。该选股逻辑选择了多个指标进行筛选,但仍可能存在筛选效率和精度不高、风险难以控制等问题。
有何风险?
以下是该选股策略存在的风险:
- 筛选指标较多,容易出现反复筛选导致的选股精度不高;
- 过度依赖技术分析,忽略了公司基本面和行业趋势对股票价格的影响;
- 选股标准较为单一,不能充分考虑个股之间的差异性和行业差异性。
如何优化?
为了优化该选股逻辑,可以考虑以下优化方案:
- 加入资产负债表、利润表等财务指标作为选股指标之一,综合考虑选股的精度;
- 同时考虑行业指标和公司基本面,将技术指标和基本面混合考虑;
- 在选股标准中加入相对估值、板块轮动等指标,更加综合考虑股票的筛选。
最终的选股逻辑
改进后的选股逻辑如下:
- 筛选振幅大于1的股票;
- 在1的基础上,筛选昨天有3连板的股票;
- 在2的基础上,筛选昨日9:15匹配价跌停的股票;
- 在3的基础上,综合考虑较好的公司基本面、行业趋势、相对估值和板块轮动等,选取业绩稳定、有一定盈利能力和相对估值较低的股票。
同花顺指标公式代码参考
该选股逻辑的通达信指标公式如下:
C1 := (HIGH - LOW) > 1;
C2 := (REF(CLOSE, 1) > REF(CLOSE, 2)) AND (REF(CLOSE, 2) > REF(CLOSE, 3));
C3 := (T[1]=LLV(LASTBAR,1,LOWEST));
SELECTOR := C1 AND C2 AND C3;
其中 T[1] 代表9:15这根K线的匹配价,LASTBAR 代表当前的K线索引,LOWEST 代表当日价格的最低价。
python代码参考
import pandas as pd
from tqsdk import TqApi, TqAuth
api = TqApi(auth=TqAuth("YOUR_ACCOUNT", "YOUR_PASSWORD"))
klines = api.get_kline_serial("SHFE.rb2101", 24 * 60 * 60, data_length=300) # 获取 df 数据,周期为日K线
df = pd.DataFrame(klines)
C1 = (df['high'] - df['low'] >= 1)
C2 = df.groupby('contract.symbol')['close'].apply(lambda x: (x.shift(1) > x.shift(2)) & \
(x.shift(2) > x.shift(3))).astype(int)
C3 = (df['datetime'].dt.time == datetime.time(9, 15)) & \
(df['close'] == df['low'].rolling(min_periods=1, window=LASTBAR).min())
selector = (C1 & C2 & C3).astype(int)
result = df[selector == 1].index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
