【问题标题】:Script provided by TradingView does not work (alert with multiple symbols)TradingView 提供的脚本不起作用(警告多个交易品种)
【发布时间】: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


【解决方案1】:

如果其他人遇到同样的问题并且(还)对 Pine Script 不够了解以自己修复它(例如我自己),我将发布解决方案。我收到了 TradingView 支持的回复。他们非常乐于助人,友善并提供了更新的脚本。他们说有错误的博文很快就会更新。

这里是多个符号的更新 Pine 脚本:

//@version=4

study("alert() with multiple symbols") 

f_triggerRsi(_ticker)=>
    _r = rsi(close, 14) 
    _x = crossover(_r,70)
    _y = crossunder(_r,30)
    _rt = barstate.isrealtime    

    [_rsi, _co, _cu, _rt_bar] = security(_ticker, timeframe.period, [_r, _x, _y, _rt])    
    _msg = _ticker + ", " + timeframe.period + ": "    

    if _co and _rt_bar  
        _msg := _msg + "RSI (" + tostring(_rsi) + ") crossing up 70 level"
        alert(_msg,  alert.freq_once_per_bar_close)    

    else if _cu and _rt_bar
        _msg := _msg + "RSI (" + tostring(_rsi) + ")  crossing down 30 level"
        alert(_msg,  alert.freq_once_per_bar_close) 

plot(rsi(close, 14), "RSI", color=#8E1599) 
band1 = hline(70, "Upper Band", color=#C0C0C0) 
band0 = hline(30, "Lower Band", color=#C0C0C0) 
fill(band1, band0, color=color.new(#9915FF,90), title="Background") 

f_triggerRsi(syminfo.tickerid) 
f_triggerRsi("NASDAQ:MSFT") 
f_triggerRsi("FX:EURUSD") 
f_triggerRsi("NASDAQ:TSLA") 
f_triggerRsi("NASDAQ:PYPL")

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多