问财量化选股策略逻辑
选股逻辑:振幅大于1,昨天3连板,2021年。
选股逻辑分析
该选股逻辑与前一个选股逻辑相比将涨停板的判断改为了限定在2021年,旨在在过去一年的市场中寻找符合条件的标的。其他条件均与前一个选股逻辑相同,具有筛选波动性较大、市场热度较高、短期内有一定上涨空间的特点。
有何风险?
该选股逻辑仍然存在以下风险:
- 涨停数据的判断依然存在主观性和时间限制;
- 只考虑了短期市场买入信号,容易忽略中长期趋势和基本面的影响;
- 过去一年的市场热度与未来市场热度的差异性,可能导致在某些市场环境下失效。
如何优化?
为了优化该选股逻辑的准确性,可以考虑以下几点:
- 对涨停数据进行严格限定,减少误选;
- 融合其他指标(如MACD、均线等)来分析市场中长期走势;
- 根据市场不同时间段和风格,优化选股策略,增强适应性。
最终的选股逻辑
改进后的选股逻辑如下:
- 振幅大于1.5%;
- 昨天3连板;
- 2021年曾有涨停,并且该涨停价高于当天的收盘价。
同花顺指标公式代码参考
该选股逻辑的通达信指标公式与前面一致,此处省略。
Python代码参考
import pandas as pd
from tqsdk import TqApi, TqAuth
api = TqApi(auth=TqAuth("YOUR_ACCOUNT", "YOUR_PASSWORD"))
symbol_list = ["SHFE.rb2101", "DCE.i2101"]
for symbol in symbol_list:
klines = api.get_kline_serial(symbol, 24 * 60 * 60, data_length=500)
df = pd.DataFrame(klines)
# 筛选涨停数据
df['date'] = pd.to_datetime(df['datetime']).dt.date
df['is_2021'] = df['date'].apply(lambda x: x.year == 2021)
df['is_limit_up'] = df.apply(lambda x: x['high'] == x['close'] * 1.1, axis=1)
df.loc[df['is_limit_up'] & ~df['is_2021'], 'is_limit_up'] = False
# 选股逻辑
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 = (df['is_limit_up'].rolling(window=25).max().shift() >= df['close'].shift())
# 总筛选
selector = C1 & C2 & C3
result = df[selector == 1].sort_values(by='amount', ascending=False).index.tolist()
注意:其中的涨停判断需要对交易所和品种进行细节调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
