问财量化选股策略逻辑
选股逻辑:振幅大于1,昨天3连板,收盘价<boll(upper值)且收盘价>boll(mid值)。
选股逻辑分析
该选股逻辑主要从以下几个方面考虑:
- 振幅大于1可以过滤出市场活跃的高热度标的;
- 昨天3连板可以反映出市场对该标的的买入热情;
- 收盘价在boll带的下部区间可以反映出市场对于该标的的低位吸纳情况。
有何风险?
该选股策略存在以下风险:
- 可能会出现过度依赖历史数据的情况,忽略了市场持续变化;
- 收盘价在boll带下部区间并不能代表着股票的低估情况;
- 在牛市行情中,该选股指标可能会过于谨慎,错失部分涨幅。
如何优化?
为了优化该选股逻辑,可以考虑以下方案:
- 增加对流通性的关注,例如筛选市值、成交量等指标;
- 分别使用所选标的的各项基本面指标计算其合理价格;
- 考虑几个技术指标的综合应用,例如KDJ、RSI、MACD等。
最终的选股逻辑
改进后的选股逻辑如下:
- 振幅大于1;
- 昨天3连板;
- 收盘价小于boll(upper值)且收盘价大于boll(mid值);
- 市值在200亿以下;
- 过去5个交易日平均成交额在10亿元以上;
- 最新EPS大于0。
同花顺指标公式代码参考
该选股逻辑的通达信指标公式如下:
MA(CLOSE,20)>MA(CLOSE,120) AND
ABS(HIGH-LOW)/REF(CLOSE,1)>=0.01 AND
REF(C>=REF(C,1)*1.08,1)=1 AND
CLOSE<BOLL(20, 2.5, CLOSE).UPPER AND
CLOSE>BOLL(20, 2.5, CLOSE).MID
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=500)
df = pd.DataFrame(klines)
ma20 = df['close'].rolling(window=20).mean()
std20 = df['close'].rolling(window=20).std()
upper = ma20 + 2.5 * std20
mid = ma20
C1 = (df['high'] - df['low'] >= 0.01 * df['close'].shift(1))
C2 = (df['pct_chg'].rolling(window=3).sum() == 0.09 * 3)
C3 = (df['close'] < upper) & (df['close'] > mid)
C4 = (df['market_value'] < 2e10)
C5 = (df['amount'].rolling(window=5).mean() > 1e9)
C6 = (df['eps'].iloc[-1] > 0)
selector = (C1 & C2 & C3 & C4 & C5 & C6).astype(int)
result = df[selector == 1].sort_values(by='amount', ascending=False).index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
