问财量化选股策略逻辑
策略选取振幅大于1、上市时间大于一年,且周K线上穿30周线的股票。选取周K线可以过滤掉日内波动的干扰,指标上穿可视为股票近期表现向好的信号。
选股逻辑分析
振幅大于1表示股票的价格波动范围较大,具有一定的市场活跃性。上市时间大于一年可以过滤掉新股或股价波动较大的股票。周K线上穿30周线则是技术指标中的趋势信号,表明股票近期表现向好,具有投资价值。
有何风险?
本选股策略只是从价格波动及技术指标两方面考虑,未考虑公司基本面、市场情况、板块轮动等因素对股票的影响。同时,可能存在股票涨跌幅度较大、市场情况变化时,股价波动较大等风险。
如何优化?
本选股策略可以加入其他技术指标,如MACD、KDJ等,更全面的技术面分析可以提高选股精度。同时,对于涨跌较大的股票,也需要合理的风险管理。
最终的选股逻辑
本选股策略选取振幅大于1、上市时间大于一年,且周K线上穿30周线的股票。
同花顺指标公式代码参考
周K线:
CM:=IF((WEEK(V)>REF(WEEK(V),1)),2HHV(H,60)-HHV(L,60)-REF(2HHV(H,60)-HHV(L,60),1),IF((WEEK(V)=REF(WEEK(V),1)),IF(C>REF(C,1),2HHV(H,60)-HHV(L,60)-REF(2HHV(H,60)-HHV(L,60),1),IF(C<=REF(C,1),2LLV(L,60)-HHV(H,60)-REF(2LLV(L,60)-HHV(H,60),1),WIDTH)),0);
MT:EMA(CM,M);
30周线:
MA(CLOSE, 30);
指标上穿:
CROSS(MT, MA(CLOSE, 30))
python代码参考
import tushare as ts
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')["ts_code"]:
if len(selected_stocks) >= n:
break
if code.startswith("688"):
continue
if not code.startswith("60"):
continue
quote_info = pro.query('weekly', ts_code=code, start_date=(datetime.today() - timedelta(weeks=30)).strftime('%Y%m%d'), end_date=datetime.today().strftime('%Y%m%d'), fields='open, close, low, high')
if len(quote_info) < 30:
continue
ma30 = quote_info["close"].rolling(30).mean()
if ma30.iloc[-1] <= quote_info["close"].iloc[-1]: # 周K线上穿30周线
selected_stocks.append(code)
return selected_stocks[:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
