Я создаю панель инструментов и хочу отображать на ней тренд для разных периодов времени, таких как 1,5,15,60,240 мин.
В следующем коде мы просто возьмем sma(close,20) для простоты, ошибка все еще присутствует.
Итак, я сравниваю sma(close,20) с тем же выражением, отстающим на 5 баров, чтобы получить тренд. Мне нужно сделать это 5 раз с безопасностью, чтобы получить тренд 5 таймфреймов.
Но когда вы копируете мой код в TradingView и переключаетесь между таймфреймами (1 мин 1 ч 4 ч ...), происходит некоторое переключение тренда, и этого не ожидается. Потому что я хочу видеть тот же результат на любом таймфрейме. глядя на график.
Если между ними есть какое-то переключение, нет смысла строить этот тип дашборда, так как он ненадежен.
Так что я подумал об этом. И, возможно, мы сможем решить эту проблему, если перейдем к самому низкому таймфрейму (1 мин) и построим пользовательскую свечу 1, 5, 15, 60, 240 мин и проведем все расчеты с закрытием этой пользовательской свечи. Но это причудливая штука, и она все равно не решает основной проблемы, потому что основная цель - увидеть такой результат на всем графике, а не только на графике 1min.
Я что-то пропустил в pinescript? Как бы вы сделали то, чего я пытаюсь достичь? Спасибо за вашу помощь!
Вот код:
//@version=4
strategy("Not working Dashboard", overlay=true,initial_capital= 100, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.04)
//********************** TITLE
i_offsetLabel = 15
offset = i_offsetLabel * ( time - time[1])
splitter = "---------------------------------------------------------------------"
nl = "\n"
title = "Not working Dashboard"
string dynamicText = title + nl
var label id = na
label.delete(id) // Delete Last label
id := label.new(x=time+offset,y = high, xloc=xloc.bar_time, text = dynamicText)
// Lets make a cppm dashboard with same components
yReadable0=input(true,title="-------------------CHOOSE DISPLAY-------------------")
i_showBooleanCondition = input(true, "Show BooleanCondition")
ColorCallsTitle = splitter + nl+ "Color Changing calls" +nl +nl
ssrc1=input(1,title="Source 1",minval=1, step=1)
ssrc2=input(5,title="Source 2",minval=1, step=1)
ssrc3=input(15,title="Source 3",minval=1, step=1)
ssrc4=input(60,title="Source 4",minval=1, step=1)
ssrc5=input(240,title="Source 5",minval=1, step=1)
//------------
up = "????"
dn = "????"
//Luda added flat emoji
flt = "⛔️"
string txt = na
pssrc1 = tostring(ssrc1)
pssrc2 = tostring(ssrc2)
pssrc3 = tostring(ssrc3)
pssrc4 = tostring(ssrc4)
pssrc5 = tostring(ssrc5)
X1src = close
XCustomResolution1= "1"
XCustomResolution2= "5"
XCustomResolution3= "15"
XCustomResolution4= "60"
XCustomResolution5= "240"
r=sma(close,20)
r2=r[5]
f_security(_sym, _res, _src, _rep) => security(_sym, _res, _src[not _rep and barstate.isrealtime ? 1 : 0])[_rep or barstate.isrealtime ? 0 : 1]
X1 = f_security(syminfo.tickerid,XCustomResolution1,r,false)
X2 = f_security(syminfo.tickerid,XCustomResolution2,r,false)
X3 = f_security(syminfo.tickerid,XCustomResolution3,r,false)
X4 = f_security(syminfo.tickerid,XCustomResolution4,r,false)
X5 = f_security(syminfo.tickerid,XCustomResolution5,r,false)
X11 = f_security(syminfo.tickerid,XCustomResolution1,r2,false)
X22 = f_security(syminfo.tickerid,XCustomResolution2,r2,false)
X33 = f_security(syminfo.tickerid,XCustomResolution3,r2,false)
X44 = f_security(syminfo.tickerid,XCustomResolution4,r2,false)
X55 = f_security(syminfo.tickerid,XCustomResolution5,r2,false)
// ploting
plot(X1,title="sma1",color=color.green)
plot(X2,title="sma2",color=color.green)
plot(X3,title="sma3",color=color.green)
plot(X4,title="sma4",color=color.green)
plot(X5,title="sma5",color=color.green)
plot(X11,title="lag1",color=color.white)
plot(X22,title="lag2",color=color.white)
plot(X33,title="lag3",color=color.white)
plot(X44,title="lag4",color=color.white)
plot(X55,title="lag5",color=color.white)
//trend
Xsym1 =X1 > X11 ? up : X1 < X11 ? dn : flt
Xsym2 =X2 > X22 ? up : X2 < X22 ? dn : flt
Xsym3 =X3 > X33 ? up : X3 < X33 ? dn : flt
Xsym4 =X4 > X44 ? up : X4 < X44 ? dn : flt
Xsym5 =X5 > X55 ? up : X5 < X55 ? dn : flt
txt := " | " + pssrc1 +" : " + Xsym1 + " | " + pssrc2 +" : " + Xsym2 + " | " + pssrc3 +" : " + Xsym3 + " | " + pssrc4 +" : " + Xsym4 + " | " + pssrc5 +" : " + Xsym5 +"\n"+"\n"
ColorChang = i_showBooleanCondition ? ColorCallsTitle + "Trend: " + nl + txt + nl : na
//dynamicText := dynamicText + stats + moms + vols + sigs
dynamicText := ColorChang
label.set_text(id, text=dynamicText)