커뮤니티

CloseD(0)

프로필 이미지
쉬어가자
2012-05-24 00:15:26
340
글번호 51276
답변완료
질문1 보통 1전봉 참조시 high[1], var[1]....라고 하는데 HighD 등 일간 가격 참조시에는 [ ] 대신에 왜 ( )를 쓰나요? 제가 Array로 xxx=closeD-OpenD를 만들어 수식을 작성하니 예기치 못한 상황이 생겨서 며칠을 헤메다가 질문드립니다. 참고로 대신 Cybos로 문제없이 되던 것을 방식 그대로 적용하면서 Yt로 작성중입니다. 물론 HighD[1] 하지 아니하고 HighD(1)...로 했습니다. 그런데 문제발생 이유가 여기에 있지 않나해서 장황하게 설명합니다. 아니면 Array에 문제가 있나요? 예를 들겠습니다. 오늘 장이 시작되면(날이 바뀌면서) 최근 10일간의 일봉값의 이동평균을 구합니다. 그리고 그값은 오늘 하루종일 동일한 값을 유지하려합니다. 그런데 분봉이 바뀌면서 10일 평균값이 유지되는 것이 아니라 분봉이 바뀔 때마다 이 값이 바뀝니다. 이렇게 했습니다. Array: XXX[10](0); xxx[0]=closeD(1)-OpenD(1); xxx[1]=closeD(2)-OpenD(2); xxx[2]=closeD(3)-OpenD(3); xxx[3]=closeD(4)-OpenD(4); xxx[4]=closeD(5)-OpenD(5); xxx[5]=closeD(6)-OpenD(6); xxx[6]=closeD(7)-OpenD(7); xxx[7]=closeD(8)-OpenD(8); xxx[8]=closeD(9)-OpenD(9); xxx[9]=closeD(10)-OpenD(10); Var1=xxx[0] ; Var2=ma(xxx[1],3); Var3=ma(xxx[1],5); Var4=ma(xxx[1],10) ; 제가 원하는 것은 var1, var2, var3, var4 가 분봉 진행과 상관없이 하루종일 같은 값을 유지하는 것입니다. 그런데 var2의 예를 들면 분봉 3개가 진행될 때까지는 값이 분봉이 진행됨에 따라 변합니다. 다른 변수도 동일한 현상이 생깁니다. Cybos에서는 전혀 문제없이 제가 원하는 값이 리턴됩니다. 다른 점이 있다면 Cybos에서는 HighD 등에서도 동일하게 ()를 쓴다는 것입니다. 정확한 저의 질문내용을 이해하기 어려우시면 전화를 주십시요. 010-9274-3298 정말 이것 때문에 며찰 째 진도를 나가질 못해 홧병날 지경에 있습니다. 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-05-24 09:30:33

안녕하세요 예스스탁입니다. 대신 수식은 올리지 않으셔도 될것같습니다. ma(XXX[1],3)은 차트의 봉3개에서 XXX[1]값을 모아 평균하라는 내용입니다. (XXX[1][0]+XXX[1][1]+XXX[1][2])/3 (배열변수 1번방의 현재봉값+배열변수 1번방의 1봉전값+배열변수 1번방의 2봉전값)/3 당일 첫봉의 경우에는 (당일 첫봉의 XXX[1]+전일마지막봉 XXX1[1]+전일마지막봉 전봉의 XXX[1])/3 당일 두번째봉의 경우에는 (당일 두번째 봉의 XXX[1]+ 당일 첫봉의 XXX1[1]+전일마지막봉의 XXX[1])/3 당일 세번째봉의 경우에는 (당일 세번째 봉의 XXX[1]+ 당일 두번봉의 XXX1[1]+ 당일 첫번째 봉의 XXX[1])/3 이므로 당일 첫봉과 두번째 봉에서 그 값이 변경이 되는 것입니다. 분봉에서 일간시고저종가로 일간 평균등을 내실때는 아래와 같이 작성하시면 됩니다. N일전 기준 총 P일동안의 (일간종가-일간시가)의 평균 아래와 같이 간단히 작성해서 사용하시면 됩니다. ############################################ input : N(1),P1(3),P2(5),P3(10); var : sum1(0),cnt1(0),mav1(0); var : sum2(0),cnt2(0),mav2(0); var : sum3(0),cnt3(0),mav3(0); sum1 = 0; for cnt1 = 0 to P1-1{ sum1 = sum1+(DayClose(N+Cnt1)-Dayopen(N+Cnt1)); } mav1 = sum1/P1; sum2 = 0; for cnt2 = 0 to P2-1{ sum2 = sum2+(DayClose(N+Cnt2)-Dayopen(N+Cnt2)); } mav2 = sum2/P2; sum3 = 0; for cnt3 = 0 to P3-1{ sum3 = sum3+(DayClose(N+Cnt3)-Dayopen(N+Cnt3)); } mav3 = sum3/P3; plot1(mav1,"1일전~3일전"); plot2(mav2,"1일전~5일전"); plot3(mav3,"1일전~10일전"); ############################################# 예스랭귀지에서는 주종목에는 보통 dayopen/dayhigh/daylow/dayclose 참조데이터는 openD/highD/lowD/closeD 이 사용되며 dayclose와 closed는 쓰임새가 조금 다른 함수입니다. 아래 내용 참고하시기 바랍니다. dayopen/dayhigh/daylow/dayclose 함수는 일봉데이터에서 직접 값을 가져오는 함수이고 주종목의 값만 리턴합니다.data2(dayclose(1))과 같이 사용할수 없습니다. 차트의 첫봉의 날짜이전 99일치의 일봉값이 제공되므로 차트에 3일치의 데이터가 있어도 100일전의 일봉값을 가져와 사용할 수 있습니다. 갭보정 하지 않은 일봉에서 직접 값을 가져오므로 차트를 갭보정등을 하셨을때도 갭보정하지 않은 일봉데이터값을 리턴합니다. openD/highD/lowD/closeD 함수는 차트상의 데이터를 이용해 일간 시고저종가를 만들어 리턴하는 함수이며 차트의 날짜 이전의 값은 가져오지 못합니다. 차트를 갭보정하면 차트데이터가 변경되므로 갭보정된 값으로 일간 시고저종가를 리턴해서 사용하게 되며 주로 주종목에서는 사용되지 않고 data2(highD(1)),data3(highD(1))과 같이 참조데이터의 일간시고저종가를 표현할 때 사용됩니다. 예스랭귀지로 작성하시려면 위와 같은 내용으로 작성이 가능하고 대신의 랭귀지 체계를 정확히 이해하는 것은 아니므로 대신 수식은 올리지 않으셔도 될것 같습니다. 즐거운 하루되세요 > 쉬어가자 님이 쓴 글입니다. > 제목 : CloseD(0) > 질문1 보통 1전봉 참조시 high[1], var[1]....라고 하는데 HighD 등 일간 가격 참조시에는 [ ] 대신에 왜 ( )를 쓰나요? 제가 Array로 xxx=closeD-OpenD를 만들어 수식을 작성하니 예기치 못한 상황이 생겨서 며칠을 헤메다가 질문드립니다. 참고로 대신 Cybos로 문제없이 되던 것을 방식 그대로 적용하면서 Yt로 작성중입니다. 물론 HighD[1] 하지 아니하고 HighD(1)...로 했습니다. 그런데 문제발생 이유가 여기에 있지 않나해서 장황하게 설명합니다. 아니면 Array에 문제가 있나요? 예를 들겠습니다. 오늘 장이 시작되면(날이 바뀌면서) 최근 10일간의 일봉값의 이동평균을 구합니다. 그리고 그값은 오늘 하루종일 동일한 값을 유지하려합니다. 그런데 분봉이 바뀌면서 10일 평균값이 유지되는 것이 아니라 분봉이 바뀔 때마다 이 값이 바뀝니다. 이렇게 했습니다. Array: XXX[10](0); xxx[0]=closeD(1)-OpenD(1); xxx[1]=closeD(2)-OpenD(2); xxx[2]=closeD(3)-OpenD(3); xxx[3]=closeD(4)-OpenD(4); xxx[4]=closeD(5)-OpenD(5); xxx[5]=closeD(6)-OpenD(6); xxx[6]=closeD(7)-OpenD(7); xxx[7]=closeD(8)-OpenD(8); xxx[8]=closeD(9)-OpenD(9); xxx[9]=closeD(10)-OpenD(10); Var1=xxx[0] ; Var2=ma(xxx[1],3); Var3=ma(xxx[1],5); Var4=ma(xxx[1],10) ; 제가 원하는 것은 var1, var2, var3, var4 가 분봉 진행과 상관없이 하루종일 같은 값을 유지하는 것입니다. 그런데 var2의 예를 들면 분봉 3개가 진행될 때까지는 값이 분봉이 진행됨에 따라 변합니다. 다른 변수도 동일한 현상이 생깁니다. Cybos에서는 전혀 문제없이 제가 원하는 값이 리턴됩니다. 다른 점이 있다면 Cybos에서는 HighD 등에서도 동일하게 ()를 쓴다는 것입니다. 정확한 저의 질문내용을 이해하기 어려우시면 전화를 주십시요. 010-9274-3298 정말 이것 때문에 며찰 째 진도를 나가질 못해 홧병날 지경에 있습니다. 감사합니다.