커뮤니티

44256 관련질문

프로필 이미지
CSI300
2015-10-02 03:06:25
162
글번호 90875
답변완료
수고많으십니다 식을작성하면서 의문되는부분들에 대해서 다시 질문올립니다 A;if /*끝시간 > 시작시간*/ and stime >= 시작시간 /*and*/ stime < 끝시간 Then{ if HH[1] > 0 and LL[1] > 0 And C > (OO[0]+(HH[1]+LL[1]))/3 Then buy(); } B;if /*끝시간 < 시작시간*/ and (stime >= 시작시간 /*or*/ stime <= 끝시간) Then{ if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[1] > 0 and LL[1] > 0 And C > (OO[0]+(HH[1]+LL[1]))/3 Then buy(); } A식에서 /*끝시간 > 시작시간*/ B식에서/*끝시간 < 시작시간*/ 을사용하셧는데 주석과 비교설명부탁합니다 A식에서/*and*/ 사용하고 B식에서/*or*/ 을사용하셧는데 주석과 비교설명부탁합니다 진입식 조건에 if HH[1] > 0 and LL[1] > 0 을 사용하셧는데 주석과 비교설명부탁합니다 초보라 기초적인부분까지 설명이필요합니다 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-10-02 11:49:29

안녕하세요 예스스탁입니다. 1 if 끝시간 > 시작시간 and stime >= 시작시간 and stime < 끝시간 Then{ 과 if 끝시간 < 시작시간 and (stime >= 시작시간 or stime <= 끝시간) Then{ 위 부분은 하나의 식으로 끝시간이 당일인경우와 다음날인 경우 모두를 처리하기 위함입니다. 일반적으로 끝시간이 시작시간과 같은 날인 경우에는 stime >= 90000 and stime <= 233000 과 같이 작성합니다. 봉의 시간이 9시 이후 23시30분이전이라는 의미입니다. 근데 끝시간이 다음날 새벽인 경우에 stime >= 090000 and stime <= 10000 위와 같이 처리하면 봉의 시간이 9시보다 크고 1시보다는 작다라는 내용이 되어 조건이 맞을 수가 없습니다. 가령 어떤 값이 9보다 크고 1보다 작다라고 작성해 논리상 맞지 않게 작성한 것과 같습니다. stime >= 090000 or stime <= 10000 그러므로 or를 사용해서 봉의 시간이 9시이후이거나 새벽 1시 이전이라고 지정하는 것입니다. 2 진입식에 HH[1] > 0 and LL[1] > 0이 있는것은 전일 데이터가 있어 전일 지정한 시간대에 최고가와 최저가가 있다라는 내용입니다. 수식에 보시면 당일 값은 OO[0],HH[0],LL[0]에 저장되고 다음 시작봉에서 if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then{ OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 0 to 10{ OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } OO[0],HH[0],LL[0]에 저장된 값은 OO[1],HH[1],LL[1]로 OO[1],HH[1],LL[1]에 저장된 값은 OO[2],HH[2],LL[2]로 순차적으로 옮겨저장됩니다. 즉 배열변수 [0]번방에는 당일,[1]번방에는 전일,[2]번방에는 전전일 값이 저장되게 작성이 되어 있고 해당 수식에서 전일값이 필요하므로 차트상 전일데이터가 있어 계산이 된 상태에서 당일 진입하기 위함입니다. 변수의 기초값이 0이므로 전일 데이터가 없으면 (OO[0]+(HH[1]+LL[1]))/3이 0이고 종가는 당연히 0보다는 큰값이므로 해당 내용이 없으면 무조건 들어가게 됩니다. 즐거운 하루되세요 > CSI300 님이 쓴 글입니다. > 제목 : 44256 관련질문 > 수고많으십니다 식을작성하면서 의문되는부분들에 대해서 다시 질문올립니다 A;if /*끝시간 > 시작시간*/ and stime >= 시작시간 /*and*/ stime < 끝시간 Then{ if HH[1] > 0 and LL[1] > 0 And C > (OO[0]+(HH[1]+LL[1]))/3 Then buy(); } B;if /*끝시간 < 시작시간*/ and (stime >= 시작시간 /*or*/ stime <= 끝시간) Then{ if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[1] > 0 and LL[1] > 0 And C > (OO[0]+(HH[1]+LL[1]))/3 Then buy(); } A식에서 /*끝시간 > 시작시간*/ B식에서/*끝시간 < 시작시간*/ 을사용하셧는데 주석과 비교설명부탁합니다 A식에서/*and*/ 사용하고 B식에서/*or*/ 을사용하셧는데 주석과 비교설명부탁합니다 진입식 조건에 if HH[1] > 0 and LL[1] > 0 을 사용하셧는데 주석과 비교설명부탁합니다 초보라 기초적인부분까지 설명이필요합니다 감사합니다