커뮤니티

수식문의

프로필 이미지
백진강
2012-08-27 08:42:36
333
글번호 54092
답변완료
아래 지표수식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔 input:n(11); Var:CC(0),상승(100),하락(-100),추세(0),j(0),상승률(0),하락률(0), 기준고(0),기준저(0),zz(0),파동번호(0),파동1번고점(0),파동1번저점(0), 파동3번고점(0),파동3번저점(0),파동5번고점(0),파동5번저점(0), 파동연장(0),파동변화(0); Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0); CC = data1(C); 상승률 = 1 + (n/100); 하락률 = 1 - (n/100); for j = 1 to 9 { 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #---------------------------------------------------------# # ZIGZAG 파동 계산 #---------------------------------------------------------# if 기준고 <= CC or 기준고 == 0 then 기준고 = CC; if 기준저 >= CC or 기준저 == 0 then 기준저 = CC; if 기준저[1] * 상승률 > CC[1] and 기준저[1] * 상승률 <= CC then 추세 = 상승; else if 기준고[1] * 하락률 < CC[1] and 기준고[1] * 하락률 >= CC then 추세 = 하락; if 추세[1] == 상승 and 추세 == 하락 then { for j = 8 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; ZZ = 기준고; 고Bar[1] = 0; 기준고 = CC; 기준저 = CC; } else if 추세[1] == 하락 and 추세 == 상승 then { for j = 8 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; ZZ = 기준저; 저Bar[1] = 0; 기준저 = CC; 기준고 = CC; } else if 추세[1] == 하락 and 추세 == 하락 then { if 기준고[1] * 하락률 <= CC[1] and 기준고[1] * 하락률 > CC and 고[1] < 기준고 then { 고[1] = 기준고; ZZ = 기준고; 고Bar[1] = 0; 기준고 = CC; } } else if 추세[1] == 상승 and 추세 == 상승 then { if 기준저[1] * 상승률 >= CC[1] and 기준저[1] * 상승률 < CC and 저[1] > 기준저 then { 저[1] = 기준저; ZZ = 기준저; 저Bar[1] = 0; 기준저 = CC; } } if ZZ[1] != ZZ then { #---------------------------------------------------------# # 상승전환 #---------------------------------------------------------# if 추세 == 상승 then { if 파동번호 == 0 Then { 파동번호 = 1; 파동1번저점 = 저[1]; } if 파동번호 == 2 Then { 파동번호 = 3; 파동3번저점 = 저[1]; } if 파동번호 == 2.3 Then { if 저[2] > 저[1] Then { 파동번호 = 3; 파동3번저점 = 저[1]; } } if 파동번호 == 3.2 Then { 파동번호 = 3.3; } if 파동번호 == 3.32 Then { 파동번호 = 3.33; } if 파동번호 == 3.34 Then { 파동번호 = 3.35; } if 파동번호 == 3.4 Then { 파동번호 = 3.5; } if 파동번호 == 4 Then { 파동번호 = 5; 파동5번저점 = 저[1]; } if 파동번호 == 5.4 Then { 파동번호 = 5.5; } if 파동번호 == -1 Then { 파동번호 = -2; } if 파동번호 == -3 Then { 파동번호 = 1; 파동1번저점 = 저[1]; 파동연장 = 0; 파동변화 = 0; } } #---------------------------------------------------------# # 하락전환 #---------------------------------------------------------# else { if 파동번호 == 1 or 파동번호 == 1.5 Then { 파동번호 = 2; 파동1번고점 = 고[1]; } if 파동번호 == 3 Then { if 파동1번고점 >= 고[1] Then { if 파동변화 != 2 then { 파동번호 = 2.3; 파동변화 = 2; } else { 파동번호 = 3.2; 파동연장 = 3; } } Else { 파동번호 = 4; 파동3번고점 = 고[1]; } } if 파동번호 == 3.3 Then { 파동번호 = 3.4; } if 파동번호 == 3.33 Then { 파동번호 = 3.34; } if 파동번호 == 3.35 Then { 파동번호 = 3.4; } if 파동번호 == 3.5 Then { 파동번호 = 4; 파동3번고점 = 고[1]; } if 파동번호 == 5 Then { 파동번호 = -1; 파동5번고점 = 고[1]; } if 파동번호 == 5.3 Then { 파동번호 = 5.4; } if 파동번호 == 5.5 Then { 파동번호 = -1; 파동5번고점 = 고[1]; } if 파동번호 == -2 Then { 파동번호 = -3; } } } #---------------------------------------------------------# # 진행중 #---------------------------------------------------------# if 파동번호 == 2 then { if 파동1번저점 > CC Then { 파동번호 = -3; } } else if 파동번호 == 2.3 then { if 파동1번고점 < CC Then { 파동번호 = 3; 파동3번저점 = 저[1]; } else if 파동1번저점 > CC Then { 파동번호 = -3; } } else if 파동번호 == 3.2 Then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 저[1] > CC Then { 파동번호 = 2; 파동1번고점 = 고[1]; } } else if 파동번호 == 3.32 Then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 저[1] > CC Then { 파동번호 = 3.2; } } else if 파동번호 == 3.4 Then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 고[2] > CC Then { 파동번호 = 3.32; } } else if 파동번호 == 4 then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 파동1번고점 > CC Then { 파동번호 = 3.2; 파동연장 = 3; } } else if 파동번호 == 5 Then { if (파동1번고점 - 파동1번저점) > (파동3번고점 - 파동3번저점) and (CC - 파동5번저점) > (파동3번고점 - 파동3번저점) Then { 파동번호 = 3.3; 파동연장 = 3; } } else if 파동번호 == 5.4 then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 고[2] > CC Then { 파동번호 = -1; } } else if 파동번호 == -1 then { if 파동연장 == 0 and 파동3번저점 > CC Then { 파동번호 = 2; 파동1번고점 = 고[1]; 파동연장 = 1; } } else if 파동번호 == -2 then { if 파동연장 == 0 and 고[1] < CC Then { 파동번호 = 5.3; 파동연장 = 5; } } #---------------------------------------------------------# # 지표식 #---------------------------------------------------------# Plot1(파동번호,"파동번호",iff(int(파동번호)==1,RED, iff(int(파동번호)==2,BLUE, iff(int(파동번호)==3,MAGENTA, iff(int(파동번호)==4,LBLUE, iff(int(파동번호)==5,PINK, iff(int(파동번호)==-1,CYAN, iff(int(파동번호)==-2,GREEN,GRAY )))))))); //막대그래프 식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-08-27 14:18:54

안녕하세요 예스스탁입니다. 식상에 차트의 주기의 제한이 없습니다. 그대로 분봉에서 사용할 수 있는 지표식입니다. 실시간 차트는 최대 5000봉 까지만 과거데이터가 조회되므로 이 이기간안에 n으로 지정한 등락이 없으면 지표의 값이 나오지 않습니다. n값 조절하시면 분봉에서 지표 출력됩니다. 즐거운 하루되세요 > 백진강 님이 쓴 글입니다. > 제목 : 수식문의 > 아래 지표수식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔 input:n(11); Var:CC(0),상승(100),하락(-100),추세(0),j(0),상승률(0),하락률(0), 기준고(0),기준저(0),zz(0),파동번호(0),파동1번고점(0),파동1번저점(0), 파동3번고점(0),파동3번저점(0),파동5번고점(0),파동5번저점(0), 파동연장(0),파동변화(0); Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0); CC = data1(C); 상승률 = 1 + (n/100); 하락률 = 1 - (n/100); for j = 1 to 9 { 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #---------------------------------------------------------# # ZIGZAG 파동 계산 #---------------------------------------------------------# if 기준고 <= CC or 기준고 == 0 then 기준고 = CC; if 기준저 >= CC or 기준저 == 0 then 기준저 = CC; if 기준저[1] * 상승률 > CC[1] and 기준저[1] * 상승률 <= CC then 추세 = 상승; else if 기준고[1] * 하락률 < CC[1] and 기준고[1] * 하락률 >= CC then 추세 = 하락; if 추세[1] == 상승 and 추세 == 하락 then { for j = 8 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; ZZ = 기준고; 고Bar[1] = 0; 기준고 = CC; 기준저 = CC; } else if 추세[1] == 하락 and 추세 == 상승 then { for j = 8 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; ZZ = 기준저; 저Bar[1] = 0; 기준저 = CC; 기준고 = CC; } else if 추세[1] == 하락 and 추세 == 하락 then { if 기준고[1] * 하락률 <= CC[1] and 기준고[1] * 하락률 > CC and 고[1] < 기준고 then { 고[1] = 기준고; ZZ = 기준고; 고Bar[1] = 0; 기준고 = CC; } } else if 추세[1] == 상승 and 추세 == 상승 then { if 기준저[1] * 상승률 >= CC[1] and 기준저[1] * 상승률 < CC and 저[1] > 기준저 then { 저[1] = 기준저; ZZ = 기준저; 저Bar[1] = 0; 기준저 = CC; } } if ZZ[1] != ZZ then { #---------------------------------------------------------# # 상승전환 #---------------------------------------------------------# if 추세 == 상승 then { if 파동번호 == 0 Then { 파동번호 = 1; 파동1번저점 = 저[1]; } if 파동번호 == 2 Then { 파동번호 = 3; 파동3번저점 = 저[1]; } if 파동번호 == 2.3 Then { if 저[2] > 저[1] Then { 파동번호 = 3; 파동3번저점 = 저[1]; } } if 파동번호 == 3.2 Then { 파동번호 = 3.3; } if 파동번호 == 3.32 Then { 파동번호 = 3.33; } if 파동번호 == 3.34 Then { 파동번호 = 3.35; } if 파동번호 == 3.4 Then { 파동번호 = 3.5; } if 파동번호 == 4 Then { 파동번호 = 5; 파동5번저점 = 저[1]; } if 파동번호 == 5.4 Then { 파동번호 = 5.5; } if 파동번호 == -1 Then { 파동번호 = -2; } if 파동번호 == -3 Then { 파동번호 = 1; 파동1번저점 = 저[1]; 파동연장 = 0; 파동변화 = 0; } } #---------------------------------------------------------# # 하락전환 #---------------------------------------------------------# else { if 파동번호 == 1 or 파동번호 == 1.5 Then { 파동번호 = 2; 파동1번고점 = 고[1]; } if 파동번호 == 3 Then { if 파동1번고점 >= 고[1] Then { if 파동변화 != 2 then { 파동번호 = 2.3; 파동변화 = 2; } else { 파동번호 = 3.2; 파동연장 = 3; } } Else { 파동번호 = 4; 파동3번고점 = 고[1]; } } if 파동번호 == 3.3 Then { 파동번호 = 3.4; } if 파동번호 == 3.33 Then { 파동번호 = 3.34; } if 파동번호 == 3.35 Then { 파동번호 = 3.4; } if 파동번호 == 3.5 Then { 파동번호 = 4; 파동3번고점 = 고[1]; } if 파동번호 == 5 Then { 파동번호 = -1; 파동5번고점 = 고[1]; } if 파동번호 == 5.3 Then { 파동번호 = 5.4; } if 파동번호 == 5.5 Then { 파동번호 = -1; 파동5번고점 = 고[1]; } if 파동번호 == -2 Then { 파동번호 = -3; } } } #---------------------------------------------------------# # 진행중 #---------------------------------------------------------# if 파동번호 == 2 then { if 파동1번저점 > CC Then { 파동번호 = -3; } } else if 파동번호 == 2.3 then { if 파동1번고점 < CC Then { 파동번호 = 3; 파동3번저점 = 저[1]; } else if 파동1번저점 > CC Then { 파동번호 = -3; } } else if 파동번호 == 3.2 Then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 저[1] > CC Then { 파동번호 = 2; 파동1번고점 = 고[1]; } } else if 파동번호 == 3.32 Then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 저[1] > CC Then { 파동번호 = 3.2; } } else if 파동번호 == 3.4 Then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 고[2] > CC Then { 파동번호 = 3.32; } } else if 파동번호 == 4 then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 파동1번고점 > CC Then { 파동번호 = 3.2; 파동연장 = 3; } } else if 파동번호 == 5 Then { if (파동1번고점 - 파동1번저점) > (파동3번고점 - 파동3번저점) and (CC - 파동5번저점) > (파동3번고점 - 파동3번저점) Then { 파동번호 = 3.3; 파동연장 = 3; } } else if 파동번호 == 5.4 then { if 파동1번저점 > CC Then { 파동번호 = -3; } else if 고[2] > CC Then { 파동번호 = -1; } } else if 파동번호 == -1 then { if 파동연장 == 0 and 파동3번저점 > CC Then { 파동번호 = 2; 파동1번고점 = 고[1]; 파동연장 = 1; } } else if 파동번호 == -2 then { if 파동연장 == 0 and 고[1] < CC Then { 파동번호 = 5.3; 파동연장 = 5; } } #---------------------------------------------------------# # 지표식 #---------------------------------------------------------# Plot1(파동번호,"파동번호",iff(int(파동번호)==1,RED, iff(int(파동번호)==2,BLUE, iff(int(파동번호)==3,MAGENTA, iff(int(파동번호)==4,LBLUE, iff(int(파동번호)==5,PINK, iff(int(파동번호)==-1,CYAN, iff(int(파동번호)==-2,GREEN,GRAY )))))))); //막대그래프 식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔