안녕하세요! 예스랭귀지 메뉴얼을 공부하는 중인데 너무 이해가 안가서
여기에 질문 합니다.
배열에 관한 메뉴얼 부분인데요,
1. Hval[count] = Hval[count-1][1]; 라는 식이 전혀 이해가 안가네요.
여기서 Hval은 배열인데 [1]이 또하나 즉 []가 두번 쓰였습니다.
이건 고가봉인데 현재 고가가 아니라 1분 전의 고가를 넣는다는 건가요?
근데 왼쪽에는 왜 Hval[count][1]에 대입이 아니라 Hval[count]인지요?ㅠㅠ
2. 아래 코드의 실행은 봉마다 실행이 되는건가요?
봉은 변수지만 사실 다른, 예를 들면 파이썬의 경우 List(즉 어레이)라고 할 수 있는 건데
이게 마치 변수처럼 다뤄지니 너무 헷갈리네요.
이런 연장에서 보면 아래 코드의 Frame와 Frame[1] 둘을 messageLog를 해보면 0.00만 나옵니다. 근데 저 아래 식에서는 두개를 비교연산을 하는데 값이 왜 0.00인지 모르겠습니다
3. 10개의 요소를 가진 배열을 선언했는데 위의 2번에 썼듯
봉개념이 너무 헷갈리다보니
예시의 목적과 연관이 있는 숫자인지
잘 감이 안옵니다ㅠㅠ 10시간이라서 그런건가 아니면 60분 안에서 H 즉 고가로
저장할 것을 그냥 임의로 10개 정도를 담을 뜻으로 10의 배열을 선언한 건지요?
도움부탁드립니다. 너무 어렵네요 감사합니다!
var : Frame(0),count(0);
Array : Hval[10](0);
Frame = TimeToMinutes(sTime)%60;
if DayIndex == 0 or Frame <Frame[1] Then {
Hval[0] =H;
For count =1 to 9{
Hval[count] = Hval[count-1][1];
}
}
if H > Hval[0] Then
Hval[0]= H;
Plot1(Hval[0]);
답변 2
예스스탁
예스스탁 답변
2022-02-08 13:45:46
안녕하세요
예스스탁입니다.
1
배열변수는 [0],[1],[2]와 같이 지정해
방번호를 지정하고 이방번호의 1봉전, 2봉전은 그뒤에 [n]붙여 표시를 하게 됩니다.
Hval[0][1]은 1봉전 Hval[0]값
Hval[1][1]은 1봉전 Hval[1]값을 의미합니다.
if DayIndex == 0 or Frame <Frame[1] Then
{
Hval[0] =H;
For count =1 to 9{
Hval[count] = Hval[count-1][1];
}
}
당일첫봉이나 Frame값이 한봉전 대비 작아지면
Hval[0]에는 현재봉 고가를 저장하고(이후 새로운고가가 발생하면 값갱신)
Hval[1]에는 Hval[0][1]의 값
Hval[2]에는 Hval[0][1]의 값
...
Hval[9]에는 Hval[8][1]의 값이 저장되게 작성되는 식입니다.
새로운 구간이 시작되므로 새로운값을 [0]에 넣어야 하므로
기존의 값을 다음방으로 이동하는 내용입니다.
즉 60분 간격의 최고값을 계산해서 저장하는데
최근 60분 최고값은 Hval[0]
직전 60분 최고값은 Hval[1]
전전 60분 최고값은 Hval[2]와 같이 저장하게 됩니다.
2
해딩식은 예를들어 1분봉이나 3분봉, 5분봉 차트에서 60분 간격의 최고가를 구하기는 식으로
분봉에 적용하는 식입니다.
frame값이 0으로 나오는 것은 차트가 일봉이거나 60분 이상의 분봉주기이기 때문입니다.
예를 들어 5분봉에 적용하면 첨부된 그림과 같이 값을 가지게 됩니다.
frame값이 55에서 0이 되면 새로운 60분봉이 시작되는 봉입니다.
3
배열은 필요하신 만큼 사이즈를 지정하시면 됩니다.
예시에서 지정된 갯수에는 큰 의미는 있는 부분이 아니고
60분간격 최고가를 계산하는데 직전 10개까지만 저장하는 것으로 예시가 작성된것일 뿐입니다.
사용자분이 더 많은 기간을 사용하고자 하시면 배열사이즈를 크게 잡고
사용하게 변형해서 사용하시면 됩니다.
Array : Hval[100](0);
Frame = TimeToMinutes(sTime)%60;
if DayIndex == 0 or Frame <Frame[1] Then {
Hval[0] =H;
For count =1 to 99{
Hval[count] = Hval[count-1][1];
}
}
즐거운 하루되세요
> nirvana 님이 쓴 글입니다.
> 제목 : 예스랭귀지 메뉴얼 설명
> 안녕하세요! 예스랭귀지 메뉴얼을 공부하는 중인데 너무 이해가 안가서
여기에 질문 합니다.
배열에 관한 메뉴얼 부분인데요,
1. Hval[count] = Hval[count-1][1]; 라는 식이 전혀 이해가 안가네요.
여기서 Hval은 배열인데 [1]이 또하나 즉 []가 두번 쓰였습니다.
이건 고가봉인데 현재 고가가 아니라 1분 전의 고가를 넣는다는 건가요?
근데 왼쪽에는 왜 Hval[count][1]에 대입이 아니라 Hval[count]인지요?ㅠㅠ
2. 아래 코드의 실행은 봉마다 실행이 되는건가요?
봉은 변수지만 사실 다른, 예를 들면 파이썬의 경우 List(즉 어레이)라고 할 수 있는 건데
이게 마치 변수처럼 다뤄지니 너무 헷갈리네요.
이런 연장에서 보면 아래 코드의 Frame와 Frame[1] 둘을 messageLog를 해보면 0.00만 나옵니다. 근데 저 아래 식에서는 두개를 비교연산을 하는데 값이 왜 0.00인지 모르겠습니다
3. 10개의 요소를 가진 배열을 선언했는데 위의 2번에 썼듯
봉개념이 너무 헷갈리다보니
예시의 목적과 연관이 있는 숫자인지
잘 감이 안옵니다ㅠㅠ 10시간이라서 그런건가 아니면 60분 안에서 H 즉 고가로
저장할 것을 그냥 임의로 10개 정도를 담을 뜻으로 10의 배열을 선언한 건지요?
도움부탁드립니다. 너무 어렵네요 감사합니다!
var : Frame(0),count(0);
Array : Hval[10](0);
Frame = TimeToMinutes(sTime)%60;
if DayIndex == 0 or Frame <Frame[1] Then {
Hval[0] =H;
For count =1 to 9{
Hval[count] = Hval[count-1][1];
}
}
if H > Hval[0] Then
Hval[0]= H;
Plot1(Hval[0]);
nirvana
2022-02-08 18:14:26
상세한 답변 너무 감사드립니다! 자세히 정독 후에
모르는게 있다면 재질문드리겠습니다! 좋은 한주되시길!