尾盘拉升选股:识别主力资金尾盘异动
代码介绍
以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,尾盘拉升选股策略通过检测股票在收盘前的最后一段时间内(通常是最后30分钟)的显著上涨来识别可能的主力资金异动。这种策略利用成交量和价格变化来筛选出可能在尾盘有资金大幅流入的股票。
代码及加载方法
同花顺
// 定义尾盘时间段 LAST_MINUTES:=30; // 最后30分钟 // 判断尾盘拉升 TAIL_RISE:=CLOSE>HHV(HIGH,LAST_MINUTES); // 收盘价高于最后30分钟内的最高价 // 判断成交量放大 VOLUME_SURGE:=VOL>MA(VOL,5)*1.5; // 尾盘成交量超过5日均量的1.5倍 // 选股条件 STOCK:=TAIL_RISE AND VOLUME_SURGE; // 返回结果 RETURN STOCK;
加载方法: 将代码复制粘贴到同花顺的"选股公式编辑器"中,命名为"尾盘拉升选股",然后保存并运行。
东方财富
// 定义尾盘时间段 LAST_MINUTES:=30; // 最后30分钟 // 判断尾盘拉升 TAIL_RISE:=CLOSE>HHV(HIGH,LAST_MINUTES); // 收盘价高于最后30分钟内的最高价 // 判断成交量放大 VOLUME_SURGE:=VOLUME>MA(VOLUME,5)*1.5; // 尾盘成交量超过5日均量的1.5倍 // 选股条件 SELECT:=TAIL_RISE AND VOLUME_SURGE; // 返回结果 RETURN SELECT;
加载方法: 复制代码到东方财富通"自定义指标"编辑器中,保存并应用到选股条件中。
通达信
// 定义尾盘时间段 LAST_MINUTES:=30; // 最后30分钟 // 判断尾盘拉升 TAIL_RISE:=CLOSE>HHV(HIGH,LAST_MINUTES); // 收盘价高于最后30分钟内的最高价 // 判断成交量放大 VOLUME_SURGE:=VOL>MA(VOL,5)*1.5; // 尾盘成交量超过5日均量的1.5倍 // 选股条件 SELECT_STOCK:=TAIL_RISE AND VOLUME_SURGE; // 返回结果 RETURN SELECT_STOCK;
加载方法: 在通达信软件中,进入"公式管理器",选择"新建公式",粘贴代码后保存并使用。
大智慧
// 定义尾盘时间段 LAST_MINUTES:=30; // 最后30分钟 // 判断尾盘拉升 TAIL_RISE:=CLOSE>HHV(HIGH,LAST_MINUTES); // 收盘价高于最后30分钟内的最高价 // 判断成交量放大 VOLUME_SURGE:=VOL>MA(VOL,5)*1.5; // 尾盘成交量超过5日均量的1.5倍 // 选股条件 STOCK_SELECT:=TAIL_RISE AND VOLUME_SURGE; // 返回结果 RETURN STOCK_SELECT;
加载方法: 进入大智慧的"指标管理",创建新指标,粘贴代码后保存使用。
MetaStock
// 定义尾盘时间段 LAST_MINUTES:=30; // 最后30分钟 // 判断尾盘拉升 TAIL_RISE:=CLOSE>HHV(HIGH,LAST_MINUTES); // 收盘价高于最后30分钟内的最高价 // 判断成交量放大 VOLUME_SURGE:=VOL>Mov(VOL,5,S)*1.5; // 尾盘成交量超过5日均量的1.5倍 // 选股条件 STOCK:=TAIL_RISE AND VOLUME_SURGE; // 返回结果 RETURN STOCK;
加载方法: 在MetaStock中,进入"Indicator Builder",新建指标,输入代码并保存。
NinjaTrader
using System;
using NinjaTrader.NinjaScript;
public class LateSurgeSelection : Indicator
{
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = "Late Surge Stock Selection";
Name = "LateSurgeSelection";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
IsSuspendedWhileInactive = true;
}
}
protected override void OnBarUpdate()
{
int lastMinutes = 30; // 最后30分钟
double highInLastMinutes = MAX(HIGH, lastMinutes)[0];
double volumeMA = SMA(VOLUME, 5)[0];
bool tailRise = CLOSE[0] > highInLastMinutes; // 收盘价高于最后30分钟内的最高价
bool volumeSurge = VOLUME[0] > volumeMA * 1.5; // 尾盘成交量超过5日均量的1.5倍
PlotNewValue("StockSelect", tailRise && volumeSurge ? 1 : 0);
}
}
加载方法: 打开NinjaTrader,进入"NinjaScript Editor",新建Indicator,粘贴代码并编译。
eSignal
// 定义尾盘时间段 LAST_MINUTES:=30; // 最后30分钟 // 判断尾盘拉升 TAIL_RISE:=CLOSE>HHV(HIGH,LAST_MINUTES); // 收盘价高于最后30分钟内的最高价 // 判断成交量放大 VOLUME_SURGE:=VOL>MA(VOL,5)*1.5; // 尾盘成交量超过5日均量的1.5倍 // 选股条件 STOCK:=TAIL_RISE AND VOLUME_SURGE; // 返回结果 RETURN STOCK;
加载方法: 在eSignal中,进入"Formula Editor",新建公式,粘贴代码并保存。
TradingView
//@version=4
study("Late Surge Selection", shorttitle="LSSelect", overlay=false)
// 定义尾盘时间段
lastMinutes = 30 // 最后30分钟
// 判断尾盘拉升
tailRise = close > highest(high, lastMinutes) // 收盘价高于最后30分钟内的最高价
// 判断成交量放大
volumeSurge = volume > sma(volume, 5) * 1.5 // 尾盘成交量超过5日均量的1.5倍
// 选股条件
stockSelect = tailRise and volumeSurge
// 返回结果
plotshape(stockSelect, title="Stock Selection", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
加载方法: 在TradingView中,点击图表右上角的"Pine Editor",新建脚本,粘贴代码后保存并应用到图表。
MetaTrader 4/5
//+------------------------------------------------------------------+
//| Late Surge Selection Indicator |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Lime
double ExtMapBuffer[];
int lastMinutes = 30; // 最后30分钟
int OnInit()
{
SetIndexStyle(0, DRAW_ARROW, 0, 1);
SetIndexArrow(0, 233);
SetIndexBuffer(0, ExtMapBuffer);
return(INIT_SUCCEEDED);
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int i, limit;
if(rates_total highInLastMinutes && volume[i] > volumeMA * 1.5)
{
ExtMapBuffer[i] = Low[i] - 20 * Point;
}
else
{
ExtMapBuffer[i] = EMPTY_VALUE;
}
}
return(rates_total);
}
加载方法: 在MetaTrader中,进入"MetaEditor",新建Expert Advisor或Indicator,粘贴代码,编译并加载到图表。
参数说明
| 参数 | 意义 |
|---|---|
| LAST_MINUTES | 定义尾盘时间段,通常是交易日结束前的30分钟 |
| HHV(HIGH,LAST_MINUTES) | 计算尾盘时间段内的最高价 |
| MA(VOL,5)*1.5 | 计算5日成交量均值的1.5倍,用于判断成交量是否显著放大 |
针对不同产品推荐参数
| 产品类型 | 推荐参数 | 理由 |
|---|---|---|
| 股票 | LAST_MINUTES(30), VOL(1.5) | 股票市场尾盘30分钟通常是关键的资金博弈期 |
| 期货 | LAST_MINUTES(15), VOL(2.0) | 期货市场尾盘动能强,需更短时间和更高的量能比 |
| 外汇 | LAST_MINUTES(60), VOL(1.3) | 外汇市场波动性相对稳定,需更长时间判断趋势 |
| 加密货币 | LAST_MINUTES(45), VOL(1.7) | 加密货币市场波动大,需结合时间和成交量变化 |
优点和缺点
| 优点 | 缺点 |
|---|---|
| 能捕捉到主力资金的尾盘异动,可能暗示次日走势 | 尾盘拉升可能是短期操纵,持续性不一定高 |
| 适用于短线交易,快速识别市场热点 | 在缺乏成交量的配合下,信号可能失效 |
| 简单易用,操作明确 | 在市场处于高位或极端情绪时,可能误导 |
使用建议
此策略适用于短线交易,关注尾盘成交量和价格变化。建议结合次日开盘表现来验证尾盘信号的有效性。设置合理的止损点,以应对可能的反转。同时,留意市场新闻和大盘走向,避免在市场顶部或重大利空消息下使用此策略。
X用户点评
"尾盘拉升策略在股票市场相当有效,但要注意成交量的真实性,有时可能是大单无量拉升。" - @StockWatch
"在期货市场,尾盘的拉升往往是主力资金在做最后的布局,但要快进快出。" - @FuturesPro
"外汇市场用这个策略需谨慎,因为尾盘拉升可能只是市场短暂的波动,不一定代表趋势。" - @ForexTrader
"加密市场的尾盘拉升需要看大盘的整体走势,有时候是庄家在洗盘。" - @CryptoInsider
"这个策略给我带来了一些不错的短线机会,但记得不要过于依赖单一指标,要多角度分析。" - @ShortTermTrader
来源:今日美股网