답변완료
부탁드립니다.
변형 부탁 드립니다.
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
1643
글번호 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
1569
글번호 170687
검색
답변완료
RSI 지표 활용한 신호를 종목 검색 부탁드립니다
관리자님~~~
바쁜 일정으로 이제 다시 시작합니다.
먼저,
항상 도움에 감사합니다.
하기 수식은 키움에서 신호로 사용 중입니다.
종목 검색식으로 사용하고 싶은데
도움 부탁드립니다.
[키움 신호 수식]
시=(O(1)+C(1))/2;
종=(O+C+H+L)/4;
R시=sum(if(시-시(1)>0,시-시(1),0),Period)/sum(if(시-시(1)>0,시-시(1),시(1)-시),Period)*100;
R종=sum(if(종-종(1)>0,종-종(1),0),Period)/sum(if(종-종(1)>0,종-종(1),종(1)-종),Period)*100;
조건1=시<종 && 시(1)<C;
조건2=R시<R종;
조건3=CrossUp(R종, 변수1);
조건4=CrossUp(R종, 변수2);
(조건1 && 조건2) && (조건3 or 조건4)
지표변수
*Period : 14
*변수1 : 20
*변수2 : 30
2023-07-17
1168
글번호 170668
종목검색
답변완료
하나 더 문의드립니다.
좌우측 50봉의 종가를 비교해서 스윙하이 발생하는 경우,
1번째 스윙하이의 종가와 2번째 스윙하이 종가를 연결하여 추세선을 작성하고,
추세선 값을 상향돌파하는 날의 월봉 시가에 3% 이내 수렴하는 종목을 검색하고 싶습니다.
swinghigh, TL_New, TL_GetValue로 조건을 생성하고,
조건이 충족하는 날의 월을 구한 다음, 해당 월의 시가를 구하면 될 것 같았는데,
수식에 계속 오류가 나서 문의드립니다.
2023-07-17
1362
글번호 170667
검색
답변완료
문의드립니다.
늘 감사하드립니다.
월봉의 지수이동평균의 정확한 값은 어떻게 계산할 수 있나요?
"월봉 7, 14, 21 이평이 역배열" 또는 월봉 7, 14 이평의 이격도 5% 이내"인 상태에서
월봉의 7이평을 종가가 상향돌파한 날의 시가 또는 시고저종가의 평균에 3% 이내 수렴하는 종목을 검색하려 합니다.
아래와 같이 월봉을 20일로 계산해서 넣으면 전혀 다른 종목이 나와서 여쭤봅니다.
var1 = ma(C,140);
Var2 = ma(C,280);
Var3 = ma(C,420);
Condition1 = var1 < Var2 and Var2 < var3 and Abs(var1 - var2) < 0.05 and CrossUp(C,Var3);
if Condition1 == true Then
Var4 = O;
Var5 = (O+H+L+C)/4;
if ((C <= Var4*1.03 and C >= Var4*0.97) or (C <= Var5*1.03 and C >= Var5*0.97)) then
find(1);
2023-07-17
1368
글번호 170666
검색