커뮤니티

inquire about

프로필 이미지
흑수돌
2013-01-24 15:54:38
298
글번호 58591
답변완료
please check attaschment. always thank you.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-01-24 14:32:57

안녕하세요 예스스탁입니다. 답변드린 내용이 맞는지 모르겠습니다. 아래식 참고하시기 바랍니다. 1. Input:상승률(1),하락률(1); Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1), 기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(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(이중파동,"Zigzag",Iff(색깔==빨강,RED,GREEN)); 이중파동 = 0; } #==========================================# # 최근 고,저 갱신 #==========================================# If 기준고 <= H || 기준고 == 0 || IsNaN(기준고) == True Then { 기준고 = H; 기준고Bar = 0; } Else 기준고Bar = 기준고Bar + 1; If 기준저 >= L || 기준저 == 0 || IsNaN(기준저) == True Then { 기준저 = L; 기준저Bar = 0; } Else 기준저Bar = 기준저Bar + 1; #==========================================# # 추세방향 결정 #==========================================# If 기준고 * (1 - (하락률/100)) > H && 기준저 * (1 + (상승률/100)) < L Then { 추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락)); } Else If 기준고 * (1 - (하락률/100)) > H Then 추세 = 하락; Else If 기준저 * (1 + (상승률/100)) < L Then 추세 = 상승; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 추세[1] == 상승 && 추세 == 하락 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강; If 이중파동[1] > 0 Then 이중파동 = 고[1]; Else plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); } If 추세[1] == 하락 && 추세 == 하락 && 고[1] < 기준고 && 기준고 * (1 - (하락률/100)) > H Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } If 추세[1] == 하락 && 추세 == 상승 Then { For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; If 이중파동[1] > 0 Then 이중파동 = 저[1]; Else plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); } If 추세[1] == 상승 && 추세 == 상승 && 저[1] > 기준저 && 기준저 * (1 + (상승률/100)) < L Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강; plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } If 추세 == 양방향 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; 추세 = 추세[1]; If 추세[1] == 상승 Then { If 고[2] < 고[1] Then 색깔 = 빨강; Plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } Else { If 저[2] > 저[1] Then 색깔 = 파랑; Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } } #==========================================# # 마무리 #==========================================# If LastBarOnChart == 1 && 기준고Bar > 0 && 기준저Bar > 0 Then { If 추세 == 상승 Then { If 고[1] < 기준고 Then 색깔 = 빨강; Plot1(기준고,"Zigzag",Iff(색깔==빨강,RED,GREEN)); } Else { If 저[1] > 기준저 Then 색깔 = 파랑; Plot1(기준저,"Zigzag",Iff(색깔==빨강,RED,GREEN)); } } /* if 추세 == 상승 and 추세[1] != 상승 Then var1 = L[1]*(1+상승률/100); if 추세 == 하락 and 추세[1] != 하락 Then var1 = H[1]*(1-하락률/100); plot2(var1);*/ //작성자 : 수식지왕 input:left(5),right(5); var:jj(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0), ovr(0),반등(-1),반락(1),구분(0); array:hv[10](0),lv[10](0),hb[10](0),lb[10](0), r[8](0),fr[8](0); 구분 = 추세; r[0] = 0; r[1] = 0.236; r[2] = 0.382; r[3] = 0.50; r[4] = 0.618; r[5] = 0.764; r[6] = 1; r[7] = 1.618; #==============================================================================# # 변곡점 계산 #==============================================================================# //파동선 작성 설명은 자주 했으므로 생략 if highest(h[1],left) <= h then { prehv = h; prehb = 0; } else prehb = prehb + 1; if lowest(l[1],left) >= l then { prelv = l; prelb = 0; } else prelb = prelb + 1; for jj = 1 to 9 begin hb[jj] = hb[jj] + 1; lb[jj] = lb[jj] + 1; end; if prehb == right and highest(h,right) <= h[right] then { for jj = 9 downto 2 { hv[jj] = hv[jj-1]; hb[jj] = hb[jj-1]; } hv[1] = prehv; hb[1] = prehb; if lb[1] > hb[2] then { for jj = 9 downto 2 { lv[jj] = lv[jj-1]; lb[jj] = lb[jj-1]; } tmpv = 0; for jj = hb[1] + 1 to hb[2] - 1 { if tmpv > l[jj] or tmpv ==0 then { tmpv = l[jj]; tmpb = jj; } } lv[1] = tmpv; lb[1] = tmpb; } } if prelb == right and lowest(l,right) >= l[right] then { for jj = 9 downto 2 { lv[jj] = lv[jj-1]; lb[jj] = lb[jj-1]; } lv[1] = prelv; lb[1] = prelb; if hb[1] > lb[2] then { for jj = 9 downto 2 { hv[jj] = hv[jj-1]; hb[jj] = hb[jj-1]; } tmpv = 0; for jj = lb[1] + 1 to lb[2] - 1 { if tmpv < h[jj] or tmpv ==0 then { tmpv = h[jj]; tmpb = jj; } } hv[1] = tmpv; hb[1] = tmpb; } } #==============================================================================# # Fibonacci Retracements 계산 #==============================================================================# //반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음 if 구분 == 상승 then { if crossup(lb[1],hb[1]) then { for jj = 0 to 7 begin fr[jj] = hv[1] - (hv[1] - lv[1]) * r[jj]; end; ovr = 0; } if fr[6]>l then ovr = 1; plot2(fr[0],"상승0%"); plot3(fr[1],"상승23.6%"); plot4(fr[2],"상승38.2%"); plot5(fr[3],"상승50%"); plot6(fr[4],"상승61.8%"); plot7(fr[5],"상승76.4%"); plot8(fr[6],"상승100%"); } if 구분 == 하락 then { if crossup(hb[1],lb[1]) then { for jj = 0 to 7 begin fr[jj] = lv[1] + (hv[1] - lv[1]) * r[jj]; end; ovr = 0; } if fr[6]>l then ovr = 1; plot12(fr[0],"하락0%"); plot13(fr[1],"하락23.6%"); plot14(fr[2],"하락38.2%"); plot15(fr[3],"하락50%"); plot16(fr[4],"하락61.8%"); plot17(fr[5],"하락76.4%"); plot18(fr[6],"하락100%"); } 2. Input:상승률(1),하락률(1),N(5); Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1), 기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(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(이중파동,"Zigzag",Iff(색깔==빨강,RED,GREEN)); 이중파동 = 0; } #==========================================# # 최근 고,저 갱신 #==========================================# If 기준고 <= H || 기준고 == 0 || IsNaN(기준고) == True Then { 기준고 = H; 기준고Bar = 0; } Else 기준고Bar = 기준고Bar + 1; If 기준저 >= L || 기준저 == 0 || IsNaN(기준저) == True Then { 기준저 = L; 기준저Bar = 0; } Else 기준저Bar = 기준저Bar + 1; #==========================================# # 추세방향 결정 #==========================================# If 기준고 * (1 - (하락률/100)) > H && 기준저 * (1 + (상승률/100)) < L Then { 추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락)); } Else If 기준고 * (1 - (하락률/100)) > H Then 추세 = 하락; Else If 기준저 * (1 + (상승률/100)) < L Then 추세 = 상승; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 추세[1] == 상승 && 추세 == 하락 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강; If 이중파동[1] > 0 Then 이중파동 = 고[1]; Else plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); } If 추세[1] == 하락 && 추세 == 하락 && 고[1] < 기준고 && 기준고 * (1 - (하락률/100)) > H Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } If 추세[1] == 하락 && 추세 == 상승 Then { For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; If 이중파동[1] > 0 Then 이중파동 = 저[1]; Else plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); } If 추세[1] == 상승 && 추세 == 상승 && 저[1] > 기준저 && 기준저 * (1 + (상승률/100)) < L Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강; plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } If 추세 == 양방향 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; 추세 = 추세[1]; If 추세[1] == 상승 Then { If 고[2] < 고[1] Then 색깔 = 빨강; Plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } Else { If 저[2] > 저[1] Then 색깔 = 파랑; Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,GREEN)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } } #==========================================# # 마무리 #==========================================# If LastBarOnChart == 1 && 기준고Bar > 0 && 기준저Bar > 0 Then { If 추세 == 상승 Then { If 고[1] < 기준고 Then 색깔 = 빨강; Plot1(기준고,"Zigzag",Iff(색깔==빨강,RED,GREEN)); } Else { If 저[1] > 기준저 Then 색깔 = 파랑; Plot1(기준저,"Zigzag",Iff(색깔==빨강,RED,GREEN)); } } var : 고1(0),고2(0),저1(0),저2(0); if 추세 == 상승 and 추세 != 추세[1] Then{ value90 = index; 저1 = 저[1]; 저2 = 저1[1]; value91 = 저1+abs(고1-저2); value92 = 저1+abs(저1-저2); value93 = 고1+abs(고1-저2); value94 = 고1+abs(저1-고1); } if 추세 == 하락 and 추세 != 추세[1] Then{ value90 = index; 고1 = 고[1]; 고2 = 고1[1]; value91 = 고1-abs(고2-저1); value92 = 고1-abs(고1-고2); value93 = 저1-abs(고2-저1); value94 = 저1-abs(고1-저1); } if value90 > 0 and index < value90+N Then{ plot91(value91); plot92(value92); plot93(value93); plot94(value94); } 즐거운 하루되세요 > 흑수돌 님이 쓴 글입니다. > 제목 : inquire about > please check attaschment. always thank you.