커뮤니티

시스템식 설명 부탁드립니다.

프로필 이미지
양치기
2017-08-22 08:50:50
110
글번호 112134
답변완료
항상 도움 주셔서 감사합니다. 타주기이용한 시스템식인데요. 제가 초보라 잘 이해가 안되어서요. 죄송한데 설명과 주석좀 부탁드립니다. 그리고 타주기를 이용할 경우 MACD같은 지표는 어떻게 만드는지도 설명 부탁드립니다. 감사합니다. input : Atime1(30),P(20); var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0),S1(0),D1(0),TM(0),TF1(0); Array : C1[50](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF1 = TM%Atime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then { for cnt = 1 to 49 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P] > 0 then{ sum1 = 0; sum2 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; sum2 = sum2+C1[cnt+1]; } mav1 = sum1/P; mav2 = sum2/P; if mav1 > 0 and mav2 > 0 then{ if C > mav1 and C1[1] < mav2 Then buy(); if C < mav1 and C1[1] > mav2 Then sell(); } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-08-23 15:43:46

안녕하세요 예스스탁입니다. 1 input : Atime1(30),P(20); var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0),S1(0),D1(0),TM(0),TF1(0); Array : C1[50](0); #영업일 변경 if Bdate != Bdate[1] Then{ #변경시점의 분수(밤0시이후 경과된 분) S1 = TimeToMinutes(stime); #변경시점 날짜 D1 = sdate; } #차트상 1번이상 영업일 변경이 있고 if D1 > 0 then{ #영업일변경일과 같은날이면 현재분수-영업일변경시점의 분수를 뺌 #엽업일변경일과 다른날이면 현재분수에 1440분을 더하고 영업일 변경시점의 분수를 뺌 #해외선물이나 국내선물주야간복합장으로 거래하는 경우 #0시 기준이 아닌 7시나 9시 기준으로 24시간 거래가 되므로 #타주기 계산시에는 해당 시간을 기준으로 24시간을 파악을 하고 #시간을 나눠야 하므로 아래와 같은 계산값이 필요합니다. if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; #TM을 지정한 분단위로 나누어 나머지 값을 취함 #5분봉에서 30분봉이면 0->5->10->15->20->25->0->5->10->15->20->25..반복 #25->0 와 같이 나머지 값이 커지다 작아지면 새로운 30분봉이 시작하는 봉을 나타냅니다 TF1 = TM%Atime1; #영업일 변경시점이거나 TF값이 커지다 작아지면(새로운 타주기봉 발생) if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then { #C1[0]에 새로운 종가를 넣어야 하므로 #기준배열값을 다음배열방으로 순차적으로 넘감 for cnt = 1 to 49 { C1[cnt] = C1[cnt-1][1]; } } #0번방에 새로운 종가저장 C1[0] = C; #이평계산할만큼 C1배열이 준비되고 if C1[P] > 0 then{ #for문으로 c1의 배열방에서 값가지고와 누적하고 #평균내어 이평값계산 sum1 = 0; sum2 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; sum2 = sum2+C1[cnt+1]; } mav1 = sum1/P;#타주기 현재봉기준 이평 mav2 = sum2/P;#타주기 전봉기준 이평 #모두 0이상이고 if mav1 > 0 and mav2 > 0 then{ #상향돌파 if C > mav1 and C1[1] < mav2 Then buy(); #하향이탈 if C < mav1 and C1[1] > mav2 Then sell(); } } } 2 input : Atime1(30),P(20); Input : Period1(12),Period2(26),Period3(9); Var : Ep1(0), JISU1(0), idx(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Var : Ep3(0), JISU3(0), PreMACDSIG(0); var : MACDVal(0),MACDSig(0),S1(0),D1(0),TM(0),TF1(0); Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); Ep3 = 2/(Period3+1); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF1 = TM%Atime1; if bdate != bdate[1] or (TF1 < TF1[1] and bdate == bdate[1]) Then{ idx = idx + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMACDSIG = MACDSIG[1]; } if idx <= 1 then { JISU1 = C; JISU2 = C; MACDVal = JiSu1-Jisu2; MACDSIG = Jisu1-jisu2; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3); } plot1(MACDVal); plot2(MACDsig); PlotBaseLine1(0); } 즐거운 하루되세요 > 양치기 님이 쓴 글입니다. > 제목 : 시스템식 설명 부탁드립니다. > 항상 도움 주셔서 감사합니다. 타주기이용한 시스템식인데요. 제가 초보라 잘 이해가 안되어서요. 죄송한데 설명과 주석좀 부탁드립니다. 그리고 타주기를 이용할 경우 MACD같은 지표는 어떻게 만드는지도 설명 부탁드립니다. 감사합니다. input : Atime1(30),P(20); var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0),S1(0),D1(0),TM(0),TF1(0); Array : C1[50](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF1 = TM%Atime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then { for cnt = 1 to 49 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P] > 0 then{ sum1 = 0; sum2 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; sum2 = sum2+C1[cnt+1]; } mav1 = sum1/P; mav2 = sum2/P; if mav1 > 0 and mav2 > 0 then{ if C > mav1 and C1[1] < mav2 Then buy(); if C < mav1 and C1[1] > mav2 Then sell(); } } }