(supermind量化-)振幅大于1、非ST(10点之前选股票)五部涨停战法、昨日非涨停

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

问财量化选股策略逻辑

本选股策略选择振幅大于1、非ST(上午10点之前选股票)、五部涨停战法、昨日非涨停板的股票进行选股。

选股逻辑分析

本选股策略在前一个策略的基础上加入了一个新的条件,即昨日非涨停板,这个条件的引入可以帮助筛选出在昨日未有大量买盘涌入的股票,从而帮助我们在今天进行抄底。

有何风险?

本选股策略存在以下风险:1)选择的指标过于简单,没有充分考虑到市场变化的细节问题,只适用于特定时间范围;2)对于新股和低价股的适用性较差,需要针对其它特征进行筛选。

如何优化?

对选股策略可通过如下方式进行优化:1)将对昨日非涨停板的要求进行优化,可以考虑加入其他筛选指标;2)可以考虑引入机器学习等模型进行策略优化。

最终的选股逻辑

本选股策略的最终逻辑为:振幅大于1、非ST、五部涨停战法、昨日非涨停板的股票进行选股。

同花顺指标公式代码参考

选股条件:昨日非涨停板

LCLOSE<>LAST4COUNT(LCLOSE>=1.098*LCLOSE,1)+LAST4COUNT(LCLOSE>=1.098*LCLOSE,2)+LAST4COUNT(LCLOSE>=1.098*LCLOSE,3)+LAST4COUNT(LCLOSE>=1.098*LCLOSE,4)

python代码参考

import pandas as pd
import tushare as ts

# 读取股票数据
df = pd.read_csv('stock_data.csv')

# 筛选条件1:振幅大于1
df['AMPLITUTE'] = df.apply(lambda row: max(row['HIGH'] - row['LOW'], abs(row['HIGH'] - row['PREV_CLOSE']), abs(row['LOW'] - row['PREV_CLOSE'])), axis=1)
df = df[df['AMPLITUTE'] > 1]

# 筛选条件2:非ST
df = df[df['NAME'].str.upper().str.find('ST') == -1]

# 筛选条件3:五部涨停战法
df['CLOSE_MAX'] = df['CLOSE'].rolling(5).max()
df = df[df['CLOSE'] == df['CLOSE_MAX']]

# 筛选条件4:昨日非涨停板
tmp = ts.get_stock_basics()
yesterday = pd.to_datetime('yesterday').strftime('%Y-%m-%d')
not_limit_up = []
for code in df['CODE']:
    if tmp.loc[code]['timeToMarket'] > int(yesterday.replace('-', '')):
        not_limit_up.append(False)
    else:
        kline = ts.get_k_data(code, start=yesterday, end=yesterday)
        if len(kline) == 1:
            pre_close = tmp.loc[code]['pb']
            close = kline['close'].iloc[0]
            if close < pre_close*1.098:
                not_limit_up.append(True)
            else:
                not_limit_up.append(False)
df = df[not_limit_up]

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

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

    模板如何使用?

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


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

评论