问财量化选股策略逻辑
选股逻辑:振幅大于1、昨天有3连板、15分钟周期MACD绿柱变短。
选股逻辑分析
该选股策略以振幅、连板和MACD指标为基础,通过监测股票价格的波动以及技术指标的变化来筛选股票。振幅大于1显示出波动性较大,连续3个交易日上涨表明市场热门,MACD绿柱变短则表明信号即将修正。
选择此选股策略的股票,有望获得高风险高回报的投资机会和投资者关注的市场热门。
有何风险?
该选股策略可能存在以下风险:
- MACD指标的敏感度和准确性有限,可能存在假信号;
- 忽略了市场需求和公司基本面等长期因素;
- 15分钟周期的计算可能忽略了大周期的趋势。
如何优化?
为了降低风险并优化选股策略,可以尝试以下优化:
- 加入其他技术指标的变化,如KDJ、RSI等,来明确股票变化的趋势和规律;
- 加入板块的概念和基本面分析,以获得更佳的投资机会;
- 在不同时期和时间周期上观察股票价格的特征以及技术指标变化,整合多种信息源来评估投资价值。
最终的选股逻辑
根据以上分析和优化,可以得到以下完善的选股逻辑:
- 挑选振幅大于1,昨天有3连板的股票;
- 排除科创板股票;
- 监测15分钟周期MACD绿柱变短,意味着信号即将修正;
- 结合基本面和资金分析,确认股票的投资价值;
- 确认股票处于主升趋势中,并且强度较强的情况下,再次筛选潜在投资机会。
同花顺指标公式代码参考
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连板
C3: Ref(MACD(12,26,9),-1) > MACD(12,26,9) AND Ref(MACD(12,26,9),-2) < Ref(MACD(12,26,9),-1);
C4: IF(MARKET != "创业板" AND MARKET != "科创板", 1, 0);
C5: IF(C1 AND C2 AND C3 AND C4, 1, 0);
SELECTOR: C5;
RESULT: SELECTOR;
其中MACD(12,26,9)
表示计算12日、26日指数移动平均线和9日对应指数移动平均线的DIF、DEA、MACD值。
python代码参考
import pandas as pd
from tqsdk import TqApi
from tqsdk.ta import MA, MACD
api = TqApi()
klines = api.get_kline_serial("SHFE.rb2101", 15 * 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)
dif, dea, macd = MACD(df['close'], 12, 26, 9)
C3 = ((dif.shift(1) > dif) & (dif.shift(2) < dif.shift(1)))
C4 = ((df['market'] != "创业板") & (df['market'] != "科创板"))
selector = (C1 & C2 & C3 & C4).astype(int)
result = df[selector == 1].sort_values('amount', ascending=False).index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
