0

当点差符号出现时NSE:BANKNIFTY1!/NSE:NIFTY1! ,系统应该使用标准open, high,lowclose

在其他情况下,它应该根据代码使用提到的关闭。

我正在使用syminfo.prefix+":"+syminfo.ticker而不是,syminfo.tickerid因为我想要烛台openhighlow; close当我更改为 HA、Renko、Kagi、Line、Point & Figure 时。

但是尽管代码是准确的,我还是得到了一个错误。

我该如何解决?我已经尝试了一切

//@version=4
study("spread", overlay=true)


var float close_lock    = na
var float open_lock     = na
var float high_lock     = na
var float low_lock      = na

var bool normal_ticker_check    = na
normal_ticker_check := syminfo.type != 'spread'

[o, h, l, c] = security(syminfo.prefix+":"+syminfo.ticker , timeframe.period , [open, high, low, close] ,barmerge.gaps_off, barmerge.lookahead_on) 

if (normal_ticker_check)
    close_lock   := c
    open_lock    := o
    high_lock    := h
    low_lock     := l
else
    close_lock   := close 
    open_lock    := open 
    high_lock    := high 
    low_lock     := low 
    
    
plot(close_lock)

错误:无法获得点差符号的“代码”

4

1 回答 1

0

来自手册的 syminfo.type 定义:

当前符号的类型。可能的值是股票、期货、指数、外汇、加密货币、基金、博士。

因此,该检查似乎无法检测到字符串“spread”,但是用以下内容替换您的安全调用应该可以让您克服错误:

[o, h, l, c] = security(syminfo.tickerid, timeframe.period , [open, high, low, close] ,barmerge.gaps_off, barmerge.lookahead_on)

于 2021-09-21T10:17:33.480 回答