(supermind量化-)振幅大于1、(昨日换手率_(今日竞价成交量除昨日成交量))_0

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

问财量化选股策略逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并按照个股热度从大到小排序,选取前N只股票。该策略侧重于考虑市场流动性、市场人气和市场趋势等因素,关注股票价格波动和市场热度,注重风控,避免选取风险较高的股票。

选股逻辑分析

本选股策略依赖市场流动性、市场人气和市场趋势等因素,振幅大于1的股票波动较大,可以有机会出现高买低卖的机会,同时通过加入昨日换手率和今日竞价成交量的条件,考虑了股票的流动性。按个股热度从大到小排序,可以筛选出市场热度较高的股票,更适合短期交易。选取股票的过程中,同时考虑了风险,避免了过分关注收益率的投资策略。

有何风险?

本选股策略选取的条件相对较少,可能无法完全反映市场整体情况,忽略了一些重要的指标和因素,如市场演变趋势、行业的影响等,存在一定的风险。排序依赖于个股热度,可能会忽略一些股票的基本面和成长性。同时,选股时需要考虑时点的选择,如选股时点的选择可能会影响选出股票的质量和盈利水平。

如何优化?

为了优化选股策略,可以结合更多的信息,如市场环境、行业影响、重磅新闻、基本面和技术面等因素。加入行业因素并根据股票的成长性和业务发展情况,以全面考虑股票的投资价值;同时结合技术面指标和市场情绪等因素,更加全面地分析和评估选取股票的质量和价值。此外,选股时应注意市场风险的控制,根据市场周期进行投资,避免过于乐观或悲观,根据市场环境进行相应的投资策略。

最终的选股逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并按照个股热度从大到小排序,选取前N只股票。同时,加入行业因素,侧重于股票的成长性和业务发展情况,加入技术面指标和市场情绪等因素,以全面分析和评估选股策略的投资价值。

同花顺指标公式代码参考

Python代码参考

import tushare as ts
import pandas as pd

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')["ts_code"]:
        if len(selected_stocks) >= n:
            break
            
        db = pro.daily_basic(ts_code=code, start_date=(datetime.now() - timedelta(days=365)).strftime("%Y%m%d"),
                              end_date=date.today().strftime("%Y%m%d"), fields='pe')
        
        if db.empty or len(db) < 250:
            continue
        
        db_amplitude = (db['high'] - db['low']) / db['close']
    
        df_volume = pro.moneyflow(ts_code=code, start_date=db['trade_date'].iloc[0].strftime("%Y%m%d"),
                                  end_date=db['trade_date'].iloc[-1].strftime("%Y%m%d"), fields='date,main_buyer')
        db_mainmoney = pd.Series(df_volume['main_buyer'].values, index=df_volume['date'])
        
        db_turnover_rate = db['vol'] / pro.query('stock_basic', ts_code=code,
                                                 fields='outstanding_share')['outstanding_share'].iloc[0] * 100
        
        if db_amplitude.iloc[-1] > 1 and 0.5 < db_turnover_rate.iloc[-1] * (db['vol'].iloc[-1] / db['vol'].iloc[-2]) < 2:
            selected_stocks.append({'code':code, 'hot':db_mainmoney.iloc[-1]})

    df = pd.DataFrame(selected_stocks).sort_values('hot', ascending=False).head(n)
    selected_stocks = list(df['code'])

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

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

    模板如何使用?

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


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

评论