커뮤니티

날짜 진입 필터 다시한번만 부탁드립니다.

프로필 이미지
중박주식
2017-01-16 23:19:20
135
글번호 105974
답변완료

첨부 이미지

계속해서 답변해 주셔서 감사합니다. 알려주신 수식을 테스트 중에 있는데, 이상한 상황이 벌어져서 질문을 남깁니다. 1. 기본조건 data1 => 연결선물 1분봉 data2 => 다우산업 일봉 2. 수식 if data1(DayOfWeek(sdate)) == 1 and data2(DayOfWeek(date)) == 6 Then T = 1; else if data1(DayOfWeek(sdate)) >= 2 and data1(DayOfWeek(sdate)) == data2(DayOfWeek(date)) Then T = 1; Else T = 0; if data1(sdate != sdate[1]) Then d1 = sdate[1]; if data1(DayOfWeek(D1)) == 1 and data2(DayOfWeek(date[1])) == 6 Then P = 1; else if data1(DayOfWeek(D1)) >= 2 and data1(DayOfWeek(D1)) == data2(DayOfWeek(date[1])) Then P = 1; Else P = 0; 위와 같이, 당일 기준으로 전일 다우가 열리지 않았으면 T=0, 아니면 T=1을 저장 전일 기준으로 전일 다우가 열리지 않았으면, P=0, 아니면 P=1을 저장하도록 합니다. 그리고 이를 테스트해보기 위해서 아래와 같이 플롯팅을 해보았습니다. (겹쳐서 표현되는걸 방지하지 위해 편의상, P는 -1을 곱했습니다.) plot1(T, "T", RED); plot2(P*-1, "P", BLUE); 그런데 이상한 결과가 곳곳에 나타납니다. 예를 들어, 아래의 그림은 9월 6일의 결과입니다. (아래에서 두번째 줄이 위의 수식에 대한 플로팅 결과입니다.) - 하루 전날 기준으로 산정하는 조건이니, 9월 5일을 보면 - 국내장은 월요일이므로 1로 입력되고, 다우는 토요일날 장이 끝나는 것으로 되어 6으로 입력됩니다. - 그러면 위에 제시한 수식에 따라서 P=1로 저장이 되어야 합니다. - 그런데, 아래의 그림에서 보는 바와 같이 p=0으로 나타납니다. (파란색선) 왜 이런 현상이 나타나는지 알수 있을런지요`? 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-01-17 11:23:53

안녕하세요 예스스탁입니다. 데이터는 최근 완성봉 순으로 [0],[1]순으로 값을 가져오게 됩니다. 참조데이터가 해외데이터이면 [0]이 가장 최근봉이고 전일봉입니다. 현재식으로는 주종목 전일, 참조데이터 전전일 기준입니다. 수식에는 직전봉을 의미하시는것 같아 [1]로 처리해 드렸는데 단순 전일이면 data2(sdate)가 맞습니다. plot1(data2(DayOfWeek(date))); plot2(data2(DayOfWeek(date[1]))); 위 지표 적용해서 요일값 확인하시기 하셔서 이전값 처리하시기 바랍니다. 수식은 data1은 전일, data2은 최근봉(전일봉)으로 수정해 드립니다. var : T(0),P(0),D1(0); if data1(DayOfWeek(sdate)) == 1 and data2(DayOfWeek(date)) == 6 Then T = 1; else if data1(DayOfWeek(sdate)) >= 2 and data1(DayOfWeek(sdate)) == data2(DayOfWeek(date)) Then T = 1; Else T = 0; if data1(sdate != sdate[1]) Then d1 = sdate[1]; if data1(DayOfWeek(D1)) == 1 and data2(DayOfWeek(date)) == 6 Then P = 1; else if data1(DayOfWeek(D1)) >= 2 and data1(DayOfWeek(D1)) == data2(DayOfWeek(date)) Then P = 1; Else P = 0; plot1(T); plot2(P); 즐거운 하루되세요 > 중박주식 님이 쓴 글입니다. > 제목 : 날짜 진입 필터 다시한번만 부탁드립니다. > 계속해서 답변해 주셔서 감사합니다. 알려주신 수식을 테스트 중에 있는데, 이상한 상황이 벌어져서 질문을 남깁니다. 1. 기본조건 data1 => 연결선물 1분봉 data2 => 다우산업 일봉 2. 수식 if data1(DayOfWeek(sdate)) == 1 and data2(DayOfWeek(date)) == 6 Then T = 1; else if data1(DayOfWeek(sdate)) >= 2 and data1(DayOfWeek(sdate)) == data2(DayOfWeek(date)) Then T = 1; Else T = 0; if data1(sdate != sdate[1]) Then d1 = sdate[1]; if data1(DayOfWeek(D1)) == 1 and data2(DayOfWeek(date[1])) == 6 Then P = 1; else if data1(DayOfWeek(D1)) >= 2 and data1(DayOfWeek(D1)) == data2(DayOfWeek(date[1])) Then P = 1; Else P = 0; 위와 같이, 당일 기준으로 전일 다우가 열리지 않았으면 T=0, 아니면 T=1을 저장 전일 기준으로 전일 다우가 열리지 않았으면, P=0, 아니면 P=1을 저장하도록 합니다. 그리고 이를 테스트해보기 위해서 아래와 같이 플롯팅을 해보았습니다. (겹쳐서 표현되는걸 방지하지 위해 편의상, P는 -1을 곱했습니다.) plot1(T, "T", RED); plot2(P*-1, "P", BLUE); 그런데 이상한 결과가 곳곳에 나타납니다. 예를 들어, 아래의 그림은 9월 6일의 결과입니다. (아래에서 두번째 줄이 위의 수식에 대한 플로팅 결과입니다.) - 하루 전날 기준으로 산정하는 조건이니, 9월 5일을 보면 - 국내장은 월요일이므로 1로 입력되고, 다우는 토요일날 장이 끝나는 것으로 되어 6으로 입력됩니다. - 그러면 위에 제시한 수식에 따라서 P=1로 저장이 되어야 합니다. - 그런데, 아래의 그림에서 보는 바와 같이 p=0으로 나타납니다. (파란색선) 왜 이런 현상이 나타나는지 알수 있을런지요`? 감사합니다.