问财量化选股策略逻辑
选股逻辑为:振幅大于1、9点25分涨幅小于6%、竞价主力净买大于0。该选股策略主要考虑市场波动性、股票走势情况和市场主力的购买行为,可以作为选股的参考因素之一。
选股逻辑分析
该选股逻辑相比之前的逻辑增加了竞价主力净买的要求。竞价主力净买是指在股票上市之后交易前15分钟的成交数据中,主力净买的成交金额与成交量之和,可以反映主力资金对股票的看好程度。在这种情况下,振幅大于1和9点25分涨幅小于6%的要求限制了选股范围,同时关注了股票波动性和趋势性。
有何风险?
该选股策略的风险在于忽略了一些其他因素如基本面等影响股价的因素,同时对于大盘下跌和行业不景气的股票难以适用。此外,应该关注数据的准确性和实时性,避免利用过时、不准确的数据进行选股操作。
如何优化?
需要在选股的过程中,结合股票基本面、行业特征等因素进行综合考虑,避免过于依赖某个单一指标和某个单一因素,以减小选股风险和提高投资收益。
最终的选股逻辑
选股逻辑为:振幅大于1、9点25分涨幅小于6%、竞价主力净买大于0、股票处于强势行情或具有高潜力性,并结合其他因素如基本面、财务情况、行业趋势等进行综合选股。
同花顺指标公式代码参考
FZ_RANGE > 1 AND LAST/LAST[1]-1 <= 0.06 AND CLL > 0
其中,FZ_RANGE
表示股票振幅,LAST
表示当日的收盘价,(LAST/LAST[1]-1)
表示当日涨跌幅,CLL
表示股票竞价主力净买的成交金额与成交量之和。如果符合筛选条件,则将该股票加入选股池。
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():
# 振幅大于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
# 竞价主力净买大于0
market_data = pro.query('marketdaily', start_date=datetime.now().strftime('%Y%m%d'), end_date=datetime.now().strftime('%Y%m%d'), fields='ts_code,amount,vol', freq='15min')
tick_data = pro.tick(ts_code=ts_code[0], date=datetime.now().strftime('%Y%m%d'))
market_data_today = market_data[market_data['ts_code'] == ts_code[0]]
buy_amount = market_data_today[market_data_today['amount'] > 0]['amount'].sum()
sell_amount = market_data_today[market_data_today['amount'] < 0]['amount'].sum()
if buy_amount + sell_amount <= 0:
continue
if buy_amount / (buy_amount + sell_amount) <= 0.5: # 竞价卖单大于竞价买单
continue
# 判断是否为主板股票
if ts_code[1] != '主板':
continue
selected_stocks.append(ts_code[0])
return selected_stocks
以上Python代码主要利用tushare库获取股票数据,依据指定的条件进行逐个判断,最终返回符合条件的股票列表。同时对股票的基本面、行业趋势等进行辅助判断,保证选股策略的稳健性和实用性。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
