问财量化选股策略逻辑
本选股策略选择振幅大于1,连续3天以上大单净量大于0.05,非ST,五部涨停战法的股票。
选股逻辑分析
本选股策略基于技术分析和市场表现,使用振幅、大单净量等技术指标筛选出股票,同时排除ST股和存在重大利空的股票,并使用五部涨停战法进行选股。五部涨停战法是指,股价突破历史高点后,经过调整后在上涨时遇到的第五个涨停板之后入手,在趋势上升时持仓,直到出现趋势反转的信号后果断止损离场。
有何风险?
本选股策略的风险在于,依赖于过去的历史数据和纯技术指标,而未考虑到公司基本面、宏观经济等因素的影响,选股结果有可能受到市场整体影响和行业板块走势的干扰,从而导致选股结果的不准确性。
如何优化?
可加入一些基本面条件和市场情绪等指标,例如关注ROE、PE等财务数据,同时结合市场情绪指标如投资者情绪、市场交易活跃度等,综合考虑股票的基本面和技术面等因素,以提高选股策略的准确性和稳定性。
最终的选股逻辑
本选股策略的筛选逻辑为:振幅大于1,连续3天以上大单净量大于0.05,非ST,五部涨停战法的股票。
同花顺指标公式代码参考
暂无同花顺指标代码。
Python代码参考
import pandas as pd
# 读取股票数据
df = pd.read_csv('stock_data.csv')
# 筛选条件1:振幅大于1
df['A'] = 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[(abs(df['HIGH'] - df['PREV_CLOSE']) > df['A']) & (abs(df['LOW'] - df['PREV_CLOSE']) > df['A'])]
# 筛选条件2:连续3天以上大单净量大于0.05
df['VOL_NVI'] = (df['NET_VOLUME'] / df['VOLUME']).rolling(3).sum()
df = df[df['VOL_NVI'] > 0.05]
# 筛选条件3:非ST股
df = df[df['IS_ST'] == False]
# 筛选条件4:五部涨停战法
df['IS_BREAK_HIGH'] = (df['HIGH'] > df['HIGH'].rolling(20).max())
df['MAX_PRICE'] = df['CLOSE'].rolling(20).max()
df['MAX_PRICE_NUM'] = df.apply(lambda row: ((row['MAX_PRICE'] == row['CLOSE']) & row['IS_BREAK_HIGH']), axis=1)
df['RISE_STOP'] = df.apply(lambda row: (row['IS_BREAK_HIGH'] & row['MAX_PRICE_NUM'].rolling(5).sum() == 5), axis=1)
df = df[df['RISE_STOP'] == True]
# 筛选条件5:10点之前选股票
df['TIME'] = pd.to_datetime(df['TIME'])
df = df[df['TIME'].dt.hour < 10]
# 加入更多的过滤条件
df = df[df['EPS'] > 0]
df = df[df['ROE'] > 10]
# 输出选股数据
print(df)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
