问财量化选股策略逻辑
选股逻辑:振幅大于1、昨天有3连板、今日竞价金额排序前5。
选股逻辑分析
该选股逻辑主要以市场活跃度和资金流向为主要参考因素。振幅大于1可以反映出市场的活跃度,昨天有3连板则可以反映出市场资金对该股票的认可度高。今日竞价金额排序前5则可以反映出市场对该股票的投资热度,可以反映出市场对该股票的预期较高。该选股逻辑较为简单,选取的股票可能存在风险,如市场突然波动等风险。
有何风险?
以下是该选股策略存在的风险:
- 该选股逻辑太过依赖资金流向和市场热度,忽略了公司基本面和行业趋势的影响;
- 该选股逻辑过于简单,可能选出的股票涨跌幅度不大,存在选股效率和精度不高的问题;
- 选股标准过于单一,容易产生过拟合的情况。
如何优化?
为了优化该选股逻辑,可以考虑以下优化方案:
- 在市场活跃度和资金流向的基础上,加入公司基本面和行业趋势指标,综合考虑选择股票,以更全面地衡量选股精度;
- 增加选股的标准数量,如增加技术面指标、板块轮动指标等,以更全面地衡量股票潜力;
- 选取相对稳健的蓝筹股、龙头企业,或者在其它选股条件相同的情况下,更加关注公司作为行业领导者的地位,以降低选股风险。
最终的选股逻辑
改进后的选股逻辑如下:
- 筛选振幅大于1的股票;
- 在1的基础上,筛选昨天有3连板的股票;
- 在2的基础上,按照今日竞价金额排序,选出排序前5的股票;
- 在3的基础上,综合考虑较好的公司基本面和行业趋势,选取业绩稳定、有一定盈利能力和相对估值较低的蓝筹股票或龙头企业。
同花顺指标公式代码参考
该选股逻辑的通达信指标公式如下:
C1 := (HIGH - LOW) > 1;
C2 := (REF(CLOSE, 1) > REF(CLOSE, 2)) AND (REF(CLOSE, 2) > REF(CLOSE, 3));
C3 := RANK(JJJ);
SELECTOR := C1 AND C2 AND (C3 <= 5);
其中JJJ为通达信中的竞价金额/10000,RANK函数可以对竞价金额进行排序。
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.groupby('contract.symbol')['amount'].rank(method='first', ascending=False).astype(int) <= 5
selector = (C1 & C2 & C3).astype(int)
result = df[selector == 1].sort_values('amount', ascending=False).index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
