簡體   English   中英

盡管已經重構了安全性 function,為什么這個 Pinescript 警報會重新繪制?

[英]Why does this Pinescript alert repaint, despite having refactored the security function?

我只是無法解決您發布的任何功能的問題。 我正在嘗試消除對應用於圖表的指標的重新繪制,該圖表的時間框架為 15m,需要將其設置為 1h:

//@version=4
    res5 = input("60", type=input.resolution)

// Funzione di security incapsulata
f_secureSecurity(_symbol, _res, _src) => security(_symbol, _res, _src, barmerge.gaps_off, barmerge.lookahead_on)[1]

// Funzioni di security
o = f_secureSecurity(syminfo.tickerid, res5, open)
c = f_secureSecurity(syminfo.tickerid, res5, close)
hz = f_secureSecurity(syminfo.tickerid, res5, high)
l = f_secureSecurity(syminfo.tickerid, res5, low)

////////////////////////////////////////////////////////////////////////////////
// INPUT SUPERTREND
st_mult   = input(0.1,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(50, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev =l - (st_mult * atr(st_period))
dn_lev = hz + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := c[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := c[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := c > down_trend[1] ? 1: c < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

////////////////////////////////////////////////////////////////////////////////
// CONDIZIONI DI INGRESSO A MERCATO
OpenLong = crossover(c, st_line)
OpenShort = crossunder(c, st_line)
CloseLong = OpenShort
CloseShort = OpenLong

////////////////////////////////////////////////////////////////////////////////
// SEGNALI DI DEBUG
OpenLongFlag = if OpenLong == true
    1
else
    0

OpenShortFlag = if OpenShort == true
    1
else
    0

CloseLongFlag = if CloseLong == true
    1
else
    0

CloseShortFlag = if CloseShort == true
    1
else
    0

plot(OpenLongFlag, color = color.black)
plot(OpenShortFlag, color = color.yellow)
plot(CloseLongFlag, color = color.blue)
plot(CloseShortFlag, color = color.red)

////////////////////////////////////////////////////////////////////////////////
// ALLERT
alertcondition(OpenLong,title="Open Long")
alertcondition(CloseLong,title="Close Long")
alertcondition(OpenShort,title="Open Short")
alertcondition(CloseShort,title="Close Short")code here

警報的生成時間與我在 Tradingview 圖表中輸入的調試信號不同,然后它們被重新繪制。

您之前發布的封裝函數(f_secureSecurity)是否可能在如此短的時間范圍內不起作用?

嘗試這個:

...
f_secureSecurity(_symbol, _res, _src) => security(_symbol, _res, _src[1], barmerge.gaps_off, barmerge.lookahead_on)
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM