답변완료
노이즈 이동평균 분봉에서 일봉
담당자님 안녕하세요.
장마철 건강 유의하십시요.
다름이아니라 기존 작성해주신 분봉에서 일봉 이동평균 식을 참고하여 일봉의 Noise 지표의 30일 이동평균을 구하려고 하였으나, 문제가 있는지 값이 표현되지 않습니다.
단순 이동평균의 경우 아래와 같은 방식으로 작성해주셔서 동일하게 작성하였으나, 무슨일인지 표시되지 않고있습니다.
바쁘시겠지만 도움 주시면 감사하겠습니다.
#Noise
Input: NPeriod(30);
var: cnt(0), sum(0), noise(0), noiseMA(0);
noise = 1 - abs(dayopen(0)-dayclose(0))/(dayhigh(0)-daylow(0));
For cnt = 1 to Nperiod
{
sum = sum + (1-(abs(dayopen(cnt)-dayclose(cnt))/(dayhigh(cnt)-daylow(cnt))));
}
noiseMA = sum/Nperiod;
Plot1(noise, "노이즈");
Plot2(noiseMA, "노이즈이동평균");
2023-07-17
1544
글번호 170699
지표
답변완료
부탁드립니다.
변형 부탁 드립니다.
study("Consolidation Zones - Live", overlay = true, max_bars_back = 1100)
prd = input(defval = 10, title="Loopback Period", minval = 2, maxval = 50)
conslen = input(defval = 5, title="Min Consolidation Length", minval = 2, maxval = 20)
paintcons = input(defval = true, title = "Paint Consolidation Area ")
zonecol = input(defval = color.new(color.blue, 70), title = "Zone Color")
float hb_ = highestbars(prd) == 0 ? high : na
float lb_ = lowestbars(prd) == 0 ? low : na
var int dir = 0
float zz = na
float pp = na
dir := iff(hb_ and na(lb_), 1, iff(lb_ and na(hb_), -1, dir))
if hb_ and lb_
if dir == 1
zz := hb_
else
zz := lb_
else
zz := iff(hb_, hb_, iff(lb_, lb_, na))
for x = 0 to 1000
if na(close) or dir != dir[x]
break
if zz[x]
if na(pp)
pp := zz[x]
else
if dir[x] == 1 and zz[x] > pp
pp := zz[x]
if dir[x] == -1 and zz[x] < pp
pp := zz[x]
var int conscnt = 0
var float condhigh = na
var float condlow = na
float H_ = highest(conslen)
float L_ = lowest(conslen)
var line upline = na
var line dnline = na
bool breakoutup = false
bool breakoutdown = false
if change(pp)
if conscnt > conslen
if pp > condhigh
breakoutup := true
if pp < condlow
breakoutdown := true
if conscnt > 0 and pp <= condhigh and pp >= condlow
conscnt := conscnt + 1
else
conscnt := 0
else
conscnt := conscnt + 1
if conscnt >= conslen
if conscnt == conslen
condhigh := H_
condlow := L_
else
line.delete(upline)
line.delete(dnline)
condhigh := max(condhigh, high)
condlow := min(condlow, low)
upline := line.new(bar_index, condhigh, bar_index - conscnt, condhigh, color = color.red, style = line.style_dashed)
dnline := line.new(bar_index, condlow , bar_index - conscnt, condlow, color = color.lime, style = line.style_dashed)
fill(plot(condhigh, color = na, style = plot.style_stepline),
plot(condlow, color = na, style = plot.style_stepline),
color = paintcons and conscnt > conslen ? zonecol : color.new(color.white, 100))
alertcondition(breakoutup, title='Breakout Up', message='Breakout Up')
alertcondition(breakoutdown, title='Breakout Down', message='Breakout Down')
2023-07-17
1661
글번호 170693
지표
답변완료
안녕하세요 수식문의 부탁드립니다^^
안녕하세요~ 고생이 많으세요 지난번 질문에
아래의 수식을 답변받았는데요 제대로 검색이 안되어서 그런데 혹시 뭐가 문제인지 알수 있을까요?
if CrossDown(var1,0) Then <---- 이조건이 검색이 안되더라구요 ㅜㅜ
잘부탇드리겠습니다^^
input : 단기(5),중기(20),장기(60);
var : p(0),k(0),q(0),x(0),y(0),z(0);
p = (highest(high,단기)+lowest(low,단기))/2;
k = (highest(high,중기)+lowest(low,중기))/2;
q = (p+k)/2;
x = (highest(high,장기)+lowest(low,장기))/2;
y = (highest(high,장기)+lowest(low,장기))/2;
z = (x+y)/2;
var1 = (q-z)/q*100;
if CrossDown(var1,0) Then
{
value1 = var1;
Value2 = value1[1];
if value1 > Value2 Then
find(1);
}
==========================================
질문했던 수식
input : 단기(5),중기(20),장기(60);
var : p(0),k(0),q(0),x(0),y(0),z(0);
p = (highest(high,단기)+lowest(low,단기))/2;
k = (highest(high,중기)+lowest(low,중기))/2;
q = (p+k)/2;
x = (highest(high,장기)+lowest(low,장기))/2;
y = (highest(high,장기)+lowest(low,장기))/2;
z = (x+y)/2;
var1 = (q-z)/q*100;
if CrossDown(var1,0) Then
Plot1(L,"검색",Cyan);
2023-07-17
1585
글번호 170687
검색