问财量化选股策略逻辑
选股逻辑为:振幅大于1、9点25分涨幅小于6%、15分钟周期MACD绿柱变短。该选股策略综合考虑了股票波动性、短期走势和技术面指标,有助于发现符合要求的个股。
选股逻辑分析
在前一个选股逻辑的基础上,加入了15分钟周期MACD绿柱变短的条件。MACD指标可以较为直观的反应出股票的短期涨跌幅度和趋势变化情况,同时将其与振幅和涨幅等指标结合起来,可以更全面地进行短期选股。
有何风险?
该选股逻辑仍然忽略了个股的长期趋势和基本面情况,可能会造成投资者盲目追求短期涨幅,忽略了个股的价值。另外,该逻辑中忽略了其它技术指标的变化情况,仅考虑MACD指标的变化,这可能导致选股结果存在较大偏差。
如何优化?
可以引入更多长期趋势和基本面方面的指标,如PE、PB、EPS等指标,或者通过选取行业龙头、业绩稳定且股价趋势良好的个股,提高选股策略的稳定性和收益潜力。另外,在市场情况发生变化或是存在行业热点等情况下,可以及时调整选股策略,从而适应市场变化。
最终的选股逻辑
选股逻辑为:振幅大于1、9点25分涨幅小于6%、15分钟周期MACD绿柱变短,满足以上条件的股票作为短期投资标的。该选股策略综合考虑了股票波动性、短期走势和技术面指标,具有一定的选股能力。
同花顺指标公式代码参考
FZ_RANGE > 1 AND LAST<=LAST[1]*1.06 AND MACD_DIF(15,26,9) < REF(MACD_DIF(15,26,9), 1) AND MACD_MACD(15,26,9) < REF(MACD_MACD(15,26,9), 1)
其中FZ_RANGE表示振幅大小,LAST表示当天的收盘价,LAST[1]表示前一天的收盘价,MACD_DIF、MACD_MACD分别表示15分钟周期的MACD指标的DIFF和MACD值。通过以上指标查找符合条件的股票。
Python代码参考
import tushare as ts
from datetime import datetime, timedelta
def get_selected_stocks():
pro = ts.pro_api()
selected_stocks = []
for ts_code in pro.stock_basic(exchange='', list_status='L', fields='ts_code,industry').values.tolist():
if ts_code[1] == '科创板':
continue
# 振幅大于1
k_data = pro.daily(ts_code=ts_code[0], start_date=(datetime.now()-timedelta(days=30)).strftime('%Y%m%d'), end_date='', fields='ts_code,trade_date,high,low')
highest_price = k_data['high'][0]
lowest_price = k_data['low'][0]
for idx, k in k_data.iterrows():
if idx > 5:
break
if k['high'] >= highest_price:
highest_price = k['high']
if k['low'] <= lowest_price:
lowest_price = k['low']
if highest_price / lowest_price <= 1:
continue
# 9点25分涨幅小于6%
tick_data = pro.tick(ts_code=ts_code[0], date=datetime.now().strftime('%Y%m%d'))
current_price = tick_data[tick_data['time'] == '09:25:00']['price'].values[0]
pre_close = pro.daily(ts_code=ts_code[0], start_date=(datetime.now()-timedelta(days=6)).strftime('%Y%m%d'), end_date='', fields='ts_code,trade_date,close', freq='1D').iloc[1]['close']
if current_price / pre_close >= 1.06:
continue
# 15分钟周期MACD绿柱变短
macd_diff, macd_macd, _ = talib.MACD(pro.bar(ts_code=ts_code[0], start_date=(datetime.now()-timedelta(days=1)).strftime('%Y%m%d'), end_date='', asset='E', freq='15min').close.values, fastperiod=15, slowperiod=26, signalperiod=9)
if macd_diff[-1] > macd_diff[-2] or macd_macd[-1] > macd_macd[-2]:
continue
selected_stocks.append(ts_code[0])
return selected_stocks
在Python代码中,通过使用tushare库获取股票数据,进而筛选符合条件的股票。通过振幅和涨幅等指标判断个股波动性情况,通过talib库来计算15分钟周期MACD指标,并判断绿柱是否变短,根据以上指标寻找符合条件的股票。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
