维加斯通道过滤 · 华尔街没有名字
以 EMA 144 与 EMA 169 构成维加斯趋势通道,并用 EMA 12 和收盘价共同确认多空方向切换;同方向只提示首次转向,减少重复信号。
说明
使用说明
作者/来源:原文件署名:华尔街没有名字
适用市场:加密货币、外汇、指数、股票等具备连续 OHLC 数据且流动性较好的市场。
适用周期:仅在 1H、4H 和日线生效;其他周期不绘制均线与信号。
参数:EMA 144 长度默认 144;EMA 169 长度默认 169;快速 EMA 长度默认 12。EMA 144 与 EMA 169 的较高值为通道上轨,较低值为通道下轨。
功能:当 EMA 12 与收盘价同时位于 EMA 144/169 通道上方,指标首次标记多头转向;两者同时位于通道下方时,首次标记空头转向。右上角表格显示三条均线,脚本同时提供多头和空头 alertcondition,消息采用 Discord Webhook JSON 格式。
适用场景:适合用作 1H、4H 的趋势方向过滤,以及日线级别的大方向确认;可与结构突破、支撑阻力或回踩策略配合,避免在通道中间频繁追单。不适合作为单独的开仓、止损或仓位管理系统。
版本记录
发布信息
更新时间:2026-11-02
状态:已发布
2026-11-02:首次收录。保留原文件的 EMA 12/144/169 维加斯通道、首次趋势切换标记、右上角说明表格和多空预警。
社区互动
点赞与评论
欢迎分享你对这个指标的使用体验。评论仅用于研究交流,不构成投资建议。
TradingView / Pine Script
源码
源码仅在作者确认可公开后展示,复制后请自行核对版本和适用范围。
//@version=6
indicator("维加斯通道过滤--华尔街没有名字", overlay=true)
// === 输入参数 ===
ema144_length = input.int(144, title="EMA 144 长度")
ema169_length = input.int(169, title="EMA 169 长度")
ema12_length = input.int(12, title="EMA 12 长度")
// === 计算 EMA ===
ema144 = ta.ema(close, ema144_length)
ema169 = ta.ema(close, ema169_length)
ema12 = ta.ema(close, ema12_length)
// === 通道上、下轨 ===
upper_channel = math.max(ema144, ema169)
lower_channel = math.min(ema144, ema169)
// === 时间过滤:只在 1H、4H、日线生效 ===
is_valid_timeframe = timeframe.multiplier == 60 or timeframe.multiplier == 240 or timeframe.isdaily
// === 获取时间级别字符串 ===
get_timeframe_str() =>
if timeframe.isdaily
"日线"
else if timeframe.multiplier == 240
"4H"
else if timeframe.multiplier == 60
"1H"
else
str.tostring(timeframe.multiplier) + timeframe.period
// === 绘制均线 ===
plot(is_valid_timeframe ? ema144 : na, color=color.new(color.red, 50), title="EMA 144")
plot(is_valid_timeframe ? ema169 : na, color=color.new(color.green, 50), title="EMA 169")
plot(is_valid_timeframe ? ema12 : na, color=color.new(color.blue, 0), title="EMA 12", linewidth=2)
// === 信号条件 ===
// 多头条件:EMA12 与 收盘价 均在通道上方
longCondition = (ema12 > ema144 and ema12 > ema169) and (close > ema144 and close > ema169) and is_valid_timeframe
// 空头条件:EMA12 与 收盘价 均在通道下方
shortCondition = (ema12 < ema144 and ema12 < ema169) and (close < ema144 and close < ema169) and is_valid_timeframe
// === 趋势状态检测(用于防止重复信号) ===
// 用一个变量保存前一根K线的趋势状态:1=多头,-1=空头,0=中性
var int trendState = 0
// 检测趋势切换
longSignal = longCondition and trendState != 1
shortSignal = shortCondition and trendState != -1
// 更新趋势状态
if longCondition
trendState := 1
else if shortCondition
trendState := -1
else
trendState := trendState
// === 绘制信号箭头(仅首次出现) ===
plotshape(longSignal, title="多头信号", location=location.belowbar, color=color.new(#56f763, 0), style=shape.labelup, text="↑", size=size.tiny)
plotshape(shortSignal, title="空头信号", location=location.abovebar, color=color.new(#fa9696, 0), style=shape.labeldown, text="↓", size=size.tiny)
// === 右上角均线说明表格 ===
var table vegasTable = table.new(
position.top_right,
1,
4,
border_width=1,
frame_width=1,
bgcolor=color.new(color.black, 80))
if barstate.islast
// 表头
table.cell(
vegasTable,
0,
0,
"Vegas 通道",
text_color=color.white,
text_size=size.small,
bgcolor=color.new(color.gray, 70))
// EMA 12
table.cell(
vegasTable,
0,
1,
"● EMA " + str.tostring(ema12_length),
text_color=color.blue,
text_size=size.small,
bgcolor=color.new(color.black, 85))
// EMA 144
table.cell(
vegasTable,
0,
2,
"● EMA " + str.tostring(ema144_length),
text_color=color.new(color.red, 0),
text_size=size.small,
bgcolor=color.new(color.black, 85))
// EMA 169
table.cell(
vegasTable,
0,
3,
"● EMA " + str.tostring(ema169_length),
text_color=color.new(color.green, 0),
text_size=size.small,
bgcolor=color.new(color.black, 85))
// === 预警设置(Discord Webhook 格式) ===
// 多头信号预警
alertcondition(longSignal, title="多头信号触发", message="{\"content\": \"🟢【{{interval}}】\\n代币: {{ticker}}\\n当前价格: {{close}}\\n状态: {{ticker}} 正在转向多头,在1h-4h择机开多\", \"username\": \"TradingView Alert Bot\"}")
// 空头信号预警
alertcondition(shortSignal, title="空头信号触发", message="{\"content\": \"🔴【{{interval}}】\\n代币: {{ticker}}\\n当前价格: {{close}}\\n状态: {{ticker}} 正在转向空头,在1h-4h择机开空\", \"username\": \"TradingView Alert Bot\"}")
评论 (0)
还没有评论。