摘要: BS主图指标通过K线颜色和文字提示买卖点,源码包含均线交叉逻辑。红色B为买入信号,绿色S为卖出信号。指标在震荡市易频繁触发,需结合成交量与趋势过滤。

股票BS主图指标买卖点怎么看 附源码

做股票和期货的人,电脑屏幕上总少不了一堆花花绿绿的线条。其中有一类指标,直接在K线图上标出“B”和“S”,告诉你哪里买、哪里卖。这就是BS主图指标。很多人拿到源码后却看不懂背后的门道,信号一多反而手忙脚乱。今天就把这个指标拆开揉碎,从逻辑到代码,再到实战中怎么用,一次讲透。

BS主图指标到底画的是什么

BS主图指标不是单一公式,而是一类叠加在K线主图上的策略信号集合。最基础的版本基于两条均线:短期均线和长期均线。短期均线上穿长期均线,在K线下方画一个红色“B”,代表买入信号。短期均线下穿长期均线,在K线上方画一个绿色“S”,代表卖出信号。

为什么用均线交叉?因为均线代表一段时间内市场平均持仓成本。短期均线上穿长期均线,说明最近买家的平均成本超过了更早买家的平均成本,市场情绪偏多。反过来,短期均线跌破长期均线,说明近期抛压占据了上风。

BS主图指标的核心价值在于把抽象的数字比较,变成K线图上肉眼可见的标记。你不用盯着两个均线数值算来算去。红色B和绿色S直接告诉你当下多空力量的对比结果。

股票BS主图指标买卖点怎么看 附源码

源码拆解 从公式到图上的B和S

下面是一套通用的BS主图指标源码,适用于通达信、同花顺等主流软件。这段代码的逻辑是双均线交叉加上价格过滤。


MA5:=MA(CLOSE,5);

MA20:=MA(CLOSE,20);

买入条件:=CROSS(MA5,MA20) AND CLOSE>MA20;

卖出条件:=CROSS(MA20,MA5) AND CLOSE<MA20;

DRAWTEXT(买入条件,LOW*0.98,'B'),COLORRED;

DRAWTEXT(卖出条件,HIGH*1.02,'S'),COLORGREEN;

逐行看。MA5是5日均线,MA20是20日均线。CROSS(MA5,MA20)表示5日均线从下方穿过20日均线。后面的AND CLOSE>MA20是一个过滤条件。只有收盘价站在20日均线之上,这个买入信号才成立。这个过滤条件能排除掉那些均线交叉但价格已经跌破长期均线的假信号。

卖出条件反过来,CROSS(MA20,MA5)是5日均线跌破20日均线,再加上收盘价低于20日均线。两个条件同时满足才画绿色S。

DRAWTEXT函数负责在图表上写字。买入条件成立时,在最低价下方2%的位置写一个红色的B。卖出条件成立时,在最高价上方2%的位置写一个绿色的S。

这段源码的最大优点是简单。任何看盘软件都能直接粘贴使用。缺点也明显,均线交叉在震荡行情里会反复出现,B和S交替闪烁,让人无所适从。

用期货和股票的实战案例看信号真假

先看股票。一只消费股在底部横盘了两个月,5日均线和20日均线反复纠缠。某天一根放量阳线拉升,5日均线明显上穿20日均线,同时收盘价站上20日均线。BS指标在K线下方标出红色B。随后股价沿着5日均线稳步上行,这个B就是有效的。

再看期货。螺纹钢主力合约在夜盘跳空高开,5日均线瞬间上穿20日均线,BS指标立刻给出B信号。但白天开盘后价格快速回落,收盘价跌回20日均线之下。这个B就是假信号。因为源码里的过滤条件在盘中可能被短暂满足,但收盘时失效。期货市场有杠杆,假信号造成的亏损会被放大。

区别在哪?股票T+1交易,盘中信号触发后你当天不能卖出,反而被迫持有到收盘,过滤条件是否成立在收盘时才确定。期货T+0交易,盘中任何时刻都能进出,均线交叉的瞬时性更容易被利用,也更容易被欺骗。BS主图指标在期货上要配合更严格的确认条件,比如等待收盘价确认,或者增加成交量过滤。

源码改进 让买卖点更靠谱

原始双均线版本的BS指标,在单边趋势里表现很好,在震荡市里就是灾难。改进的方向有三个。

第一,加入成交量过滤。买入信号需要成交量大于过去5日均量的1.2倍。没有成交量配合的均线金叉,往往是诱多。


量比:=VOL/MA(VOL,5);

买入条件:=CROSS(MA5,MA20) AND CLOSE>MA20 AND 量比>1.2;

第二,加入趋势过滤。用60日均线判断大方向。只有当60日均线向上时,才接受买入信号。60日均线向下时,任何金叉都视为反弹,不参与。


趋势向上:=MA(CLOSE,60)>REF(MA(CLOSE,60),1);

买入条件:=CROSS(MA5,MA20) AND CLOSE>MA20 AND 趋势向上;

第三,加入止损逻辑。BS指标只负责给出信号,不负责保护你的本金。买入后,如果价格跌破前一根K线的最低点,或者跌破20日均线,无条件离场。这个规则要用在实盘里,比任何指标都重要。

量化交易中的BS指标该怎么用

很多人想把BS主图指标写成自动交易程序。在量化平台里,这个指标可以转化为一个简单的策略。以Python为例,用pandas计算均线,用循环遍历K线,判断交叉。


import pandas as pd

df['ma5'] = df['close'].rolling(5).mean()

df['ma20'] = df['close'].rolling(20).mean()

df['signal'] = 0

df.loc[(df['ma5'] > df['ma20']) & (df['ma5'].shift(1) <= df['ma20'].shift(1)) & (df['close'] > df['ma20']), 'signal'] = 1

df.loc[(df['ma5'] < df['ma20']) & (df['ma5'].shift(1) >= df['ma20'].shift(1)) & (df['close'] < df['ma20']), 'signal'] = -1

这段代码生成的signal列,1代表买入,-1代表卖出,0代表无信号。回测时要注意,均线交叉信号在K线收盘后才能确认,所以实际交易要等到下一根K线开盘。这就是所谓的“未来函数”问题。原始BS主图指标画在K线上,视觉上好像当天就能看到B和S,但实盘操作必须等到收盘。量化回测如果用了当天收盘价成交,结果会严重失真。

对于期货量化,还要考虑主力合约换月、滑点、手续费。BS指标本身不包含这些,直接拿来做自动交易,大概率会被成本吃掉利润。

BS主图指标是一个趋势跟踪工具,不是预测工具。它告诉你市场当下发生了什么,不告诉你未来会发生什么。红色B出现,说明短期均线刚刚上穿长期均线,仅此而已。后面是涨是跌,还要看成交量、大趋势、板块效应。

用它做股票,尽量选择日线级别,配合基本面。用它做期货,尽量选择小时级别以上,避开震荡时段。源码可以改,参数可以调,唯一不能变的是纪律。信号来了就执行,信号错了就止损。指标是死的,人是活的。把BS主图指标当成一副眼镜,帮你把市场的多空力量看得更清楚,而不是当成水晶球,指望它预知未来。