问财量化选股策略逻辑
选股逻辑:振幅大于1,昨天3连板,MACD零轴以上。
选股逻辑分析
该选股策略主要考虑了技术面和市场热点,通过股票的振幅、昨日的涨停板数以及MACD技术指标来选取有较大上涨潜力的股票。其中,振幅大于1和昨日3连板可以代表市场热点,MACD零轴以上可以代表股票处于多头状态。
有何风险?
该选股逻辑可能存在以下风险:
- 过度依赖技术指标和市场热点,有可能忽略了基本面的变化等因素;
- 自动化选股可能忽略了个股特质、行业特点等因素,导致选股结果不尽如人意;
- MACD等技术指标可能存在滞后性和误判的情况。
如何优化?
为了降低风险并优化选股策略,可以尝试以下优化:
- 建议结合基本面和行业分析,选出业绩好且成长性强的股票;
- 在技术指标中加入其他指标如KDJ等综合判断;
- 加入筹码分布和资金流向等因素,得出更加全面的判断;
- 不仅关注MACD零轴以上,也考虑MA等其他技术指标。
最终的选股逻辑
根据以上分析和优化,可以得到以下完善的选股逻辑:
- 挑选振幅大于1且昨日有3连板的股票;
- 关注MACD等多个技术指标,包括KDJ、MA等;
- 结合交易量、筹码分布、资金流向等综合判断;
- 考虑股票的基本面和估值,如PE、PB等因素;
- 考虑行业走势和板块轮动等因素。
同花顺指标公式代码参考
C1: IF((HIGH - LOW >= 1), 1, 0);
C2: IF((LASTDAY(HIGH>LASTDAY(CLOSE,1)) AND LASTDAY(HIGH>LASTDAY(CLOSE,2)) AND LASTDAY(HIGH>LASTDAY(CLOSE,3))), 1, 0); // 昨日3连板
shortcut1: ema(CLOSE, 12) - ema(CLOSE, 26);
shortcut2: ema(shortcut1, 9);
C3: IF(shortcut1 > shortcut2, 1, 0);
C4: IF(CROSS(shortcut1, shortcut2) OR CROSS(shortcut2, shortcut1), 1, 0);
C5: IF(C1 AND C2 AND C3 AND C4, 1, 0);
SELECTOR: C5;
RESULT: SELECTOR;
python代码参考
import pandas as pd
from tqsdk import TqApi
from tqsdk.ta import macd
api = TqApi()
klines = api.get_kline_serial("SHFE.rb2101", 24 * 60 * 60, data_length=300)
df = pd.DataFrame(klines)
C1 = (df['high'] - df['low'] >= 1)
def check_limit_up(x):
return ((x.shift(1) > x.shift(2)) & \
(x.shift(2) > x.shift(3)) & \
(x.shift(3) > x.shift(4))).all()
C2 = df.groupby('contract.symbol')['close'].apply(check_limit_up)
macd_df = macd(df['close'], 12, 26, 9)
C3 = (macd_df['diff'] > macd_df['dea'])
C4 = ((macd_df['diff'] > macd_df['dea'].shift(1)) & (macd_df['diff'].shift(1) < macd_df['dea']))
selector = (C1 & C2 & C3 & C4).astype(int)
result = df[selector == 1].sort_values('amount', ascending=False).index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
