커뮤니티

도움을 부탁드리겠습니다.

프로필 이미지
지스카드
2022-02-04 01:28:09
842
글번호 155995
답변완료
안녕하세요 인터넷에서 파동선을 그려주는 지표를 보았습니다. 파동선의 고점과 저점을 배열 고[], 저[]로 사용하고 있는데요 다음과 같이 <고저폭의 증감>을 별개의 지표로 표현하고 싶은데 어떻게 할 수 없을까요.. 고점에서 저점을 뺀 고저폭을 구합니다. 파동선의 고저폭 고[3]-저[3] 고[2]-저[2] 고[1]-저[1] 요렇게 가장 최근 3번의 고저폭만 보았을때 그 고저폭이 이전 고저폭 보다 줄어드는가, 점점 늘어나는가...<고저폭의 증감>을 수치로 나타내고 싶습니다. 딱 가장최근 3번(혹은4번) 값에서 고저폭 값이 더 확대되면 (예를들어)+1, 줄어들면 -1 그래서 최근 연속으로 고저폭이 3번 확대되면 3(큰값), 3번다 줄어들고 있다면 점점 작은값 0(이나 1)..이런식으로..나타나는 지표를 만들어 주실수 있을까요 퇴근하고 잠못자고 여태 고민했는데 ㅠㅜ...못만들겠습니다.. 부탁드리겠습니다.. ------------ #==========================================# # 지표명 : Swing파동선 # 작성자 : 수식지왕 # 블로그 : http://yahoosir.blog.me #==========================================# Input:left(5),right(5); Var:j(0),k(0),이중파동(0),구분(0),고점(100),저점(-100); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } #==========================================# # 이중파동 처리 #==========================================# If 이중파동 > 0 Then { Plot1(이중파동); 이중파동 = 0; } #==========================================# # 변곡점 정의 #==========================================# 구분 = 0; If Highest(H,left)[right+1] <= H[right] && H[right] > Highest(H,right) && Lowest(L,left)[right+1] >= L[right] && L[right] < Lowest(L,right) Then { 구분 = Iff(고Bar[1]>저Bar[1],고점,저점); } Else If Highest(H,left)[right+1] <= H[right] && H[right] > Highest(H,right) Then 구분 = 고점; Else If Lowest(L,left)[right+1] >= L[right] && L[right] < Lowest(L,right) Then 구분 = 저점; #==========================================# # 전고점(Peak) 계산 #==========================================# If 구분 == 고점 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = H[right]; 고Bar[1] = right; If 저Bar[1] > 고Bar[2] Then { For j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } k = right + 1; For j = right + 2 To 고Bar[2]-1 { If L[k] > L[j] Then k = j; } 저[1] = L[k]; 저Bar[1] = k; Plot1(저[1]); 이중파동 = 고[1]; } If 이중파동 == 0 Then Plot1(고[1]); } #==========================================# # 전저점(Trough) 계산 #==========================================# If 구분 == 저점 Then { For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = L[right]; 저Bar[1] = right; If 고Bar[1] > 저Bar[2] Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } k = right + 1; For j = right + 2 To 저Bar[2]-1 { If H[k] < H[j] Then k = j; } 고[1] = H[k]; 고Bar[1] = k; Plot1(고[1]); 이중파동 = 저[1]; } If 이중파동 == 0 Then Plot1(저[1]); } #==========================================# # 마무리 #==========================================# If LastBarOnChart == 1 && 고Bar[1] != right && 저Bar[1] != right Then { If 고Bar[1] > 저Bar[1] Then plot1(Highest(H,저Bar[1])); Else plot1(Lowest(L,고Bar[1])); } [출처] Swing 파동선(파일 첨부) 최종수정일:2011.03.03 |작성자 수식지왕
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-04 15:13:59

안녕하세요 예스스탁입니다. 고[3]-저[3] 고[2]-저[2] 고[1]-저[1] 위와같이 올려주신 내용으로 보아 최근 상승파동 N개를 비교하는 내용같습니다. 상승파동이 직전상승파동보다 크면 1, 작으면 -1로 합산되게 작성해 드립니다. #==========================================# # 지표명 : Swing파동선 # 작성자 : 수식지왕 # 블로그 : http://yahoosir.blog.me #==========================================# Input:left(5),right(5),N(3); Var:j(0),k(0),이중파동(0),구분(0),고점(100),저점(-100),cnt(0),count(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } #==========================================# # 이중파동 처리 #==========================================# If 이중파동 > 0 Then { # Plot1(이중파동); 이중파동 = 0; } #==========================================# # 변곡점 정의 #==========================================# 구분 = 0; If Highest(H,left)[right+1] <= H[right] && H[right] > Highest(H,right) && Lowest(L,left)[right+1] >= L[right] && L[right] < Lowest(L,right) Then { 구분 = Iff(고Bar[1]>저Bar[1],고점,저점); } Else If Highest(H,left)[right+1] <= H[right] && H[right] > Highest(H,right) Then 구분 = 고점; Else If Lowest(L,left)[right+1] >= L[right] && L[right] < Lowest(L,right) Then 구분 = 저점; #==========================================# # 전고점(Peak) 계산 #==========================================# If 구분 == 고점 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = H[right]; 고Bar[1] = right; If 저Bar[1] > 고Bar[2] Then { For j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } k = right + 1; For j = right + 2 To 고Bar[2]-1 { If L[k] > L[j] Then k = j; } 저[1] = L[k]; 저Bar[1] = k; #Plot1(저[1]); 이중파동 = 고[1]; } #If 이중파동 == 0 Then Plot1(고[1]); } #==========================================# # 전저점(Trough) 계산 #==========================================# If 구분 == 저점 Then { For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = L[right]; 저Bar[1] = right; If 고Bar[1] > 저Bar[2] Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } k = right + 1; For j = right + 2 To 저Bar[2]-1 { If H[k] < H[j] Then k = j; } 고[1] = H[k]; 고Bar[1] = k; #Plot1(고[1]); 이중파동 = 저[1]; } #If 이중파동 == 0 Then Plot1(저[1]); } if 고Bar[1] > 저Bar[1] Then { count = 0; 고[0] = Highest(H,저Bar[1]); For cnt = N-1 downto 0 { if LastBarOnChart == 1 Then MessageLog("%.2f %.2f %.2f",고[cnt],저[cnt+1],고[cnt]-저[cnt+1]); if 고[cnt]-저[cnt+1] > 고[cnt+1]-저[cnt+1+1] Then count = count+1; if 고[cnt]-저[cnt+1] < 고[cnt+1]-저[cnt+1+1] Then count = count-1; } } Plot1(count); 즐거운 하루되세요 > 지스카드 님이 쓴 글입니다. > 제목 : 도움을 부탁드리겠습니다. > 안녕하세요 인터넷에서 파동선을 그려주는 지표를 보았습니다. 파동선의 고점과 저점을 배열 고[], 저[]로 사용하고 있는데요 다음과 같이 <고저폭의 증감>을 별개의 지표로 표현하고 싶은데 어떻게 할 수 없을까요.. 고점에서 저점을 뺀 고저폭을 구합니다. 파동선의 고저폭 고[3]-저[3] 고[2]-저[2] 고[1]-저[1] 요렇게 가장 최근 3번의 고저폭만 보았을때 그 고저폭이 이전 고저폭 보다 줄어드는가, 점점 늘어나는가...<고저폭의 증감>을 수치로 나타내고 싶습니다. 딱 가장최근 3번(혹은4번) 값에서 고저폭 값이 더 확대되면 (예를들어)+1, 줄어들면 -1 그래서 최근 연속으로 고저폭이 3번 확대되면 3(큰값), 3번다 줄어들고 있다면 점점 작은값 0(이나 1)..이런식으로..나타나는 지표를 만들어 주실수 있을까요 퇴근하고 잠못자고 여태 고민했는데 ㅠㅜ...못만들겠습니다.. 부탁드리겠습니다.. ------------ #==========================================# # 지표명 : Swing파동선 # 작성자 : 수식지왕 # 블로그 : http://yahoosir.blog.me #==========================================# Input:left(5),right(5); Var:j(0),k(0),이중파동(0),구분(0),고점(100),저점(-100); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } #==========================================# # 이중파동 처리 #==========================================# If 이중파동 > 0 Then { Plot1(이중파동); 이중파동 = 0; } #==========================================# # 변곡점 정의 #==========================================# 구분 = 0; If Highest(H,left)[right+1] <= H[right] && H[right] > Highest(H,right) && Lowest(L,left)[right+1] >= L[right] && L[right] < Lowest(L,right) Then { 구분 = Iff(고Bar[1]>저Bar[1],고점,저점); } Else If Highest(H,left)[right+1] <= H[right] && H[right] > Highest(H,right) Then 구분 = 고점; Else If Lowest(L,left)[right+1] >= L[right] && L[right] < Lowest(L,right) Then 구분 = 저점; #==========================================# # 전고점(Peak) 계산 #==========================================# If 구분 == 고점 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = H[right]; 고Bar[1] = right; If 저Bar[1] > 고Bar[2] Then { For j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } k = right + 1; For j = right + 2 To 고Bar[2]-1 { If L[k] > L[j] Then k = j; } 저[1] = L[k]; 저Bar[1] = k; Plot1(저[1]); 이중파동 = 고[1]; } If 이중파동 == 0 Then Plot1(고[1]); } #==========================================# # 전저점(Trough) 계산 #==========================================# If 구분 == 저점 Then { For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = L[right]; 저Bar[1] = right; If 고Bar[1] > 저Bar[2] Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } k = right + 1; For j = right + 2 To 저Bar[2]-1 { If H[k] < H[j] Then k = j; } 고[1] = H[k]; 고Bar[1] = k; Plot1(고[1]); 이중파동 = 저[1]; } If 이중파동 == 0 Then Plot1(저[1]); } #==========================================# # 마무리 #==========================================# If LastBarOnChart == 1 && 고Bar[1] != right && 저Bar[1] != right Then { If 고Bar[1] > 저Bar[1] Then plot1(Highest(H,저Bar[1])); Else plot1(Lowest(L,고Bar[1])); } [출처] Swing 파동선(파일 첨부) 최종수정일:2011.03.03 |작성자 수식지왕