예스스탁
예스스탁 답변
2025-09-01 13:14:47
안녕하세요
예스스탁입니다.
input : conv(50);
input : length(20);
var : src(0),mx(0),mn(0),diff(0),psi(0);
src = close;
mx = iff(IsNan(max(src, mx - (mx - src) / conv)) == true, src,max(src, mx - (mx - src) / conv));
mn = iff(IsNan(min(src, mn + (src - mn) / conv)) == true, src,min(src, mn + (src - mn) / conv));
diff = log(mx - mn);
psi = -50 * CoefficientR(diff, Index, length) + 50;
plot1(psi, "PSI");
PlotBaseLine1(80);
즐거운 하루되세요
> 하날랑 님이 쓴 글입니다.
> 제목 : 다음의 지표를 변환하여 주시기를 부탁드립니다.
> 트레이딩뷰의 "Squeeze Index [LuxAlgo]" 지표입니다.
횡보구간을 잡으려고 여러가지 지표를 사용해 보았으나 소귀의 목적을 이루지는 못했습니다. 스퀴즈 부분을 어느정도 잡을 수 있는 지표라고 하니 꼭 변환을 해 주시면 고맘겠습니다.
우선 자동매매에 적용을 하려고 하니 시스템에 맞게 부탁을 드리고 부차적으로 수동매매시 참고할 수 있도록 지표에 적용될 수 있도록 지표로도 부탁드립니다.
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("Squeeze Index [LuxAlgo]", "Squeeze Index [LuxAlgo]")
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
conv = input(50, 'Convergence Factor')
length = input(20)
src = input(close)
//Style
col_0 = input(#ffeb3b, 'Gradient'
, inline = 'inline0'
, group = 'Style')
col_1 = input(#ff5d00, ''
, inline = 'inline0'
, group = 'Style')
col_2 = input(#ff1100, ''
, inline = 'inline0'
, group = 'Style')
//-----------------------------------------------------------------------------}
//Squeeze index
//-----------------------------------------------------------------------------{
var max = 0.
var min = 0.
max := nz(math.max(src, max - (max - src) / conv), src)
min := nz(math.min(src, min + (src - min) / conv), src)
diff = math.log(max - min)
psi = -50 * ta.correlation(diff, bar_index, length) + 50
//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
css1 = color.from_gradient(psi, 0, 80, col_0, col_1)
css2 = color.from_gradient(psi, 80, 100, css1, col_2)
plot_0 = plot(psi, 'PSI', psi > 80 ? na : css2)
plot(psi, 'Dots', psi > 80 ? css2 : na, style = plot.style_cross)
plot_1 = plot(80, display = display.none, editable = false)
fill(plot_0, plot_1, psi < 80 ? na : color.new(#ff1100, 80))
hline(80)
//-----------------------------------------------------------------------------}
완전하게 Squeeze 부분을 다 잡아내지는 못했지만 그래도 4개나 잡아냈습니다.
다시한번더 감사드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 다음의 지표를 변환하여 주시기를 부탁드립니다.
>
안녕하세요
예스스탁입니다.
input : conv(50);
input : length(20);
var : src(0),mx(0),mn(0),diff(0),psi(0);
src = close;
mx = iff(IsNan(max(src, mx - (mx - src) / conv)) == true, src,max(src, mx - (mx - src) / conv));
mn = iff(IsNan(min(src, mn + (src - mn) / conv)) == true, src,min(src, mn + (src - mn) / conv));
diff = log(mx - mn);
psi = -50 * CoefficientR(diff, Index, length) + 50;
plot1(psi, "PSI");
PlotBaseLine1(80);
즐거운 하루되세요
> 하날랑 님이 쓴 글입니다.
> 제목 : 다음의 지표를 변환하여 주시기를 부탁드립니다.
> 트레이딩뷰의 "Squeeze Index [LuxAlgo]" 지표입니다.
횡보구간을 잡으려고 여러가지 지표를 사용해 보았으나 소귀의 목적을 이루지는 못했습니다. 스퀴즈 부분을 어느정도 잡을 수 있는 지표라고 하니 꼭 변환을 해 주시면 고맘겠습니다.
우선 자동매매에 적용을 하려고 하니 시스템에 맞게 부탁을 드리고 부차적으로 수동매매시 참고할 수 있도록 지표에 적용될 수 있도록 지표로도 부탁드립니다.
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("Squeeze Index [LuxAlgo]", "Squeeze Index [LuxAlgo]")
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
conv = input(50, 'Convergence Factor')
length = input(20)
src = input(close)
//Style
col_0 = input(#ffeb3b, 'Gradient'
, inline = 'inline0'
, group = 'Style')
col_1 = input(#ff5d00, ''
, inline = 'inline0'
, group = 'Style')
col_2 = input(#ff1100, ''
, inline = 'inline0'
, group = 'Style')
//-----------------------------------------------------------------------------}
//Squeeze index
//-----------------------------------------------------------------------------{
var max = 0.
var min = 0.
max := nz(math.max(src, max - (max - src) / conv), src)
min := nz(math.min(src, min + (src - min) / conv), src)
diff = math.log(max - min)
psi = -50 * ta.correlation(diff, bar_index, length) + 50
//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
css1 = color.from_gradient(psi, 0, 80, col_0, col_1)
css2 = color.from_gradient(psi, 80, 100, css1, col_2)
plot_0 = plot(psi, 'PSI', psi > 80 ? na : css2)
plot(psi, 'Dots', psi > 80 ? css2 : na, style = plot.style_cross)
plot_1 = plot(80, display = display.none, editable = false)
fill(plot_0, plot_1, psi < 80 ? na : color.new(#ff1100, 80))
hline(80)
//-----------------------------------------------------------------------------}