【发布时间】:2022-01-24 12:30:57
【问题描述】:
当他们宣布“我们的新警报允许动态消息”时,我在 tradingview.com 上发现了这个脚本。该脚本应该在 RSI 超买或超卖时触发警报。问题是它没有按预期工作。警报由您添加的交易品种的 RSI 触发。它似乎在脚本底部的符号列表中随机选择符号。脚本的 RSI 数据也不正确,因为它发送的是您最初添加研究的品种的 RSI,而不是品种列表的 RSI。
这是显示错误示例的警告文本:
“NASDAQ:AMD, 1: RSI (50.5282994084) cross up 70 level” alert() with multiple symbols: any (alert) function call Active NASDAQ:AMD, 1m” 这没有意义,因为 AMD 的 RSI在触发警报时未超过 70,并且显示 RSI 为 50,但在警报时它甚至未超过 50,低于 30。
我尝试将“_r = rsi (close, 7)”移动到“[_co,_cu]...”行下,但没有成功。我还尝试将数据转换为字符串以查看是否有任何作用,但它不起作用。我尝试转换为 Pine Script v5。还尝试了不同的符号和加密货币。有谁知道将指标/研究同时应用于多个符号的功能是否真的有效?或者,也许我遗漏了一些东西,但由于我做错了什么而无法正常工作。
截图: enter image description here
来自 TradingView 的警报日志: |警报 ID|代码|名称|描述|时间| |--- |--- |--- |--- |--- | |358732201|"NASDAQ:TSLA, 1m"|alert() with multiple symbols: 任何 alert() 函数调用,"|=""session"":""extended"",""symbol"":""NASDAQ: TSLA""}, 1: RSI (72.6465706327) 突破 70 水平"|2021-12-23T14:49:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"NASDAQ:CFVI, 1: RSI (72.6465706327) 下穿 30 水平",|2021-12- 23T14:49:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"NASDAQ:TSLA, 1: RSI (72.6465706327) 突破 70 水平",|2021-12- 23T14:49:00.000Z| |358732201|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"BINANCE:SOLUSDT, 1: RSI (72.6465706327) 下穿 30 水平",|2021-12-23T14 :49:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"COINBASE:BTCUSD, 1: RSI (69.6339491527) 下穿 30 水平",|2021-12- 23T14:48:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() 有多个符号:任何 alert() 函数调用,|"NYSE:PLTR, 1: RSI (69.6339491527) 突破 70 水平",|2021-12- 23T14:48:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"COINBASE:BTCUSD, 1: RSI (46.7458265403) 下穿 30 水平",|2021-12- 23T14:47:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"FTX:RAYUSD, 1: RSI (46.7458265403) 下穿 30 水平",|2021-12- 23T14:47:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"BINANCE:ICPUSDT, 1: RSI (44.0606617081) 突破 70 水平",|2021-12- 23T14:46:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"COINBASE:ETHUSD, 1: RSI (44.0606617081) 下穿 30 水平",|2021-12- 23T14:46:00.000Z| |358732201,|"NASDAQ:TSLA, 1m",|alert() with multiple symbols: Any alert() 函数调用,|"FTX:ATLASUSD, 1: RSI (44.0606617081) 下穿 30 水平",|2021-12- 23T14:46:00.000Z|
我引用的脚本是: https://www.tradingview.com/blog/en/our-new-alerts-allow-for-dynamic-messages-22588/
//@version=4
study("alert() with multiple symbols")
f_triggerRsi(_ticker)=>
_r = rsi(close, 7)
_x = crossover(_r,70)
_y = crossunder(_r,30)
[_co, _cu] = security(_ticker, timeframe.period, [_x, _y])
_msg = _ticker + ", " + timeframe.period + ": "
if _co
_msg := _msg + "RSI (" + tostring(_r) + ") crossing up 70 level"
alert(_msg, alert.freq_once_per_bar_close)
else if _cu
_msg := _msg + "RSI (" + tostring(_r) + ") crossing down 30 level"
alert(_msg, alert.freq_once_per_bar_close)
plot(rsi(close, 7), "RSI", color=#8E1599)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
f_triggerRsi(syminfo.tickerid)
f_triggerRsi("NASDAQ:MSFT")
f_triggerRsi("FX:EURUSD")
f_triggerRsi("NASDAQ:TSLA")
f_triggerRsi("NASDAQ:PYPL")
【问题讨论】:
-
您是否在设置警报的同时检查 RSI 值?您能否提供一些屏幕截图(警报消息、警报日志等)并向我们提供更多信息、问题发生的时间/日期?另外,您确定您的 RSI 长度为 7(默认值为 14)吗?
-
vitruvius 感谢您的回复!是的,我引用的是长度为 7 的 RSI。我在原始帖子中添加了屏幕截图和警报日志。我正在使用 1 分钟的时间范围来测试警报。我无法获得任何符号的准确警报。
标签: pine-script pine-script-v4 pinescript-v5