问财量化选股策略逻辑
选取振幅大于1、开盘价在十日线左右、前天MACD小于0的股票为投资组合。
选股逻辑分析
- 振幅大于1表明该股票有较大的波动,提供高回报的机会;
- 开盘价在十日线左右符合价值投资选股的基本逻辑;
- 前天MACD小于0则表明当前股票已经有下跌趋势,有可能出现超卖现象,提高买入机会。
- 综合上述因素可以筛选出具有较好的短期投资机会的标的。
有何风险?
- 筛选条件过于片面,无法全面反映标的的投资价值;
- 在反复震荡、横盘行情中效果不如预期;
- 过于依赖技术分析指标,忽略基本面变化等风险因素,导致错误决策。
如何优化?
- 可适度调整筛选条件;如可振幅大于2、考虑其他移动平均线;
- 结合其他投资分析工具,如股票排名、资金流向等,综合评价标的的投资价值;
- 尽量避免盲目追涨杀跌,要注重风控和分散投资,合理分配仓位和资金。
最终的选股逻辑
选取振幅大于1、开盘价在十日线左右、前天MACD小于0的股票为投资组合。
同花顺指标公式代码参考
//振幅大于1
COND1:=(HIGH-LOW)/LOW>0.01;
//开盘价在十日线左右
MA10:MA(CLOSE,10);
COND2:=(OPEN>MA10*0.98) AND (OPEN<MA10*1.02);
//前天MACD小于0
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,M);
MACD:DIF-DEA;
COND3:=(MACD[2]<0);
//综合条件
CONDITION:=COND1 AND COND2 AND COND3;
SIGNAL:CHECKCOND(CONDITION,1);
Python代码参考
import pandas as pd
import talib
def select(df):
# 振幅、10日均线
cond1 = (df['high'] - df['low']) / df['low'] > 0.01
ma10 = df['close'].rolling(window=10).mean()
cond2 = (df['open'] > ma10 * 0.98) & (df['open'] < ma10 * 1.02)
# 前天MACD小于0
dif, dea, macd = talib.MACD(df['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
cond3 = macd[-3] < 0
basic_cond = cond1 & cond2 & cond3
df = df.loc[basic_cond].reset_index()
return df
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
