问财量化选股策略逻辑
本选股策略选择振幅大于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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
