예스스탁
예스스탁 답변
2025-10-15 17:16:44.0
안녕하세요
예스스탁입니다.
input : len(20);
var : hst(0),lst(0);
var : upper(Nan),lower(Nan);
var : new_high(False),new_low(False);
var : hsum1(0),hsum2(0),h_vwap(high),h_change(0);
var : lsum1(0),lsum2(0),l_vwap(low),l_change(0);
var : _avg(0),mid(0),dir(0),dir2(0);
hst = highest(h,len);
lst = lowest(l,len);
new_high = high == hst;
new_low = low == lst;
if new_high == true Then
{
hsum1 = 0;
hsum2 = 0;
}
hsum1 = hsum1 + (high*V);
hsum2 = hsum2 + V;
h_vwap = Hsum1/Hsum2;
if new_low == true Then
{
lsum1 = 0;
lsum2 = 0;
}
lsum1 = lsum1 + (low*V);
lsum2 = lsum2 + V;
l_vwap = lsum1/lsum2;
h_change = h_vwap-h_vwap[1];
l_change = l_vwap-l_vwap[1];
upper = iff(new_high , hst, IFF(hst == hst[1] , upper[1] + h_change , min(hst,upper[1] + h_change)));
lower = iff(new_low , lst , IFF(lst == lst[1] , lower[1] + l_change , max(lst,lower[1] + l_change)));
mid = avg(upper,lower);
dir = iff(new_high,1,iff(new_low,-1,0));
dir2 = iff(new_high,1,iff(new_low,-1,dir2[1]));
plot1(upper, "Upper",iff(dir == -1 , Black,Red));
plot2(mid, "Mid", gray);
plot3(lower,"Lower", iff(dir == -1 , Black,Green));
즐거운 하루되세요
> 해암 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 아래의 트레이딩뷰 수식을 변환부탁드립니다.
====================
//@version=6
indicator("VWAP Price Channel", "VPC", overlay = true)
///_____________________________________________________________________________________________________________________
///Inputs
///‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
tf = input.timeframe("", title = "Timeframe")
len = input.int(20, title = "Length", minval = 1)
///_____________________________________________________________________________________________________________________
///VWAP Price Channel Function
///‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
get_vpc(_len) =>
//Main Logic
var float h_vwap = high
var float l_vwap = low
float upper = na
float lower = na
hst = ta.highest(_len)
lst = ta.lowest(_len)
new_high = high == hst
new_low = low == lst
h_vwap := ta.vwap(high,new_high)
l_vwap := ta.vwap(low,new_low)
h_change = ta.change(h_vwap)
l_change = ta.change(l_vwap)
upper := new_high ? hst : (hst == hst[1] ? upper[1] + h_change : math.min(hst,upper[1] + h_change))
lower := new_low ? lst : (lst == lst[1] ? lower[1] + l_change : math.max(lst,lower[1] + l_change))
_avg = math.avg(upper,lower)
//Trend Detection & Coloring
var int dir = 0
var int dir2 = 0
dir := new_high?1:new_low?-1:0
dir2 := new_high?1:new_low?-1:dir2[1]
[upper,lower,_avg,hst,lst,dir,dir2]
//Calling Function
[upper,lower,mid,hst,lst,dir,dir2] = request.security("",tf,get_vpc(len))
///_____________________________________________________________________________________________________________________
///Display
///‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
u = plot(upper, title = "Upper", color = dir == 1 ? color.rgb(0,0,0,100):color.rgb(255, 3, 62), style = plot.style_linebr)
plot(mid, title = "Mid", color = color.gray, display = display.none)
l = plot(lower, title = "Lower", color = dir == -1 ? color.rgb(0,0,0,100):color.rgb(61, 170, 69), style = plot.style_linebr)
c = plot(close, display = display.none, editable = false)
fill(u,c,dir2 == 1?color.rgb(0,0,0,100):color.rgb(255, 3, 62, 95), title = "Fill")
fill(l,c,dir2 == -1?color.rgb(0,0,0,100):color.rgb(61, 170, 69, 95), title = "Fill")
plot(hst, title = "DC Upper", color = #004d92, display = display.none)
plot(lst, title = "DC Lower", color = #004d92, display = display.none)
//<---nice
======================================
항상 감사드립니다. 수고하세요!!!