커뮤니티
문의드립니다.
2015-12-08 18:30:14
97
글번호 93204
언제나 바쁜 와중에 좋은 답변 감사드립니다.
다름이 아니라 최근 예스랭귀지를 이용하여 다양한 수식을 적용하여 계산하여 보고 있습니다만
아직도 시간을 다루는 방법에 대해 혼돈스럽습니다.
매뉴얼을 봐도 헷갈리는데 혹시 시간을 다루는 기본 원리를 좀 간략히 설명해 주실 수 있을런지요?
예스랭귀지에서 다루는 시간의 기본개념이 아직 서투르네요..부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2015-12-09 10:37:15
안녕하세요
예스스탁입니다.
문의하신 내용이 어떤 의미인지 정확히 모르겠습니다.
랭귀지는 사용자분이 셋팅한 차트에 적용되므로
수식안에서 차트의 시간은 변경하거나 하실수 없습니다.
랭귀지에는 봉의 시작시간(stime)과 끝시간(time)이 제공됩니다.
저희 프로그램의 차트는 봉을 만드는데 시작시간을 기준으로 합니다.
5분봉이면
첫봉 9시~9시04분59
두번째봉 9시05분~9시09분59
세번째봉 9시10분~9시14분59
~~~
봉은 끝시간(time)은 마지막 체결시세의 시간으로
봉마다 시간이 다르므로
수식에서는 보통 stime을 이용해서 시간을 지정합니다.
10시봉이면 stime == 100000으로 표시합니다.
시간은 단순 숫자값입니다.
그러므로 사용하는 주기에서 봉을 임의이 시간으로 끊어서 표시할때는
(다른주기의 분봉값을 계산할때)
TimeToMinutes함수를 이용하는데
TimeToMinutes함수는 시간을 밤 0시 이후에 경과된 분수로 리턴을 해주게 됩니다.
TimeToMinutes(stime)
9시봉이면 540
9시 5분봉이면 545
9시 10분봉이면 550
이값을 이용해 만약 1시간단위로 구분한다면
TimeToMinutes(stime)%60
이라는 계산식을 만들어 사용합니다. 값을 60으로 나누어 나머지를 취하게 됩니다.
60분 단위 정시면 나머지가 없으므로 0이고
그외의 봉은 경과된 분수가 리턴됩니다.
아래와 같이 작성하면 60분 이하의 차트에서
60분봉의 시고저를 계산해 사용할수 있습니다.
var : TF(0),HH(0),LL(0),OO(0);
TF = TimeToMinutes(stime)%60;
if date != date[1] or (date == date[1] and TF < TF[1]) Then{
OO = O;
HH = H;
LL = L;
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
plot1(OO,"시가");
plot2(HH,"고가");
plot3(LL,"저가");
이용에 참고하시기 바랍니다.
즐거운 하루되세요
> 바블릭 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 언제나 바쁜 와중에 좋은 답변 감사드립니다.
다름이 아니라 최근 예스랭귀지를 이용하여 다양한 수식을 적용하여 계산하여 보고 있습니다만
아직도 시간을 다루는 방법에 대해 혼돈스럽습니다.
매뉴얼을 봐도 헷갈리는데 혹시 시간을 다루는 기본 원리를 좀 간략히 설명해 주실 수 있을런지요?
예스랭귀지에서 다루는 시간의 기본개념이 아직 서투르네요..부탁드립니다.
다음글
이전글