问财量化选股策略逻辑
选取MACD值在零轴以上、价格低于12元、前天MACD值小于0的股票。该策略主要从技术面入手,寻找MACD值呈现金叉或多头排列的股票,同时考虑价格和MACD的关系,确认当前价格处于相对低位,前天MACD值为负,从而确定入场点。
选股逻辑分析
该选股策略主要是通过技术面指标MACD、价格等指标来筛选股票,关注技术指标的走势变化,通过技术分析找到符合选股策略的个股,保证股票的高风险低估值,不复合基本面的股票不会被选到。同时,该策略加入了前天MACD值小于0的限制,以更好地确认股票在价值相对处于低点,再次确认入场信号。
有何风险?
该选股策略主要基于技术面指标,忽略了公司基本面因素和其他市场因素的影响,容易忽略有潜在价值机会的个股,在高估值的情况下误判入场点,造成一定风险。同时,股票的涨跌还受到股票市场环境、政策法规、公司财报等多种因素的影响,而该策略只是基于技术面分析进行选股,对市场的突发事件反应相对慢。
如何优化?
可加入其他的基本面指标,如市盈率、市净率、净资产收益率等,以完善对股票潜在价值的评估。同时,也可以加入其他的技术指标,如均线、KDJ等,以筛选更优质的个股。
最终的选股逻辑
选取MACD值在零轴以上、价格低于12元、前天MACD值小于0的股票。
同花顺指标公式代码参考
// MACD零轴以上、价格低于12元、前天MACD值小于0的股票
(MACD(12,26,9)>0) AND (C<12) AND (REF(MACD(12,26,9), 2) < 0);
Python代码参考
import jqdatasdk as jq
from datetime import datetime, timedelta
from jqdatasdk import finance
from jqdatasdk import query
jq.auth('账户名', '密码')
today = datetime.now().date()
start_date = (today - timedelta(days=30)).strftime("%Y-%m-%d")
q = query(finance.STK_CAPITAL_CHANGE).filter(finance.STK_CAPITAL_CHANGE.change_ratio > 0.1)
df_change = finance.run_query(q)
df_change = df_change[df_change['volume']>7000000]
for stock_code in df_change.index.tolist():
stock_name = jq.get_security_info(stock_code).display_name
df = jq.get_price(stock_code, start_date=start_date, end_date=today, frequency='daily', fields=['close']);
df['DIFF'], df['DEA'], df['MACD'] = ta.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
if (df['MACD'][0] > 0) & (df['close'][0] < 12) & (df['MACD'][2] < 0):
print("(" + stock_code + ")" + stock_name + " 符合条件")
在Python代码中,通过聚宽接口的STK_CAPITAL_CHANGE获取大单、特大单买入信息,筛选出符合条件的股票。最终比较最新一日MACD、close以及前天MACD是否同时适合选股条件,以确保MACD处于向上趋势,同时确认入场信号。最后用print语句将选出的股票输出。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


