(supermind量化策略)task17/a/换手率3%-12%、三连阴、竞价涨幅>-2

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

问财量化选股策略逻辑

选股逻辑为:在换手率在3%-12%之间、连续三天收阴线、竞价涨幅在-2%至5%之间的情况下,选取这些股票。

选股逻辑分析

该选股逻辑考虑了交易量、价格和技术面的因素,筛选出相对较弱但有反弹可能的股票。买入时机相对比较稳健,同时也能减少买卖成本,有效降低风险。

有何风险?

该选股策略对公司的基本面数据,例如财务状况等的考量较少,存在一定的盲目性。同时,由于筛选条件相对简单,筛选结果可能存在较高的错误率。

如何优化?

可以结合更为全面的基本面数据,进一步考量公司的实际情况,加强选股的精准性。同时,可以结合机器学习等技术来挖掘更为合适的选股条件。

最终的选股逻辑

在换手率在3%-12%之间、连续三天收阴线、竞价涨幅在-2%至5%之间的情况下,选取这些股票。

同花顺指标公式代码参考

以通达信公式为例:

SETBARS(20,0); 
V_SELECT := N日涨幅(0) >= -2 AND N日涨幅(0) <= 5 AND 换手率>=3 AND 换手率<=12 AND MAINbd AND 三连阴(5);
条件选股:V_SELECT;

python代码参考

import baostock as bs
import pandas as pd

#### 登陆系统 ####
lg = bs.login()

#### 获取满足条件的股票 ####
rs = bs.query_stock_basic()
stock_list = []
while (rs.error_code == '0') & rs.next():
    stock_code = rs.get_row_data()[0]
    # 查询股票实时行情
    rs_q = bs.query_history_k_data_plus(stock_code, "date,code,open,high,low,tradeStatus,preclose,close,volume,amount,adjustflag,turn,pctChg,peTTM,pbMRQ,isST,float_share", "2022-07-05", "2022-07-05")
    if rs_q.error_code == '0':
        row_data = rs_q.get_row_data()
        # 判断换手率
        volume = float(row_data[8])
        turnover_rate = float(row_data[11])
        if 3 <= turnover_rate <= 12:
            rs_j = bs.query_history_k_data_plus(stock_code, "date,code,open,high,low,close,pctChg,preclose", start_date='2022-07-01', end_date='2022-07-05', frequency="d")
            if rs_j.error_code == '0':
                # 判断竞价涨幅
                row_data = rs_j.get_row_data()
                pre_close = float(row_data[7])
                close = float(row_data[6])
                pct_chg = (close - pre_close) / pre_close * 100
                if -2 <= pct_chg <= 5:
                    # 判断连续收阴线
                    rs_k = bs.query_history_k_data_plus(stock_code, 'date,open,high,low,close', start_date=datetime.datetime.now()-datetime.timedelta(days=10), end_date=datetime.datetime.now(), frequency='d', adjustflag='3')
                    if rs_k.error_code == '0':
                        close_hist = list(map(float, rs_k.get_column("close")))
                        if len(close_hist) >= 3 and all([close_hist[i] < close_hist[i-1] for i in range(1, 4)]):
                            stock_list.append(stock_code)

# 转换成DataFrame格式并输出结果
df = pd.DataFrame(stock_list, columns=['stock_code'])
print(df)

#### 登出系统 ####
bs.logout()
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论