问财量化选股策略逻辑
本选股策略选取振幅大于1,昨日换手率*(今日竞价成交量/昨日成交量)在0.5到2之间,并且DEA指标上涨的股票作为投资目标。综合考虑了股票价格、成交量、市场走势和技术指标等因素,选取具备成长性和投资回报的股票。
选股逻辑分析
本选股策略除了综合考虑了股票价格、成交量、市场走势等因素外,还运用了技术指标DEA对股票进行判断。该指标可以反映出股票的长期趋势,有助于选取具有潜力的股票。同时,该策略选取的股票具有较高的成交量和市场热度,也有一定的价值投资潜力。
有何风险?
本选股策略仍然存在一定的市场风险,因为市场情况随时都可能发生变化,导致股票的走势与预期不一致。同时,该策略同样存在不能完全考虑公司基本面等因素的风险,需要做好后续的风险控制和跟踪分析。
如何优化?
本选股策略可以加入其他的技术指标,如RSI、KDJ等指标,综合运用多种技术指标对股票走势进行判断,提高策略的准确性和稳定性。同时,建议结合股票的基本面数据进行判断,以更全面、准确地判断股票的投资价值。
最终的选股逻辑
本选股策略选取振幅大于1,昨日换手率*(今日竞价成交量/昨日成交量)在0.5到2之间,并且DEA指标上涨的股票作为投资目标。综合考虑股票价格、成交量、市场走势和多种技术指标,以综合评估股票的成长性和投资价值,选取投资回报高且风险可控的股票。
同花顺指标公式代码参考
- DEA指标公式:DEA(i)=前一日DEA×8/10+本日DIF×2/10
- 通达信指标公式:DEA:(EMA(CLOSE,12)+EMA(CLOSE,12)0.2)(1-0.2)+EMA(EMA(CLOSE,12)-EMA(CLOSE,26),9)(0.2+0.8(1-0.2))
Python代码参考
import tushare as ts
import time
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,industry,market,area,pe,pb,circ_mv')['ts_code']:
if 'ST' in code:
continue
if '科创板' in pro.fina_mainbz(ts_code=code, year=2020, quarter=1)['bz_item']:
continue
df = pro.bar(ts_code=code, freq='15min', start_date='', end_date='', ma=[12, 26])
if df.iloc[:-2]['high'].max() <= df.iloc[-1]['high'] and (df.iloc[-1]['open'] - df.iloc[-1]['low']) / df.iloc[-1]['high'] > 0.01:
dif, dea, macd = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
vol_rate = pro.moneyflow(ts_code=code, start_date='', end_date='', fields='ts_code,trade_date,turnover_rate,vol,amount')
vol_rate = vol_rate.set_index('trade_date')
vol_rate['turnover_rate'] = (vol_rate['turnover_rate']*(df.iloc[-1]['amount']/vol_rate['vol'])).rolling(5).mean() # 5日平均换手率
if vol_rate.iloc[-2]['vol'] > 0 and (vol_rate.iloc[-2]['turnover_rate']) > 0.5 and (vol_rate.iloc[-2]['turnover_rate']) < 2 and dea.iloc[-2] < dea.iloc[-1]:
price_now = pro.realtime_quotes(code).iloc[0]['price']
money_flow = pro.moneyflow(ts_code=code, start_date='', end_date='', fields='buy_sm_amount,sell_sm_amount,buy_md_amount,sell_md_amount,buy_lg_amount,sell_lg_amount')
money_flow_total = money_flow.sum().sum()
if money_flow_total > 0:
selected_stocks.append([code, price_now, money_flow_total])
selected_stocks = sorted(selected_stocks, key=lambda x: x[2], reverse=True)
return [x[0] for x in selected_stocks][:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
