平滑异同移动平均线买小卖小核心逻辑
平滑异同移动平均线由快线、慢线、零轴与红绿柱构成。买小卖小指向红绿柱长短变化:红柱缩短时卖出,绿柱缩短时买入。该做法不等待快慢线交叉,而是捕捉柱体动量衰减的第一时间。柱体代表快慢线差值,差值扩张与收缩领先交叉。红柱从最长开始缩短,说明多头推力减弱,价格容易回落。绿柱从最长开始缩短,说明空头推力减弱,价格容易反弹。买小卖小本质是二阶动量拐点交易。
期货与股票市场都可用,但期货带杠杆,股票T+1,节奏差异明显。期货适合日内与短波段,绿柱缩短买入后持仓数根K线,红柱缩短卖出或反手。股票适合日线级别,绿柱缩短分批建仓,红柱缩短分批减仓。柱体缩短需要连续两根同色柱对比,单根变化容易骗线。

红绿柱缩短的量化判定与代码演示
传统目测容易滞后,需要将“买小卖小”写成可计算条件。红柱缩短定义为当前红柱小于前一根红柱且前一根红柱大于再前一根红柱,形成峰值。绿柱缩短定义为当前绿柱小于前一根绿柱的绝对值且前一根绿柱绝对值大于再前一根,即负值向上收敛。
用Python计算MACD并标记买小与卖小信号:
import pandas as pd
import numpy as np
def macd(close, fast=12, slow=26, signal=9):
ema_fast = close.ewm(span=fast, adjust=False).mean()
ema_slow = close.ewm(span=slow, adjust=False).mean()
dif = ema_fast - ema_slow
dea = dif.ewm(span=signal, adjust=False).mean()
hist = 2 * (dif - dea)
return dif, dea, hist
df = pd.DataFrame({'close': [...]})
dif, dea, hist = macd(df['close'])
df['hist'] = hist
df['hist_prev1'] = hist.shift(1)
df['hist_prev2'] = hist.shift(2)
buy_small = (df['hist'] < 0) & (df['hist_prev1'] < 0) & (df['hist'] > df['hist_prev1']) & (df['hist_prev1'] < df['hist_prev2'])
sell_small = (df['hist'] > 0) & (df['hist_prev1'] > 0) & (df['hist'] < df['hist_prev1']) & (df['hist_prev1'] > df['hist_prev2'])
df['buy_small'] = buy_small
df['sell_small'] = sell_small
print(df[df['buy_small'] | df['sell_small']])
回测时注意期货用主力连续合约,股票用前复权价格。买小信号在绿柱缩短后下一根开盘入场,卖小信号在红柱缩短后下一根开盘离场。加入ATR止损,防止柱体反复伸缩造成连续亏损。
零轴过滤与背离增强
买小卖小不能独立使用。绿柱缩短买入需要价格在零轴上方或零轴附近,代表多头趋势中的回调结束。若价格深跌且零轴下方绿柱缩短,只能视为反弹,仓位减半。红柱缩短卖出需要价格在零轴上方且快线走平,若价格创新高而红柱峰值降低,形成顶背离,卖小信号更可靠。
顶背离与底背离是重要增强条件。价格创出新高,对应红柱峰值低于前一个红柱峰值,红柱缩短时卖出。价格创出新低,对应绿柱峰值绝对值低于前一个绿柱峰值绝对值,绿柱缩短时买入。背离说明趋势动能衰竭,买小卖小提前于快慢线交叉。
期货市场夜盘与日盘连续,零轴过滤可避免在跳空缺口后立即反向操作。股票市场T+1,绿柱缩短买入后当日不能卖出,需要接受次日波动,因此绿柱缩短必须配合日线级别趋势向上。
仓位管理与止损规则
买小卖小属于逆短期动量交易,胜率中等,盈亏比依靠趋势延续。期货杠杆下每次入场风险不超过总资金2%,股票不超过5%。绿柱缩短买入后,若价格跌破前一根K线最低点,止损离场。红柱缩短卖出后,若价格突破前一根K线最高点,止损离场。
加减仓规则:绿柱缩短首次买入半仓,快线金叉或价格突破前高加至满仓。红柱缩短首次卖出半仓,快线死叉或价格跌破前低清仓。期货可反手,但反手需要红柱缩短且绿柱开始伸长,即柱体由红转绿。股票不做反手,只做多。
震荡市是买小卖小最大敌人。布林带收口或ATR低于20日均值时,红绿柱频繁缩短,信号连续亏损。此时暂停交易,等待布林带开口或ATR放大。
期货与股票实战差异
期货主力合约换月会影响MACD连续性,需要做价格拼接。买小卖小在期货1分钟与5分钟周期信号密集,手续费与滑点吞噬利润,建议用在15分钟以上周期。股票日线买小卖小信号每月1到3次,适合上班族。
股票除权除息会造成价格跳空,必须用前复权数据重新计算MACD。期货夜盘开盘价与日盘收盘价不连续,绿柱缩短买入需要等待日盘确认。国债期货、股指期货、商品期货波动特性不同,股指期货与股票指数联动强,买小卖小可跨市场验证。
买小卖小与均线系统结合更稳。价格在20日均线上方,绿柱缩短做多。价格在20日均线下方,红柱缩短做空或观望。均线方向向上,买小信号优先。均线方向向下,卖小信号优先。
常见问题与参数调整
MACD默认参数12、26、9适合日线。短线期货可改为6、13、5,红绿柱变化更快,买小卖小信号提前,但假信号增多。长线股票可改为19、39、9,柱体平滑,信号滞后但可靠。参数改变后必须重新回测,不能直接套用。
买小卖小需要区分绿柱缩短与绿柱翻红。绿柱缩短只是负值变小,绿柱翻红是快线金叉慢线。买小卖小更早,翻红更稳。激进者绿柱缩短买入,稳健者翻红买入。红柱缩短卖出同样早于死叉。
成交量过滤:绿柱缩短买入需要成交量放大或至少不低于5日均量,红柱缩短卖出需要成交量放大或出现长上影线。缩量红柱缩短可能只是横盘,不是反转。
程序化交易中,买小卖小信号需要延迟一根K线确认。当前K线收盘后计算红绿柱缩短,下一根K线开盘执行。避免使用未来函数。回测报告需要包含最大回撤、夏普比率、胜率与盈亏比。买小卖小在趋势品种如原油、螺纹钢、纳斯达克指数上表现较好,在震荡品种如玉米、外汇直盘上表现较差。
多周期共振提升买小卖小胜率。日线绿柱缩短,60分钟绿柱也缩短,同时买入。日线红柱缩短,60分钟红柱也缩短,同时卖出。周期冲突时以日线方向为准,60分钟仅作入场时机。
风险管理是买小卖小长期盈利前提。单笔亏损不超过总资金1%,连续三笔亏损后降低仓位一半。期货保证金交易需要预留足够可用资金,防止绿柱缩短后价格继续下跌导致强平。股票融资融券同样需要控制杠杆。
买小卖小不是预测工具,而是反应工具。红绿柱缩短代表当前动量变化,不保证价格一定反转。交易者需要接受信号失败,用止损保护本金。将买小卖小与趋势跟踪、形态突破、基本面过滤组合,才能形成正期望系统。