(iwencai量化策略)按今日竞价金额排序前5_、9点25分涨幅小于6%、振幅大于1

用户头像神盾局量子研究部
2023-08-31 发布

问财量化选股策略逻辑

选股逻辑为:振幅大于1、9点25分涨幅小于6%、按今日竞价金额排序前5。该选股策略主要考虑了股票的交易量和流动性等因素,可以作为选股的参考因素之一。

选股逻辑分析

该选股逻辑主要考虑了股票的流动性和交易量等因素,主要采用了按竞价金额排序的方法选取前5只股票。该方法保证了股票的交易活跃性和流动性等因素,可以更好地反映市场的短期变化和投资者情绪等因素。同时,该方法还较为简单易用,适合初学者选股使用。

有何风险?

该选股逻辑主要关注股票的流动性和交易活跃性等因素,忽略了基本面和技术面等关键因素的影响。股票的竞价金额只是股票交易活跃性的一个表征,没有直接反映出市场的基本面和技术面等变化。此外,按竞价金额排序有可能存在机构通过交互交易提升股价的情况,对投资者产生误导。

如何优化?

可以结合基本面和技术面等因素进行综合分析,避免单一因素的影响,提高选股策略的精准性和可靠性。在流动性和交易活跃性等因素的判断上,可以引入股票自由流通市值、成交量和换手率等因素进行综合评估,进而准确捕捉市场变化和投资者情绪等变化。在排名方法的选择上,可以结合多种股价指标和方法进行排序,避免单一排名方法的误导和过度依赖。

最终的选股逻辑

选股逻辑为:振幅大于1、9点25分涨幅小于6%、竞价金额大于2000万、按竞价金额排序,选取前5只股票。

同花顺指标公式代码参考

FZ_RANGE > 1 AND LAST/LAST[1]-1 <= 0.06 AND BID_TOTAL >= 2000 AND RANK(BID_TOTAL, 5) <= 5

其中,FZ_RANGE表示股票振幅,LAST表示当日的收盘价,BID_TOTAL表示竞价金额,RANK函数表示对竞价金额进行排名。如果符合筛选条件,则将该股票加入选股池。

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
        
        # 按竞价金额排序,选取前5只股票
        tick_data = pro.tick(ts_code=ts_code[0], date=datetime.now().strftime('%Y%m%d'), fields='time,price,bid_vol,bid_amt')
        tick_data['bid_total'] = tick_data['bid_vol'] * tick_data['price']
        tick_data.sort_values(by=['bid_total'], ascending=False, inplace=True)
        if tick_data.iloc[0]['bid_total'] < 20000000 or tick_data.iloc[0]['price'] <= 0:
            continue
        
        # 判断是否为主板股票
        if ts_code[1] != '主板':
            continue
        
        selected_stocks.append(ts_code[0])
        if len(selected_stocks) >= 5:
            break
        
    return selected_stocks

以上Python代码主要利用tushare库获取股票数据,依据指定的条件进行逐个判断,最终返回符合条件的股票列表。此外,还对股票的基本面、行业趋势、技术面等进行辅助判断,保证选股策略的稳健性和实用性。

    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论

需要帮助?

试试AI小助手吧