
同一支股票当天卖出后还能买入吗?
很多刚入市的朋友会遇到这种情况:手里拿着一只股票,盘中觉得走势不对先卖了,卖完又觉得它还能涨,想当天再买回来。心里没底,怕违规,又怕买不回来。
这事可以干。A股允许你当天卖出后再买入同一只股票。但这里有一条铁律必须记住:当天买回来的股票,当天不能再卖。这是T+1制度决定的。

T+1说白了就是:你今天买入的股票,要等到下一个交易日才能卖出。你今天卖出的股票,资金立刻到账,可以继续买其他股票,也可以买回原来那只。但买回来之后,这部分股票又被锁定了,得等明天才能卖。
有人会绕:我今天先卖了一千股,再买回一千股,账户里股票数量没变,是不是等于没动?不是。你卖出的那一千股已经完成了交割,资金回到账户。再买入的一千股是全新的持仓,成本价重新计算,且当天不能卖出。
当天再买回的价格怎么算
这个问题要分两个层面看:成交价格怎么来,持仓成本怎么变。
成交价格:市场说了算
你当天再买回时的成交价格,跟之前卖出价没有任何关系。它由你下单那一刻的市场买卖盘撮合决定。你挂什么价,市场当时有什么价,就按什么价成交。
举一个具体场景。你上午10点以10元卖出某只股票1000股,下午2点觉得它要反弹,想买回来。这时候盘口显示卖一价10.2元,你挂10.2元买入,成交价就是10.2元。你之前10元卖出,现在10.2元买回,每股多花了0.2元,这部分就是你的损失。
反过来,如果你10元卖出,下午9.8元买回,每股赚了0.2元差价。这就是做T,也叫日内回转交易。
持仓成本:重新计算
买回之后,你的持仓成本价会重新核算。券商系统通常采用移动加权平均法。
假设你原来持有1000股,成本价9元。今天10元卖出,此时持仓清零。下午10.2元买回1000股,那么新的持仓成本就是10.2元,加上交易佣金和过户费。之前9元的成本已经随着卖出结算掉了,不再影响新持仓。
如果你不是清仓,而是卖了一半留了一半,情况就复杂一些。原来2000股成本9元,卖出1000股后,剩下1000股成本还是9元。再买回1000股花10.2元,总持仓变成2000股,总成本是原来1000股×9元加上新买1000股×10.2元,再除以2000股,得到新的平均成本。
这个计算过程券商交易软件会自动完成,你看到的成本价就是核算后的结果。
做T的实战逻辑
做T分两种:正T和反T。
正T是先买后卖。你手里已经有底仓,早上低开觉得能反弹,先买入一部分,等盘中拉起来再把原来底仓卖掉同等数量。结果是你持仓数量不变,但赚了一波差价。
反T是先卖后买。你判断当天要回调,先把底仓卖出一部分,等跌下去再买回来。结果也是持仓数量不变,赚了下跌的差价。
两种做T都有一个前提:你手里得有底仓。没有底仓,当天买入的股票当天不能卖,就做不成T。
这里有个细节。正T是先买后卖,买入的股票当天不能卖,但你卖的是之前就持有的底仓,所以不受T+1限制。反T是先卖后买,卖出的股票是之前持有的,资金立刻可用,买回来之后明天才能卖。
量化视角看日内回转
做T本质上是捕捉日内价格波动。手动做T依赖盘感和盯盘时间,量化程序做这件事有天然优势。
一个简单的日内均值回归策略思路是这样的:
# 伪代码示例:日内均值回归做T逻辑
# 假设已持有底仓1000股
base_position = 1000
intraday_high = None
intraday_low = None
for tick in market_data:
price = tick['last_price']
# 更新日内高低点
if intraday_high is None or price > intraday_high:
intraday_high = price
if intraday_low is None or price < intraday_low:
intraday_low = price
# 计算当前价格在日内区间的相对位置
if intraday_high != intraday_low:
position_in_range = (price - intraday_low) / (intraday_high - intraday_low)
else:
position_in_range = 0.5
# 价格接近日内低点,买入
if position_in_range < 0.2 and not bought_today:
buy(100) # 买入100股
bought_today = True
# 价格接近日内高点,卖出底仓
if position_in_range > 0.8 and bought_today:
sell(100) # 卖出100股底仓
bought_today = False
这段逻辑做的是:价格跌到日内区间下沿时买入,涨到上沿时卖出同等数量的底仓。因为卖的是底仓,不受T+1限制。每次赚取区间波动的差价。
实际运行中还要考虑手续费、滑点、成交量限制。做T赚的是小差价,手续费一扣可能所剩无几。大部分券商佣金在万分之二点五左右,加上卖出时千分之一的印花税,一次完整的买卖来回成本大约千分之一点五。如果做T的差价空间不到这个数,就是白忙。
几个容易踩的坑
坑一:以为当天买回当天能卖。 这是最常见的误解。买回的股票锁定到明天,如果下午买回后股价跳水,你只能看着,卖不掉。
坑二:频繁做T把成本越做越高。 每次做T都贡献手续费,如果十次做T七次亏三次赚,长期下来成本反而被推高。
坑三:把做T当成解套工具。 股票被套了想通过做T摊低成本,方向对了可以,方向错了会越陷越深。做T的前提是你对日内波动有判断力,不是凭感觉。
坑四:忽略资金可用与可取的区别。 当天卖出股票的资金可以继续买股票,但要想转出到银行卡,得等下一个交易日。这是资金T+1。
期货市场的不同之处
股票是T+1,期货是T+0。期货当天开仓当天就能平仓,来回做多少次都行。这是期货和股票在交易制度上最大的区别。
期货做日内回转没有底仓要求,开仓后随时可以平。但期货是保证金交易,自带杠杆,日内波动放大后盈亏速度远快于股票。股票做T亏了无非是少赚,期货做反了方向可能触发强平。
期货的手续费结构也不同。有的是固定值,有的是按成交金额比例收,平今仓 sometimes 手续费更高。做期货日内之前,先把交易所的费率表看清楚。
回到最初的问题。同一支股票当天卖出后可以买入,买入价格由市场撮合决定,与卖出价无关。买回的股票明天才能卖。想把这件事做成盈利手段,需要纪律、成本和波动空间的核算,不是凭感觉来回倒腾。
