1. 指标公式解析与应用场景
这个被称为"两板回涨主图"的选股指标公式,本质上是一个基于价格行为的技术分析工具。它通过特定的价格条件组合,试图捕捉股票在连续上涨后的回调买入机会。让我们拆解这个公式的每个组成部分:
VAR1定义了一个涨停条件:当日收盘价较前一日上涨超过9.93%(CLOSE/REF(CLOSE,1)>1.0993)且收盘价等于当日最高价(CLOSE=HIGH)。这个条件识别的是以涨停价收盘的强势股票。
VAR2则定义了跌停条件:当日收盘价较前一日下跌超过8.7%(CLOSE/REF(CLOSE,1)<0.913)且收盘价等于当日最低价。虽然公式中未直接使用VAR2,但它可能用于其他变体。
VAR3设定了一个接近涨停的条件:当日收盘价较前一日上涨超过9.1%(CLOSE>REF(CLOSE,1)*1.091)且收盘价等于最高价。这个条件比VAR1略宽松,可以捕捉到接近涨停但未封板的股票。
2. 核心逻辑与实现细节
VAR7是公式的关键条件之一,它要求:
- 5天前(REF(VAR3,5))和4天前(REF(VAR3,4))都满足VAR3条件(即连续两天接近涨停)
- 当日收盘价高于开盘价(CLOSE>OPEN)
VAR8则要求:
- 当日收盘价高于前一日收盘价(CLOSE>REF(CLOSE,1))
- 当日收盘价高于5天前的开盘价(CLOSE>REF(OPEN,5))
最终的选股信号XG需要同时满足:
- VAR7条件成立
- VAR8条件成立
- 6天前不满足VAR3条件(REF(VAR3,6)=0)
这个组合逻辑试图寻找的是:在连续两天接近涨停后,经过几天调整,股价开始重新走强,且当前价格已经突破调整前位置的股票。
3. 编程实现与参数优化
虽然原始公式是用类似达信或同花顺的公式语言编写的,但我们可以用Python实现相同的逻辑。以下是使用pandas的实现示例:
python复制import pandas as pd
def calculate_xg(stock_data):
df = stock_data.copy()
# 计算VAR1-VAR3
df['VAR1'] = (df['close']/df['close'].shift(1) > 1.0993) & (df['close'] == df['high'])
df['VAR2'] = (df['close']/df['close'].shift(1) < 0.913) & (df['close'] == df['low'])
df['VAR3'] = (df['close'] > df['close'].shift(1)*1.091) & (df['close'] == df['high'])
# 计算VAR7
df['VAR7'] = df['VAR3'].shift(5) & df['VAR3'].shift(4) & (df['close'] > df['open'])
# 计算VAR8
df['VAR8'] = (df['close'] > df['close'].shift(1)) & (df['close'] > df['open'].shift(5))
# 最终信号
df['XG'] = df['VAR7'] & df['VAR8'] & (df['VAR3'].shift(6) == False)
return df
在实际应用中,我们可以对参数进行优化:
- 涨停阈值(1.0993)可以根据市场情况调整,A股通常用1.1(10%涨停)
- VAR3中的1.091可以调整为更接近涨停的值,如1.095
- 时间窗口(5天、4天等)可以根据股票波动特性调整
4. 策略验证与回测要点
在使用这个策略前,必须进行严格的历史回测。以下是关键验证步骤:
-
数据准备:
- 需要至少3年的日线数据(开盘、最高、最低、收盘价)
- 确保数据已经复权处理(前复权)
- 包含足够的样本股票(建议全A股)
-
回测框架:
python复制def backtest(stock_pool, start_date, end_date):
results = []
for code in stock_pool:
data = get_stock_data(code, start_date, end_date)
df = calculate_xg(data)
signals = df[df['XG']]
for idx in signals.index:
entry_price = df.loc[idx, 'close']
exit_price = df.loc[idx + 5, 'close'] # 假设持有5天
returns = (exit_price - entry_price) / entry_price
results.append(returns)
return pd.Series(results)
- 关键评估指标:
- 胜率(盈利交易占比)
- 平均收益率/亏损率
- 最大回撤
- 夏普比率
重要提示:实际回测中需要考虑交易成本(佣金+印花税)、滑点等因素。A股通常按0.15%计算交易成本(买入0.025%佣金,卖出0.025%佣金+0.1%印花税)。
5. 实战应用与风险控制
即使策略在回测中表现良好,实盘应用时仍需注意:
-
市场环境适应性:
- 该策略在单边上涨市中表现最佳
- 震荡市中可能出现频繁假信号
- 下跌市中应避免使用
-
仓位管理原则:
- 单只股票仓位不超过总资金的5%
- 每日新增仓位不超过总资金的20%
- 设置总仓位上限(如80%)
-
止损策略:
- 固定比例止损(如-5%)
- 移动止损(最高价回撤3%)
- 时间止损(持有3天不涨即平仓)
-
信号过滤技巧:
- 结合成交量(当日成交量大于5日均量)
- 参考大盘趋势(上证指数处于20日均线上方)
- 板块热度(同板块有多只股票涨停)
6. 常见问题与优化方向
在实际使用中,可能会遇到以下问题:
-
信号稀少:
- 放宽VAR3条件(如改为上涨7%)
- 调整时间窗口(改为3天和2天)
- 取消REF(VAR3,6)=0的限制
-
假突破多:
- 增加均线过滤(如收盘价在20日均线上方)
- 要求当日阳线实体大于2%
- 结合MACD金叉等指标确认
-
收益不稳定:
- 设置动态止盈(如盈利5%后上移止损至成本价)
- 区分大盘环境使用不同参数
- 结合板块轮动规律调整选股范围
对于想进一步优化策略的开发者,可以考虑:
- 加入机器学习模型对信号进行二次过滤
- 开发配套的卖出指标
- 结合Level2数据(如大单净量、资金流向)
- 实现自动化交易系统
这个两板回涨策略的核心思想是捕捉强势股回调后的二次启动机会。在实际使用中,我发现配合以下技巧可以提高胜率:在信号出现当日,如果股价在午后2点后突然放量拉升,且突破当日均价线,这时介入的成功率会显著提高。另外,对于市值50-200亿的中盘股,这个策略的表现通常优于大盘股和小盘股。