커뮤니티
질문드립니다.
2018-03-02 13:19:13
146
글번호 117096
안녕하세요
예스스탁입니다.
data2의 당일고가/당일저가/당일종가이면 아래와 같이
작성하시면 됩니다.
var : cnt(0);
Array : H2[100](0,data2),L2[100](0,data2),c2[100](0,data2);
if data2(bdate != bdate[1]) Then{
      H2[0] = data2(H);
      L2[0] = data2(L);
      for cnt = 1 to 99{
            H2[cnt] = H2[cnt-1][1];
            L2[cnt] = L2[cnt-1][1];
            c2[cnt] = c2[cnt-1][1];
      }
}
if data2(H) > H2[0] Then
      H2[0] = data2(H);
if data2(L) < L2[0] Then
      L2[0] = data2(L);
c2[0] = data2(c);
이전 답변 잘 받았습니다.
여기서 추가로 궁금한 것이 있습니다.
data2 고가 와 저가를 만든것이 H2[0], L2[0] 인데요.
이걸 for문에 넣으면 외부함수입력값때문에 안되네요.
가령
for n = 1 to 20 {
x = h2[0][n] + L2[0][n];}
이렇게하게되면 저기에 [n]을 넣을 수 없습니다. 이런경우 외부함수라면 사용자 함수를 응용해야하는지요? 만약 그렇다면 논리형인지 숫자형인지..
for문에 넣을려면 어떻게 해야하나요?
답변 1
예스스탁 예스스탁 답변
2018-03-02 13:59:28
안녕하세요
예스스탁입니다.
1
어떤 값을 계산하고자 하시는지
정확한 내용을 올려주셔야 정확한 답변이 가능합니다.
올려주신 for문으로는 어떤 내용을 구현하고자 하는지 불명확합니다
올려주신 for문식도 문법적으로 오류가 있거나 하는 내용이 아닙니다.
2
작성해 드린 수식에서
H2,L2,C2는 배열변수이고
각 배열변수의 [0]은 당일, [1]은 1일전, [2]는 2일전...순으로
값이 저장되게 작성해 드린수식이고
최대 99일전까지 저장되게 되어 있습니다.
H2[0] 당일최고, H2[1] 전일최고, H2[2] 전전일최고.....
L2[0] 당일최저, L2[1] 전일최저, L2[2] 전전일최저.....
C2[0] 당일종가, C2[1] 전일종가, C2[2] 전전일종가.....
3
H2[0][0]은 배열변수H2의 0번방의 현재봉값(현재봉값이므로 [0]은 생략가능)
H2[0][1]은 배열변수H2의 0번방의 1봉전값
H2[0][2]는 배열변수H2의 0번방의 2봉전값이라는 의미입니다.
그러므로
for n = 1 to 20 {
x = h2[0][n] + L2[0][n];
}
와 같은 내용이 문법적으로 문제가 있거나 하지 않습니다.
다만 만약 1일에서 20일까지의 최고가와 최저가 지정하고 하셨으면
아래와 같이 n이 지정되어야 합니다.
for n = 1 to 20 {
x = h2[n] + L2[n];
}
4
작성하고자 하는 수식이 20일 평균값이면 수식내용은 아래와 같습니다.
var : cnt(0),n(0),x(0,data2),mav(0,data2);
Array : H2[100](0,data2),L2[100](0,data2),c2[100](0,data2);
if data2(bdate != bdate[1]) Then{
H2[0] = data2(H);
L2[0] = data2(L);
for cnt = 1 to 99{
H2[cnt] = H2[cnt-1][1];
L2[cnt] = L2[cnt-1][1];
c2[cnt] = c2[cnt-1][1];
}
}
if data2(H) > H2[0] Then
H2[0] = data2(H);
if data2(L) < L2[0] Then
L2[0] = data2(L);
c2[0] = data2(c);
if H2[0] > 20 and L2[20] > 0 then{
x = 0;
for n = 1 to 20 {
x = x + (H2[n] + L2[n])/2;
}
mav = x/20;
plot1(mav);
}
즐거운 하루되세요
> stockric 님이 쓴 글입니다.
> 제목 : 질문드립니다.
> 안녕하세요
예스스탁입니다.
data2의 당일고가/당일저가/당일종가이면 아래와 같이
작성하시면 됩니다.
var : cnt(0);
Array : H2[100](0,data2),L2[100](0,data2),c2[100](0,data2);
if data2(bdate != bdate[1]) Then{
      H2[0] = data2(H);
      L2[0] = data2(L);
      for cnt = 1 to 99{
            H2[cnt] = H2[cnt-1][1];
            L2[cnt] = L2[cnt-1][1];
            c2[cnt] = c2[cnt-1][1];
      }
}
if data2(H) > H2[0] Then
      H2[0] = data2(H);
if data2(L) < L2[0] Then
      L2[0] = data2(L);
c2[0] = data2(c);
이전 답변 잘 받았습니다.
여기서 추가로 궁금한 것이 있습니다.
data2 고가 와 저가를 만든것이 H2[0], L2[0] 인데요.
이걸 for문에 넣으면 외부함수입력값때문에 안되네요.
가령
for n = 1 to 20 {
x = h2[0][n] + L2[0][n];}
이렇게하게되면 저기에 [n]을 넣을 수 없습니다. 이런경우 외부함수라면 사용자 함수를 응용해야하는지요? 만약 그렇다면 논리형인지 숫자형인지..
for문에 넣을려면 어떻게 해야하나요?