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

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

问财量化选股策略逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并根据市盈率和市净率等财务指标进行进一步筛选,寻找深证主板中市盈率0-29.01、市净率0-3.11的股票。该策略结合股票价格波动和财务指标分析,选出有潜力的股票,注意风险控制。

选股逻辑分析

本选股策略以股票价格波动为基础,着眼于股票价格波动和市场流动性的表现形式,如振幅、换手率等指标。同时,对市盈率和市净率等财务指标进行严格筛选,以找寻有坚实基本面且未被过分高估的公司。这种方法可以根据相对客观的评估标准进行规避被市场过度高估的公司。

有何风险?

本选股策略存在财务数据更新滞后、部分中小市值股票易遭遇黑天鹅事件等风险。此外,市盈率和市净率是对股票价值的评估标准之一,但是股票市场存在估值泡沫等现象,过分依赖单一指标的选股策略可能被市场现象所误导,导致选股策略效果下降。

如何优化?

为了优化选股策略,可以加入其他财务指标,如收入和利润增长率、股息率等。此外,可以进行多维度的数据分析,如技术面和基本面相结合,利用机器学习算法对股票价值进行预测等方式,优化选股策略的效果。

最终的选股逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并根据市盈率和市净率等财务指标进行进一步筛选,寻找深证主板中市盈率0-29.01、市净率0-3.11的股票。

同花顺指标公式代码参考

Python代码参考

import tushare as ts
import pandas as pd
from datetime import datetime,timedelta

pro = ts.pro_api()

def select_stocks(n):
    selected_stocks = []
    
    today = datetime.today().strftime("%Y%m%d")
    yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y%m%d")

    for code in pro.query('stock_basic', exchange='SZSE', list_status='L', fields='ts_code,name,list_date,list_status,total_mv')["ts_code"]:
        if len(selected_stocks) >= n:
            break
            
        db = pro.daily(ts_code=code, start_date=(datetime.now() - timedelta(days=365)).strftime("%Y%m%d"),
                           end_date=date.today().strftime("%Y%m%d"), fields='close,high,low')

        if db.empty or len(db) < 250:
            continue
        
        db_amplitude = (db['high'] - db['low']) / db['close']
        
        df_finance = pro.query('daily_basic', ts_code=code,
                               fields='pe,pb', start_date= yesterday, end_date=today).dropna()
        
        if len(df_finance) > 0 and 0 < df_finance['pe'].iloc[0] < 29.01 and 0 < df_finance['pb'].iloc[0] < 3.11:
            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, 'last_close': db['close'].iloc[-1]})

    df = pd.DataFrame(selected_stocks)
    df_selected = df.sort_values('last_close', ascending=False).head(n)

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

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

    模板如何使用?

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


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

评论