커뮤니티

일봉 차트에서 함수 호출 주기문의

프로필 이미지
adino30
2015-04-01 08:30:55
564
글번호 210348
답변완료
항상 수고 많으십니다. 예스랭귀지의 함수 호출 방식이 일반적인 프로그램 (ex:C언어)와 다소 차이가 있는것 같습니다. 이에, 예스랭귀지로 수식 내지 함수를 작성하고 일봉차트에 적용시켰을때 질문이 있습니다. 작성식 순서에 따라 각 함수들이 최초 호출 된 후, 1) 봉이 완성되지 않아도 가격 변동이 발생할때 마다 함수가 재호출 되는지? 2) 체결이 될때마다(매 tick마다) 함수가 재호출 되는지?? 3) 아니면, 봉이 완성되는 시점(종가)에서 한번만 호출 되는지요?? 예시를 들면 다음과 같습니다. 장 시작 전 오전 8시 20분에 아래와 같이 변수들을 선언하고 수식을 작성합니다. Input: period(1000), test(1); Var: cnt(0); Array: temp[1000]; for cnt =0 to period-1 { temp[cnt]=dayclose(cnt); } 4) 이런 경우 장이 시작되었을 때, 가격이 바뀔때 마다 함수들이 재 호출된다고 가정하면, 가격 변동때마다 array와 각 변수들이 새로이 선언되고 변수값이 새로이 저장되고 계산되는지요?? 5) 아니면, 기존 프로그램처럼 따로 변수들을 호출하지 않는 이상, 배열이나 변수들의 값이 바뀌지안고 메모리에 상주(예를들면, 위에서 선언하고 값을 할당한 변수, test=1인 상태로) 하는지?? 바쁘시더라도 답변 꼭 부탁드립니다. 답변 꼭 부탁드립니다.
예스트레이더 (iM증권)
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-04-03 14:28:49

안녕하세요 예스스탁입니다. 1. 차트의 과거봉에서는 수식을 한번씩만 읽어가게 되고. 실시간 현재봉에서는 시세를 받을때마다 계산을 하게 됩니다. Input: period(1000), test(1); Var: cnt(0); Array: temp[1000](0);//<--기초값지정이 없어 추가했습니다. for cnt =0 to period-1 { temp[cnt]=dayclose(cnt); } 올려주신 식은 매봉 천회의 루프를 돌아 각 배열방에 값을 다시 저장하는 식입니다. 과거봉에서는 봉마다 한번씩만(1000회의 루프) 동작해서 배열변수를 채우고 현재봉에서는 시세를 받을때마다 1000회의 루프를 돌면서 각방에 값을 저장합니다. [0]번방은 현재시세를 [1]번방은 전일종가 [2]번방은 전전일종가 .... 4.5 작성하신 수식에서 input/var/array로 변수를 선언한 부분은 차트에서 첫봉 시작시에 한번만 인식하게 되고 이후에는 사용자분이 저장한 값을 가져가게 됩니다. 봉마다 초기화를 하지 않습니다. 즉 변수선언을 제외한 내용이 과거봉에서는 한번, 마지막 현재봉에서는 시세를 받을때 마다 읽어들어가게 됩니다. 간단히 아래식 차트에 적용해 보시면 var : AA(0); if C > O Then AA = AA+1; plot1(AA); 차트 첫봉부터 양봉이 발생할때마다 1씩 증가를 하는데 양봉이 아닌봉에서는 이전에 저장된 값이 유지되는 것을 보실수 있습니다. 즐거운 하루되세요 > adino30 님이 쓴 글입니다. > 제목 : 일봉 차트에서 함수 호출 주기문의 > 항상 수고 많으십니다. 예스랭귀지의 함수 호출 방식이 일반적인 프로그램 (ex:C언어)와 다소 차이가 있는것 같습니다. 이에, 예스랭귀지로 수식 내지 함수를 작성하고 일봉차트에 적용시켰을때 질문이 있습니다. 작성식 순서에 따라 각 함수들이 최초 호출 된 후, 1) 봉이 완성되지 않아도 가격 변동이 발생할때 마다 함수가 재호출 되는지? 2) 체결이 될때마다(매 tick마다) 함수가 재호출 되는지?? 3) 아니면, 봉이 완성되는 시점(종가)에서 한번만 호출 되는지요?? 예시를 들면 다음과 같습니다. 장 시작 전 오전 8시 20분에 아래와 같이 변수들을 선언하고 수식을 작성합니다. Input: period(1000), test(1); Var: cnt(0); Array: temp[1000]; for cnt =0 to period-1 { temp[cnt]=dayclose(cnt); } 4) 이런 경우 장이 시작되었을 때, 가격이 바뀔때 마다 함수들이 재 호출된다고 가정하면, 가격 변동때마다 array와 각 변수들이 새로이 선언되고 변수값이 새로이 저장되고 계산되는지요?? 5) 아니면, 기존 프로그램처럼 따로 변수들을 호출하지 않는 이상, 배열이나 변수들의 값이 바뀌지안고 메모리에 상주(예를들면, 위에서 선언하고 값을 할당한 변수, test=1인 상태로) 하는지?? 바쁘시더라도 답변 꼭 부탁드립니다. 답변 꼭 부탁드립니다.