항상 수고 많으십니다.
예스랭귀지의 함수 호출 방식이 일반적인 프로그램 (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인 상태로) 하는지??
바쁘시더라도 답변 꼭 부탁드립니다.
답변 꼭 부탁드립니다.
답변 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인 상태로) 하는지??
바쁘시더라도 답변 꼭 부탁드립니다.
답변 꼭 부탁드립니다.