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

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

问财量化选股策略逻辑

本选股策略选择振幅大于1、非ST(上午10点之前选股票)、五部涨停战法、外盘/内盘大于1.3,筛选出符合条件的股票选购。

选股逻辑分析

本选股策略在技术面加入了振幅、ST、涨停战法、市场买卖盘等指标,同时加入了外盘/内盘因素,属于技术面和基本面相结合。认为在技术面的基础上,加入量价因素更能反映个股的市场活跃度。

有何风险?

选股策略过度依赖个股的市场活跃性,忽视了公司的财务及经营情况,存在一定程度的风险。同时,市场交易量、买卖盘等因素的影响存在一定的时效性,在市场变化较快的情况下该指标可能存在延迟。

如何优化?

可以加入更多的因素进行分析,例如行业趋势、市盈率、市净率等。同时,对于选股策略需要进行实证研究和长期跟踪,以保证其有效性。

最终的选股逻辑

本选股策略完善的逻辑为:振幅大于1、非ST、五部涨停战法、外盘/内盘大于1.3,筛选出符合条件的股票选购。

同花顺指标公式代码参考

C:收盘价
V:成交量
TVOL:总成交量
O:开盘价
R:涨幅
UP:涨停价
DP:跌停价
        

// 内盘V1,外盘V2
V1:=SUM(IF(C=O AND R>0,0,IF(C>O,(C-O),0))*V,30)
V2:=SUM(IF(C=O AND R<0,0,IF(C>O,0,(C-O)))*V,30)
    
// 内外盘比例
VR: V1/V2

// 判断是否符合条件
SELECT * FROM STOCK_DATA WHERE AMPLITUTE > 1 AND NAME NOT LIKE '%ST%' AND CLOSE = MAX5(CLOSE) AND VR > 1.3

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']]

# 加入市场买卖盘因素
df['V1'] = df['VOL'] * pd.Series([max(0, row['CLOSE'] - row['OPEN']) if row['CLOSE'] > row['OPEN'] else 0 for _, row in df.iterrows()])
df['V2'] = df['VOL'] * pd.Series([max(0, row['OPEN'] - row['CLOSE']) if row['CLOSE'] < row['OPEN'] else 0 for _, row in df.iterrows()])
df['VR'] = df['V1'] / df['V2']

# 筛选条件4:外盘/内盘大于1.3
df = df[df['VR'] > 1.3]

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

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

    模板如何使用?

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


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

评论