커뮤니티

19621번 다시 질문 드립니다

프로필 이미지
파라나무
2011-07-11 15:42:23
741
글번호 40769
답변완료
19621 번 질문 보충 해서 다시 부탁 드립니다... 고점 저점을 스윙함수가 아닌 지그재그차트 상승 하락율로 고점저점을 잡고 싶습니다. 그리고 그것을 기준으로 옵션차트와비교해서 선물이 고점 갱신하는데 옵션은 갱신 못하면 차트에 표시나 소리 나게 하고 싶습니다. 정성스럽게 답변 주셨는데...번거롭게 해드려 죄송합니다. 지그재그 파동수식 아래에 표시했습니다. Input:상승률(0.12),하락률(0.12); 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,BLUE)); 이중파동 = 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,BLUE)); } 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,BLUE)); 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,BLUE)); } 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,BLUE)); 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,BLUE)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } Else { If 저[2] > 저[1] Then 색깔 = 파랑; Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-07-12 09:44:56

안녕하세요 예스스탁입니다. Input:상승률(0.12),하락률(0.12); Var:j(0),상승(100,data1),하락(-100,data1),양방향(2,data1),색깔(0,data1),파랑(-1,data1),빨강(1,data1), 기준고(0,data1),기준저(0,data1),기준고Bar(0,data1),기준저Bar(0,data1),추세(0,data1),이중파동(0,data1); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); Input:상승률D(0.12),하락률D(0.12); Var:jj(0),상승D(100,data2),하락D(-100,data2),양방향D(2,data2),색깔D(0,data2),파랑D(-1,data2),빨강D(1,data2), 기준고D(0,data2),기준저D(0,data2),기준고BarD(0,data2),기준저BarD(0,data2),추세D(0,data2),이중파동D(0,data2); Array:고D[20](0,data2),저D[20](0,data2),고BarD[20](0,data2),저BarD[20](0,data2); #################Data1 #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 이중파동 처리 #==========================================# If 이중파동 > 0 Then { 이중파동 = 0; } #==========================================# # 최근 고,저 갱신 #==========================================# If 기준고 <= data1(H) || 기준고 == 0 || IsNaN(기준고) == True Then { 기준고 = data1(H); 기준고Bar = 0; } Else 기준고Bar = 기준고Bar + 1; If 기준저 >= data1(L) || 기준저 == 0 || IsNaN(기준저) == True Then { 기준저 = data1(L); 기준저Bar = 0; } Else 기준저Bar = 기준저Bar + 1; #==========================================# # 추세방향 결정 #==========================================# If 기준고 * (1 - (하락률/100)) > data1(H) && 기준저 * (1 + (상승률/100)) < data1(L) Then { 추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락)); } Else If 기준고 * (1 - (하락률/100)) > data1(H) Then 추세 = 하락; Else If 기준저 * (1 + (상승률/100)) < data1(L) Then 추세 = 상승; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 추세[1] == 상승 && 추세 == 하락 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 기준고 = data1(H); 기준고Bar = 0; 기준저 = data1(L); 기준저Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강 ; If 이중파동[1] > 0 Then 이중파동 = 고[1]; } If 추세[1] == 하락 && 추세 == 하락 && 고[1] < 기준고 && 기준고 * (1 - (하락률/100)) > data1(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; 기준고 = data1(H); 기준고Bar = 0; 기준저 = data1(L); 기준저Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; 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; 기준저 = data1(L); 기준저Bar = 0; 기준고 = data1(H); 기준고Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; If 이중파동[1] > 0 Then 이중파동 = 저[1]; } If 추세[1] == 상승 && 추세 == 상승 && 저[1] > 기준저 && 기준저 * (1 + (상승률/100)) < data1(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; 기준저 = data1(L); 기준저Bar = 0; 기준고 = data1(H); 기준고Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강; 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; 기준고 = data1(H); 기준고Bar = 0; 기준저 = data1(L); 기준저Bar = 0; 추세 = 추세[1]; If 추세[1] == 상승 Then { If 고[2] < 고[1] Then 색깔 = 빨강; If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } Else { If 저[2] > 저[1] Then 색깔 = 파랑; If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } } #############################Data2 #==========================================# # 전고점,전저점 index 증가 #==========================================# For jj = 1 To 19 { 저BarD[jj] = 저BarD[jj] + 1; 고BarD[jj] = 고BarD[jj] + 1; } #==========================================# # 이중파동 처리 #==========================================# If 이중파동D > 0 Then { 이중파동D = 0; } #==========================================# # 최근 고,저 갱신 #==========================================# If 기준고D <= data2(H) || 기준고D == 0 || IsNaN(기준고D) == True Then { 기준고D = data2(H); 기준고BarD = 0; } Else 기준고BarD = 기준고BarD + 1; If 기준저D >=data2(L) || 기준저D == 0 || IsNaN(기준저D) == True Then { 기준저D = data2(L); 기준저BarD = 0; } Else 기준저BarD = 기준저BarD + 1; #==========================================# # 추세방향 결정 #==========================================# If 기준고D * (1 - (하락률D/100)) > data2(H) && 기준저D * (1 + (상승률D/100)) < data2(L) Then { 추세D = Iff(기준고BarD==기준저BarD,양방향D,Iff(기준고BarD>기준저BarD,상승D,하락D)); } Else If 기준고D * (1 - (하락률D/100)) > data2(H) Then 추세D = 하락D; Else If 기준저D * (1 + (상승률D/100)) < data2(L) Then 추세D = 상승D; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 추세D[1] == 상승D && 추세D == 하락D Then { For jj = 18 DownTo 1 { 고D[jj+1] = 고D[jj]; 고BarD[jj+1] = 고BarD[jj]; } 고D[1] = 기준고D; 고BarD[1] = 기준고BarD; 기준고D = data2(H); 기준고BarD = 0; 기준저D = data2(L); 기준저BarD = 0; If 고D[2] < 고D[1] Then 색깔D = 빨강D ; If 이중파동D[1] > 0 Then 이중파동D = 고D[1]; } If 추세D[1] == 하락D && 추세D == 하락D && 고D[1] < 기준고D && 기준고D * (1 - (하락률D/100)) > data2(H) Then { For jj = 18 DownTo 1 { 고D[jj+1] = 고D[jj]; 고BarD[jj+1] = 고BarD[jj]; 저D[jj+1] = 저D[jj]; 저BarD[jj+1] = 저BarD[jj]; } 고D[1] = 기준고D; 고BarD[1] = 기준고BarD; 저D[1] = 기준저D; 저BarD[1] = 기준저BarD; 기준고D = data2(H); 기준고BarD = 0; 기준저D = data2(L); 기준저BarD = 0; If 저D[2] > 저D[1] Then 색깔D = 파랑D; If 고D[2] < 고D[1] Then 색깔D = 빨강D; 이중파동D = 고D[1]; } If 추세D[1] == 하락D && 추세D == 상승D Then { For jj = 18 DownTo 1 { 저D[jj+1] = 저D[jj]; 저BarD[jj+1] = 저BarD[jj]; } 저D[1] = 기준저D; 저BarD[1] = 기준저BarD; 기준저D = data2(L); 기준저BarD = 0; 기준고D = data2(H); 기준고BarD = 0; If 저D[2] > 저D[1] Then 색깔D = 파랑D; If 이중파동D[1] > 0 Then 이중파동D = 저D[1]; } If 추세D[1] == 상승D && 추세D == 상승D && 저D[1] > 기준저D && 기준저D * (1 + (상승률D/100)) <data2(L) Then { For jj = 18 DownTo 1 { 고D[jj+1] = 고D[jj]; 고BarD[jj+1] = 고BarD[jj]; 저D[jj+1] = 저D[jj]; 저BarD[jj+1] = 저BarD[jj]; } 고D[1] = 기준고D; 고BarD[1] = 기준고BarD; 저D[1] = 기준저D; 저BarD[1] = 기준저BarD; 기준저D = data2(L); 기준저BarD = 0; 기준고D = data2(H); 기준고BarD = 0; If 고D[2] < 고D[1] Then 색깔D = 빨강D; If 저D[2] > 저D[1] Then 색깔D = 파랑D; 이중파동D = 저D[1]; } If 추세D == 양방향D Then { For jj = 18 DownTo 1 { 고D[jj+1] = 고D[jj]; 고BarD[jj+1] = 고BarD[jj]; 저D[jj+1] = 저D[jj]; 저BarD[jj+1] = 저BarD[jj]; } 고D[1] = 기준고D; 고BarD[1] = 기준고BarD; 저D[1] = 기준저D; 저BarD[1] = 기준저BarD; 기준고D = data2(H); 기준고BarD = 0; 기준저D = data2(L); 기준저BarD = 0; 추세D = 추세D[1]; If 추세D[1] == 상승D Then { If 고D[2] < 고D[1] Then 색깔D = 빨강D; If 저D[2] > 저D[1] Then 색깔D = 파랑D; 이중파동D = 저D[1]; } Else { If 저D[2] > 저D[1] Then 색깔D = 파랑D; If 고D[2] < 고D[1] Then 색깔D = 빨강D; 이중파동D = 고D[1]; } } if data1(crossup(c,고[1])) and data2(C < 고D[1]) Then{ plot1(1); PlaySound("C:₩예스트레이더31₩Data₩alert.wav"); } if data1(CrossDown(c,저[1])) and data2(C > 저D[1]) Then{ plot1(-1); PlaySound("C:₩예스트레이더31₩Data₩alert.wav"); } 즐거운 하루되세요 > 파라나무 님이 쓴 글입니다. > 제목 : 19621번 다시 질문 드립니다 > 19621 번 질문 보충 해서 다시 부탁 드립니다... 고점 저점을 스윙함수가 아닌 지그재그차트 상승 하락율로 고점저점을 잡고 싶습니다. 그리고 그것을 기준으로 옵션차트와비교해서 선물이 고점 갱신하는데 옵션은 갱신 못하면 차트에 표시나 소리 나게 하고 싶습니다. 정성스럽게 답변 주셨는데...번거롭게 해드려 죄송합니다. 지그재그 파동수식 아래에 표시했습니다. Input:상승률(0.12),하락률(0.12); 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,BLUE)); 이중파동 = 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,BLUE)); } 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,BLUE)); 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,BLUE)); } 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,BLUE)); 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,BLUE)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } Else { If 저[2] > 저[1] Then 색깔 = 파랑; Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } }