(supermind策略)换手率3%-12%、北京A股除外、底部抬高_

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

问财量化选股策略逻辑

选股逻辑为:在换手率3%-12%,剔除北京A股以及底部抬高的股票中选取。

选股逻辑分析

除了考虑换手率和地域因素之外,还加入了底部抬高的要求,筛选出一些有一定盈利预期的股票。

有何风险?

同样由于该选股逻辑仅考虑了少数的因素,可能忽略了一些其他因素,如市场情绪、公司基本面等,导致选股结果不稳定,风险较高。同时,制定底部抬高的标准也需要谨慎,否则会因为标准过高导致筛选效果不佳。

如何优化?

同样应该引入其他因素进行筛选,如市场表现、行业发展趋势、公司财务状况等,以降低选股的风险。同时,制定底部抬高的标准应该结合股票的风险和盈利预期等因素。可以使用机器学习等方法进行模型训练和数据特征工程,以提高选股的有效性和稳定性。

最终的选股逻辑

在换手率3%-12%,剔除北京A股以及底部抬高的股票中进行选取,同时综合考虑其他相关因素并进行分析,以提高选股效益。

同花顺指标公式代码参考

无需使用指标公式。

Python代码参考

import tushare as ts
import numpy as np
import pandas as pd

def select_good_stocks():
    ts.set_token('your_token')
    pro = ts.pro_api()

    # 筛选出反包内的股票
    df1 = pro.stock_basic(exchange='', list_status='L', fields='ts_code,name,industry,pe,pb,turnover_rate,amount,total_mv,float_mv')
    df2 = pd.read_excel('path/to/reverse_list.xlsx')
    reverse_stocks = df2['代码'].tolist()
    df1 = df1[df1['ts_code'].isin(reverse_stocks)]

    df1 = df1[(df1['turnover_rate'] >= 3) & (df1['turnover_rate'] <= 12)]
    df1 = df1[(df1['name'].str.contains('ST') == False)]
    df1 = df1[(df1['area'] != '北京')]
    df1 = df1.dropna(subset=['pb', 'pe'])
    df1 = df1[df1['pe'] < 20]

    df3 = pro.daily_basic(trade_date='20211210', fields='ts_code,trade_date,close')
    df4 = pro.daily_basic(trade_date='20211210', fields='ts_code,close')
    df5 = pd.merge(df3, df4, how='left', on='ts_code')
    df5['pb'] = df5['close_y'] / (df5['total_mv'] / 10000)
    df5 = df5.rename(columns={'close_x': 'close'})
    df5 = df5[['ts_code', 'trade_date', 'close', 'pb']]

    df5_1 = df5[df5['trade_date'] <= '20201001'][['ts_code', 'close']].groupby('ts_code').max().reset_index()
    df5_2 = df5[df5['trade_date'] <= '20211210'][['ts_code', 'close']].groupby('ts_code').max().reset_index()
    df5 = pd.merge(df5_1, df5_2, on='ts_code', suffixes=('_min', '_max'))
    df5['pct_chg'] = (df5['close_max'] - df5['close_min']) / df5['close_min']
    df5 = df5[['ts_code', 'pct_chg']]
    df1 = pd.merge(df1, df5, on='ts_code', how='left')
    df1 = df1[df1['pct_chg'] >= 0.2].reset_index(drop=True)

    df1 = df1.head(20)
    return df1

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

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

    模板如何使用?

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


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

评论