커뮤니티

문의드립니다.

프로필 이미지
불바다
2017-09-18 13:47:24
200
글번호 112856
답변완료
수식지왕님의 피보나치 되돌림 지표입니다. 상승파동 하락파동에 따른 피보나치 되돌림 비율을 선으로 나타낸 지표인데요 이걸 시스템으로 만들고 싶습니다. 예들들어 상승파동끝나고 조정나올때(되돌림) 61.8%선에서 매수하고 100%선을 이탈하면 매도스위칭입니다. 하락파동이 끝나고 상승나올때 되돌림 61.8%선에서 매도하고 100%선을 돌파하면 매수스위칭입니다. kbjmhlove@naver.com 이메일로 답변부탁드립니다. 감사합니다. #==========================================# # 지 표 명 : 피보나치되돌림 # 작 성 자 : 수식지왕 # 블 로 그 : http://yahoosir.blog.me #==========================================# Input:length(30),파동선두께(0.5),수치표시(1); Var:j(0),jj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), TL1(0); Array:고[5,4](0),저[5,4](0); // 1:가격, 2:Index, 3:sDate, 4:sTime #==========================================# If Index == 0 Then { 고[1,1] = H; 저[1,1] = L; } Condition1 = Highest(H,length) == H and 최종고가 <> H; Condition2 = Lowest (L,length) == L and 최종저가 <> L; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = H; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { For j = 5 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); /// 상승파동 TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,MAGENTA); } Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = L; If 최종변곡점 == "고점" then { For j = 5 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = L; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); /// 하락파동 TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,CYAN); } Else If 저[1,1] > L then { 저[1,1] = L; 저[1,3] = sDate; 저[1,4] = sTime; 저[1,2] = Index; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); } 최종변곡점 = "저점"; } #==========================================# Array: fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 If Index == 0 Then { fr[1,1] = 0; fr[2,1] = 0.326; fr[3,1] = 0.500; fr[4,1] = 0.618; fr[5,1] = 1.000; fr[6,1] = 1.500; fr[7,1] = 2.000; } If 최종변곡점[1] == "고점" and 최종변곡점 == "저점" Then // 상승파동 추세가 바뀔 때 피보나치 라인을 계산 { for j = 1 to 7 { //If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 하락파동에 대한 상승 기존 피보나치 라인은 지우고 fr[j,2] = 고[1,1] - ((고[1,1] - 저[2,1]) * fr[j,1]); // 하락 목표 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(저[2,3],저[2,4],fr[j,2],sDate,sTime,fr[j,2]); // 상승파에 대한 하락목표 라인을 생성 TL_SetColor(fr[j,3],LMAGENTA); // 하락 피보나치 목표 라인 색표현 If 수치표시 == 1 Then { If fr[j,4] > 0 Then Text_Delete(fr[j,4]); // 기존의 텍스트는 지우고 젤 뒤에것만 둔다 fr[j,4] = Text_New(저[2,3],저[2,4],fr[j,2]," (" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); /// 피보나치 텍스트 생성 Text_SetStyle(fr[j,4], 1, 2); // 왼쪽,중앙 Text_SetColor(fr[j,4],LMAGENTA); /// 수치값 색표현 } } } Else If 최종변곡점[1] == "저점" and 최종변곡점 == "고점" Then // 하락파동 추세가 바뀔 때 피보나치 라인 계산 { for j = 1 to 7 { // If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 상승파동에 대한 하락 기존 피보나치 라인은 지우고 fr[j,2] = 저[1,1] + ((고[2,1] - 저[1,1]) * fr[j,1]); // 상승목표 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(고[2,3],고[2,4],fr[j,2],sDate,sTime,fr[j,2]); // 상승목표 라인을 생성 TL_SetColor(fr[j,3],CYAN); // 피보나치 라인 색표현 If 수치표시 == 1 Then { If fr[j,4] > 0 Then Text_Delete(fr[j,4]); // 기존의 텍스트는 지우고 젤 뒤에것만둔다. fr[j,4] = Text_New(고[2,3],고[2,4],fr[j,2]," (" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); // 피보나치 비율을 곱해서 계산 Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],CYAN); } } } //Else //{ // for j = 1 to 7 // { // TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]); // } //}
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2017-09-19 10:14:30

안녕하세요 예스스탁입니다. 1 해당 지표에서 각 추세선이나 피보나치 선들은 사후적으로 그려지는 값들입니다. 상승이나 하락 변곡을 최초 인지한 시점이 이미 지정한 61.8%를 넘어가서 판단되는 경우가 많습니다. 수식 내용 확인하시기 바랍니다. 2 수식은 게시판으로만 답변을 드립니다. 3 수식입니다. #==========================================# # 지 표 명 : 피보나치되돌림 # 작 성 자 : 수식지왕 # 블 로 그 : http://yahoosir.blog.me #==========================================# Input:length(30),파동선두께(0.5),수치표시(1); Var:j(0),jj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), TL1(0),T(0); Array:고[5,4](0),저[5,4](0); // 1:가격, 2:Index, 3:sDate, 4:sTime #==========================================# If Index == 0 Then { 고[1,1] = H; 저[1,1] = L; } Condition1 = Highest(H,length) == H and 최종고가 <> H; Condition2 = Lowest (L,length) == L and 최종저가 <> L; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = H; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { For j = 5 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); /// 상승파동 TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,MAGENTA); } Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = L; If 최종변곡점 == "고점" then { For j = 5 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = L; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); /// 하락파동 TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,CYAN); } Else If 저[1,1] > L then { 저[1,1] = L; 저[1,3] = sDate; 저[1,4] = sTime; 저[1,2] = Index; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); } 최종변곡점 = "저점"; } #==========================================# Array: fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 If Index == 0 Then { fr[1,1] = 0; fr[2,1] = 0.326; fr[3,1] = 0.500; fr[4,1] = 0.618; fr[5,1] = 1.000; fr[6,1] = 1.500; fr[7,1] = 2.000; } If 최종변곡점[1] == "고점" and 최종변곡점 == "저점" Then // 상승파동 추세가 바뀔 때 피보나치 라인을 계산 { T = -1; for j = 1 to 7 { //If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 하락파동에 대한 상승 기존 피보나치 라인은 지우고 fr[j,2] = 고[1,1] - ((고[1,1] - 저[2,1]) * fr[j,1]); // 하락 목표 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(저[2,3],저[2,4],fr[j,2],sDate,sTime,fr[j,2]); // 상승파에 대한 하락목표 라인을 생성 TL_SetColor(fr[j,3],LMAGENTA); // 하락 피보나치 목표 라인 색표현 If 수치표시 == 1 Then { If fr[j,4] > 0 Then Text_Delete(fr[j,4]); // 기존의 텍스트는 지우고 젤 뒤에것만 둔다 fr[j,4] = Text_New(저[2,3],저[2,4],fr[j,2]," (" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); /// 피보나치 텍스트 생성 Text_SetStyle(fr[j,4], 1, 2); // 왼쪽,중앙 Text_SetColor(fr[j,4],LMAGENTA); /// 수치값 색표현 } } } Else If 최종변곡점[1] == "저점" and 최종변곡점 == "고점" Then // 하락파동 추세가 바뀔 때 피보나치 라인 계산 { T = 1; for j = 1 to 7 { // If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 상승파동에 대한 하락 기존 피보나치 라인은 지우고 fr[j,2] = 저[1,1] + ((고[2,1] - 저[1,1]) * fr[j,1]); // 상승목표 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(고[2,3],고[2,4],fr[j,2],sDate,sTime,fr[j,2]); // 상승목표 라인을 생성 TL_SetColor(fr[j,3],CYAN); // 피보나치 라인 색표현 If 수치표시 == 1 Then { If fr[j,4] > 0 Then Text_Delete(fr[j,4]); // 기존의 텍스트는 지우고 젤 뒤에것만둔다. fr[j,4] = Text_New(고[2,3],고[2,4],fr[j,2]," (" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); // 피보나치 비율을 곱해서 계산 Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],CYAN); } } } //Else //{ // for j = 1 to 7 // { // TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]); // } //} if T == -1 Then{ var1 = 고[1,1]; var2 = 저[2,1]; if CrossDown(C,var1-(var1-var2)*0.382) Then buy(); if CrossDown(C,var2) Then sell(); } if T == 1 Then{ var1 = 고[2,1]; var2 = 저[1,1]; if CrossUp(C,var2+(var1-var2)*0.382) Then sell(); if CrossUp(C,var1) Then buy(); } 즐거운 하루되세요 > 불바다 님이 쓴 글입니다. > 제목 : 문의드립니다. > 수식지왕님의 피보나치 되돌림 지표입니다. 상승파동 하락파동에 따른 피보나치 되돌림 비율을 선으로 나타낸 지표인데요 이걸 시스템으로 만들고 싶습니다. 예들들어 상승파동끝나고 조정나올때(되돌림) 61.8%선에서 매수하고 100%선을 이탈하면 매도스위칭입니다. 하락파동이 끝나고 상승나올때 되돌림 61.8%선에서 매도하고 100%선을 돌파하면 매수스위칭입니다. kbjmhlove@naver.com 이메일로 답변부탁드립니다. 감사합니다. #==========================================# # 지 표 명 : 피보나치되돌림 # 작 성 자 : 수식지왕 # 블 로 그 : http://yahoosir.blog.me #==========================================# Input:length(30),파동선두께(0.5),수치표시(1); Var:j(0),jj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), TL1(0); Array:고[5,4](0),저[5,4](0); // 1:가격, 2:Index, 3:sDate, 4:sTime #==========================================# If Index == 0 Then { 고[1,1] = H; 저[1,1] = L; } Condition1 = Highest(H,length) == H and 최종고가 <> H; Condition2 = Lowest (L,length) == L and 최종저가 <> L; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = H; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { For j = 5 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); /// 상승파동 TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,MAGENTA); } Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = L; If 최종변곡점 == "고점" then { For j = 5 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = L; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); /// 하락파동 TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,CYAN); } Else If 저[1,1] > L then { 저[1,1] = L; 저[1,3] = sDate; 저[1,4] = sTime; 저[1,2] = Index; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); } 최종변곡점 = "저점"; } #==========================================# Array: fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 If Index == 0 Then { fr[1,1] = 0; fr[2,1] = 0.326; fr[3,1] = 0.500; fr[4,1] = 0.618; fr[5,1] = 1.000; fr[6,1] = 1.500; fr[7,1] = 2.000; } If 최종변곡점[1] == "고점" and 최종변곡점 == "저점" Then // 상승파동 추세가 바뀔 때 피보나치 라인을 계산 { for j = 1 to 7 { //If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 하락파동에 대한 상승 기존 피보나치 라인은 지우고 fr[j,2] = 고[1,1] - ((고[1,1] - 저[2,1]) * fr[j,1]); // 하락 목표 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(저[2,3],저[2,4],fr[j,2],sDate,sTime,fr[j,2]); // 상승파에 대한 하락목표 라인을 생성 TL_SetColor(fr[j,3],LMAGENTA); // 하락 피보나치 목표 라인 색표현 If 수치표시 == 1 Then { If fr[j,4] > 0 Then Text_Delete(fr[j,4]); // 기존의 텍스트는 지우고 젤 뒤에것만 둔다 fr[j,4] = Text_New(저[2,3],저[2,4],fr[j,2]," (" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); /// 피보나치 텍스트 생성 Text_SetStyle(fr[j,4], 1, 2); // 왼쪽,중앙 Text_SetColor(fr[j,4],LMAGENTA); /// 수치값 색표현 } } } Else If 최종변곡점[1] == "저점" and 최종변곡점 == "고점" Then // 하락파동 추세가 바뀔 때 피보나치 라인 계산 { for j = 1 to 7 { // If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 상승파동에 대한 하락 기존 피보나치 라인은 지우고 fr[j,2] = 저[1,1] + ((고[2,1] - 저[1,1]) * fr[j,1]); // 상승목표 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(고[2,3],고[2,4],fr[j,2],sDate,sTime,fr[j,2]); // 상승목표 라인을 생성 TL_SetColor(fr[j,3],CYAN); // 피보나치 라인 색표현 If 수치표시 == 1 Then { If fr[j,4] > 0 Then Text_Delete(fr[j,4]); // 기존의 텍스트는 지우고 젤 뒤에것만둔다. fr[j,4] = Text_New(고[2,3],고[2,4],fr[j,2]," (" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); // 피보나치 비율을 곱해서 계산 Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],CYAN); } } } //Else //{ // for j = 1 to 7 // { // TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]); // } //}
프로필 이미지

불바다

2017-09-29 02:25:39

답변 감사드립니다. 파동선이 상승파동 하락파동 그려지고 파동마다 피보나치되돌림선이 발생됩니다. 파동의 전고를 넘지 못하거나 파동의 전저를 이탈하지 못하는경우 즉 파동안에서 지그재그 움직일때는 피보나치되돌림선을 생성시키지 못하도록 하고싶습니다. 전고넘는 파동이 발생할경우 피보나치되돌림선 생성. 전저이탈하는 파동이 발생할경우 피보나치되돌림선을 생성하고 생성된 파동의 피보나치 되돌림 61.8선에서 매수 매도 하고 싶은데....방법이 없을까요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드립니다. > 안녕하세요 예스스탁입니다. 1 해당 지표에서 각 추세선이나 피보나치 선들은 사후적으로 그려지는 값들입니다. 상승이나 하락 변곡을 최초 인지한 시점이 이미 지정한 61.8%를 넘어가서 판단되는 경우가 많습니다. 수식 내용 확인하시기 바랍니다. 2 수식은 게시판으로만 답변을 드립니다.