问财量化选股策略逻辑
选取MACD值在零轴以上、价格低于12元、剔除昨日有过涨停的股票。该策略主要从技术面指标出发,选择MACD指标为技术入口,通过技术指标筛选高风险、高潜在收益的股票,避免市场情绪指标涨停对选股的影响,寻找适合短期投资者的潜在投资标的。
选股逻辑分析
该选股策略主要是通过技术面指标MACD、价格来筛选股票,且注重减少市场情绪的影响,只选取MACD值在零轴以上、价格低于12元的股票,剔除昨日涨停的股票。涨停情绪对市场影响较大,难以准确判断股票的真实涨跌风险,因此此策略剔除昨日涨停的股票,减少市场情绪对选股的影响,提高投资的成功率。
有何风险?
剔除昨日涨停能够消除涨停情绪对选股的影响,但是该策略可能会漏选某些具备较好投资潜力的股票,如昨日有好消息公布但未涨停等。同时该策略也忽略了其他市场情绪指标,如大单、资金流向等,对于市场整体情绪的反映比较片面。
如何优化?
可加入其他的基本面指标,如市盈率、市净率、净资产收益率等,以完善对股票潜在价值的评估,也可增加其他技术指标的筛选,如相对强势指标、均线等。同时应对市场整体情绪多方位监测,如大单、资金流向等,加强对市场趋势的把握。
最终的选股逻辑
选取MACD值在零轴以上、价格低于12元、剔除昨日有过涨停的股票。
同花顺指标公式代码参考
// MACD零轴以上、价格低于12元、剔除昨日涨停的股票
(MACD(12,26,9)>0) AND (C<12) AND (REF(ISUP() OR ISDOWN(), 1)==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)
temp_df = finance.run_query(query(finance.STK_XDXR).filter(finance.STK_XDXR.code==stock_code).order_by(finance.STK_XDXR.day.desc()).limit(2))
if (df['MACD'][0] > 0) & (df['close'][0] < 12) & (not(temp_df['up_limit'][1] == 1)):
print("(" + stock_code + ")" + stock_name + " 符合条件")
在Python代码中,通过聚宽接口的STK_CAPITAL_CHANGE获取大单、特大单买入信息,筛选出符合条件的股票。最终比较最新一日MACD、close以及前一日涨停记录是否同时符合选股条件,以确保日线MACD趋势向上,同时剔除昨日有过涨停的股票。最后用print语句将选出的股票输出。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


