问财量化选股策略逻辑
本选股策略选取振幅大于1,上市时间大于一定时长,并且15分钟周期MACD绿柱变短的股票。本选股逻辑从振幅、上市时间和MACD指标变化等多方面筛选股票,旨在寻找短期有上涨潜力的股票。
选股逻辑分析
本选股策略通过多方面考量,筛选具有上涨潜力的股票。振幅大于1的股票相较于振幅小的股票更容易获得大量资金的关注;关注一定时长的上市时间,可以避免新上市股票波动过于不稳定的风险;同时,通过MACD指标绿柱变短可以判断短期价格下跌趋势已经放缓,有上涨的可能性。
有何风险?
本选股策略存在以下风险。1. 忽视了企业基本面等因素对于股票的影响;2. MACD指标变化是一种相对较为慢的变化,无法及时反映股票的最新动态;3. 短时间内的交易活跃度不代表股票具有长期上涨潜力。
如何优化?
本选股策略可结合股票的基本面指标以全方面考虑股票的各个方面,同时在筛选股票时应全面考虑指标变化,以减小个别因素对策略的影响。
最终的选股逻辑
本选股策略选取振幅大于1,上市时间大于三年,并且15分钟周期MACD绿柱变短的股票,同时结合股票的基本面指标以全方面考虑股票的各个方面。
同花顺指标公式代码参考
- MACD指标公式:DIFF = EMA(CLOSE, SHORT) - EMA(CLOSE, LONG); DEA = EMA(DIFF, MID); MACD = 2 * (DIFF - DEA)
- 绿柱变短指标公式:MACD - DEA的差值取15分钟前后两个周期的值,如果差值变小,则绿柱变短。
python代码参考
import tushare as ts
from datetime import datetime, timedelta
pro = ts.pro_api()
def select_stocks(n):
selected_stocks = []
for code in pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,name,list_date,list_status,total_mv,circ_mv,npr')["ts_code"]:
if len(selected_stocks) >= n:
break
if code.startswith("688"):
continue
if code.startswith("60") and code[:6] != "600" and code[:6] != "601":
continue
if pro.query('daily_basic', ts_code=code, trade_date=datetime.today().strftime('%Y%m%d'), fields='amplitude')[0][0] <= 1:
continue
list_days = (datetime.today() - datetime.strptime(pro.query('stock_basic', ts_code=code, fields='list_date')["list_date"][0], '%Y%m%d')).days
if list_days < 1095:
continue
yesterday_macd = pro.query('index_daily', ts_code=code, trade_date=(datetime.today()-timedelta(days=1)).strftime('%Y%m%d'), fields='macd,dea')[0]
before_macd = pro.query('index_daily', ts_code=code, trade_date=(datetime.today()-timedelta(minutes=15)).strftime('%Y%m%d %H:%M:%S'), fields='macd,dea')[0]
if yesterday_macd[0] - yesterday_macd[1] <= before_macd[0] - before_macd[1]:
continue
selected_stocks.append(code)
return selected_stocks[:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
