커뮤니티
항상 궁금해서 신세를 지내요 질문이요.
2017-01-10 13:39:54
113
글번호 105749
아래 일목균형표 요소를 가르쳐주신데로 짜집기를 해보았는데 검토 좀 부탁드립니다.
## strd=standard, cvsn=conversion ##
Var : Weekstrd(0), Weekcvsn(0),Monthstrd(0), Monthcvsn(0),cnt(0),widx(0),Midx(0);
Array : WH[100](0),WL[100](0),MH[100](0),ML[100](0);
if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{
widx = widx+1;
WH[0] = H;
WL[0] = L;
for cnt = 1 to 99{
WH[cnt] = WH[cnt-1][1];
WL[cnt] = WL[cnt-1][1];
}
}
if H > WH[0] Then
WH[0] = H;
if L < WL[0] Then
WL[0] = L;
if widx >= 9 then{
var1 = WH[0];
var2 = WL[0];
for cnt = 0 to 8{
if WH[cnt] > var1 Then
var1 = WH[cnt];
if WL[cnt] < var2 Then
var2 = WL[cnt];
}
Weekcvsn = (var1 + var2)/2; #주간전환선
}
if widx >= 26 then{
var3 = WH[0];
var4 = WL[0];
for cnt = 0 to 25{
if WH[cnt] > var3 Then
var3 = WH[cnt];
if WL[cnt] < var4 Then
var4 = WL[cnt];
}
Weekstrd = (var3 + var4)/2; #주간기준선
}
if sdate > sdate[1]+30 Then{
MH[0] = H;
ML[0] = H;
midx = midx+1;
for cnt = 1 to 99{
MH[cnt] = MH[cnt-1][1];
ML[cnt] = ML[cnt-1][1];
}
}
if H > MH[0] Then
MH[0] = H;
if L < ML[0] Then
ML[0] = L;
if midx >= 9 then{
var11 = MH[0];
var12 = ML[0];
for cnt = 0 to 8{
if MH[cnt] > var11 Then
var11 = MH[cnt];
if ML[cnt] < var12 Then
var12 = ML[cnt];
}
}
if midx >= 26 then{
var13 = MH[0];
var14 = ML[0];
for cnt = 0 to 25{
if MH[cnt] > var13 Then
var13 = MH[cnt];
if ML[cnt] < var14 Then
var14 = ML[cnt];
}
}
Monthcvsn = (var11 + var12)/2; #월간전환선
Monthstrd = (var13 + var14)/2; #월간기준선
value1 = (highest(C,9)+lowest(C,9))/2; #일간전환선
value2 = (highest(C,26)+lowest(C,26))/2; #일간기준선
value3 = (Value1[25]+Value2[25])/2; #일간선행스팬1
Value4 = (highest(C,52)[25]+lowest(C,52)[25])/2; #일간선행스팬2
value5 = (weekcvsn[25]+weekstrd[25])/2; #주간선행스팬1
value6 = (highest(WeekClose(0),52)[25]+lowest(WeekClose(0),52)[25])/2; #주간선행스팬2
답변 1
예스스탁 예스스탁 답변
2017-01-11 11:34:32
안녕하세요
예스스탁입니다.
아래와 같이 작성하셔야 합니다.
선행스팬1과 선행스팬2도 기존계산된 주간,월간 최고가와 최저가를 이용해 계산해야 합니다.
highest,lowest함수로 해결이 되지 않습니다.
수식은 차트의 데이터를 이용하므로
차트에 주간/월간 일목균형선이 그려질 만큼 충분한 데이터가 있어야 그려집니다.
부족하면 그려지지 않습니다.
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : cnt(0);
var : wH1(0),wL1(0),wH11(0),wL11(0),wH2(0),wL2(0),wH22(0),wL22(0),wH3(0),wL3(0);
var : w전환선(0),w기준선(0),w선행스팬1(0),w선행스팬2(0);
Array : WH[100](0),WL[100](0);
var : mH1(0),mL1(0),mH11(0),mL11(0),mH2(0),mL2(0),mH22(0),mL22(0),mH3(0),mL3(0);
var : m전환선(0),m기준선(0),m선행스팬1(0),m선행스팬2(0);
Array : MH[100](0),ML[100](0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then{
WH[0] = H;
WL[0] = L;
for cnt = 1 to 99{
WH[cnt] = WH[cnt-1][1];
WL[cnt] = WL[cnt-1][1];
}
}
if H > WH[0] Then
WH[0] = H;
if L < WL[0] Then
WL[0] = L;
if WH[선행스팬2기간+25] > 0 and WL[선행스팬2기간+25] > 0 then{
wH1 = WH[0];
wL1 = WL[0];
wH11 = WH[25];
wL11 = WL[25];
wH2 = WH[0];
wL2 = WL[0];
wH22 = WH[25];
wL22 = WL[25];
wH3 = WH[25];
wL3 = WL[25];
for cnt = 0 to 선행스팬2기간-1{
if cnt < 전환선기간 Then{
if WH[cnt] > wH1 Then
wH1 = WH[cnt];
if WL[cnt] < wL1 Then
wL1 = WL[cnt];
if WH[cnt+25] > wH11 Then
wH11 = WH[cnt+25];
if WL[cnt+25] < wL11 Then
wL11 = WL[cnt+25];
}
if cnt < 기준선기간 Then{
if WH[cnt] > wH2 Then
wH2 = WH[cnt];
if WL[cnt] < wL2 Then
wL2 = WL[cnt];
if WH[cnt+25] > wH22 Then
wH22 = WH[cnt+25];
if WL[cnt+25] < wL22 Then
wL22 = WL[cnt+25];
}
if WH[cnt+25] > wH3 Then
wH3 = WH[cnt+25];
if WL[cnt+25] < wL3 Then
wL3 = WL[cnt+25];
}
w전환선 = (wH1 + wL1)/2;
w기준선 = (wH2 + wL2)/2;
w선행스팬1 = ((wH11+wL11)/2 + (wH22+wL22)/2) / 2 ;
w선행스팬2 = (wH3+wL3) / 2;
plot1(w전환선);
plot2(w기준선);
plot3(w선행스팬1);
plot4(w선행스팬2);
}
if Bdate > Bdate[1]+30 Then{
MH[0] = H;
ML[0] = L;
for cnt = 1 to 99{
MH[cnt] = MH[cnt-1][1];
ML[cnt] = ML[cnt-1][1];
}
}
if H > MH[0] Then
MH[0] = H;
if L < ML[0] Then
ML[0] = L;
if MH[선행스팬2기간+25] > 0 and ML[선행스팬2기간+25] > 0 then{
mH1 = MH[0];
mL1 = ML[0];
mH11 = MH[25];
mL11 = ML[25];
mH2 = MH[0];
mL2 = ML[0];
mH22 = MH[25];
mL22 = ML[25];
mH3 = MH[25];
mL3 = ML[25];
for cnt = 0 to 선행스팬2기간-1{
if cnt < 전환선기간 Then{
if MH[cnt] > mH1 Then
mH1 = MH[cnt];
if ML[cnt] < mL1 Then
mL1 = ML[cnt];
if MH[cnt+25] > mH11 Then
mH11 = MH[cnt+25];
if ML[cnt+25] < mL11 Then
mL11 = ML[cnt+25];
}
if cnt < 기준선기간 Then{
if MH[cnt] > mH2 Then
mH2 = MH[cnt];
if ML[cnt] < mL2 Then
mL2 = ML[cnt];
if MH[cnt+25] > mH22 Then
mH22 = MH[cnt+25];
if ML[cnt+25] < mL22 Then
mL22 = ML[cnt+25];
}
if MH[cnt+25] > mH3 Then
mH3 = MH[cnt+25];
if ML[cnt+25] < mL3 Then
mL3 = ML[cnt+25];
}
m전환선 = (mH1 + mL1)/2;
m기준선 = (mH2 + mL2)/2;
m선행스팬1 = ((mH11+mL11)/2 + (mH22+mL22)/2) / 2 ;
m선행스팬2 = (mH3+mL3) / 2;
plot5(m전환선);
plot6(m기준선);
plot7(m선행스팬1);
plot8(m선행스팬2);
}
즐거운 하루되세요
> 신사동지점장 님이 쓴 글입니다.
> 제목 : 항상 궁금해서 신세를 지내요 질문이요.
> 아래 일목균형표 요소를 가르쳐주신데로 짜집기를 해보았는데 검토 좀 부탁드립니다.
## strd=standard, cvsn=conversion ##
Var : Weekstrd(0), Weekcvsn(0),Monthstrd(0), Monthcvsn(0),cnt(0),widx(0),Midx(0);
Array : WH[100](0),WL[100](0),MH[100](0),ML[100](0);
if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{
widx = widx+1;
WH[0] = H;
WL[0] = L;
for cnt = 1 to 99{
WH[cnt] = WH[cnt-1][1];
WL[cnt] = WL[cnt-1][1];
}
}
if H > WH[0] Then
WH[0] = H;
if L < WL[0] Then
WL[0] = L;
if widx >= 9 then{
var1 = WH[0];
var2 = WL[0];
for cnt = 0 to 8{
if WH[cnt] > var1 Then
var1 = WH[cnt];
if WL[cnt] < var2 Then
var2 = WL[cnt];
}
Weekcvsn = (var1 + var2)/2; #주간전환선
}
if widx >= 26 then{
var3 = WH[0];
var4 = WL[0];
for cnt = 0 to 25{
if WH[cnt] > var3 Then
var3 = WH[cnt];
if WL[cnt] < var4 Then
var4 = WL[cnt];
}
Weekstrd = (var3 + var4)/2; #주간기준선
}
if sdate > sdate[1]+30 Then{
MH[0] = H;
ML[0] = H;
midx = midx+1;
for cnt = 1 to 99{
MH[cnt] = MH[cnt-1][1];
ML[cnt] = ML[cnt-1][1];
}
}
if H > MH[0] Then
MH[0] = H;
if L < ML[0] Then
ML[0] = L;
if midx >= 9 then{
var11 = MH[0];
var12 = ML[0];
for cnt = 0 to 8{
if MH[cnt] > var11 Then
var11 = MH[cnt];
if ML[cnt] < var12 Then
var12 = ML[cnt];
}
}
if midx >= 26 then{
var13 = MH[0];
var14 = ML[0];
for cnt = 0 to 25{
if MH[cnt] > var13 Then
var13 = MH[cnt];
if ML[cnt] < var14 Then
var14 = ML[cnt];
}
}
Monthcvsn = (var11 + var12)/2; #월간전환선
Monthstrd = (var13 + var14)/2; #월간기준선
value1 = (highest(C,9)+lowest(C,9))/2; #일간전환선
value2 = (highest(C,26)+lowest(C,26))/2; #일간기준선
value3 = (Value1[25]+Value2[25])/2; #일간선행스팬1
Value4 = (highest(C,52)[25]+lowest(C,52)[25])/2; #일간선행스팬2
value5 = (weekcvsn[25]+weekstrd[25])/2; #주간선행스팬1
value6 = (highest(WeekClose(0),52)[25]+lowest(WeekClose(0),52)[25])/2; #주간선행스팬2
다음글
이전글