커뮤니티

60812번 수식 수정 부탁드립니다.

프로필 이미지
부엉이
2019-01-11 21:16:39
273
글번호 125217
답변완료

첨부 이미지

성실하게 답변해 주셔서 감사드립니다. 60812번 피보나치팬 수식 관련 내용입니다. 피보나치 팬의 100% 라인은 저점을 기준으로 하여 팬이 펼쳐져야 맞는 것 같은데요, 제공된 수식은 저점기준이 모호하게 나타나네요. 수식에 수정하여야 할 부분이 있는것 같습니다. 첨부된 그림을 살펴보시고 수식 수정 부탁드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-01-14 10:54:23

안녕하세요 예스스탁입니다. 저점 기준으로 수정했습니다. Input:length(10),기준일(20190108),파동선두께(2); Var:j(0),jj(0),jjj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), TL1(0); Array:고[5,4](0),저[5,4](0), // 1:가격, 2:Index, 3:sDate, 4:sTime 역사적고점[5](0),역사적저점[5](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,GREEN); } 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 기준일 <= Date and 역사적고점[1] < 고[1,1] Then { For jjj = 1 To 4 // 1:가격, 2:Index, 3:sDate, 4:sTime { 역사적고점[jjj] = 고[1,jjj]; 역사적저점[jjj] = 0; // 역사적 고점 초기화 } } 최종변곡점 = "고점"; } #==========================================# 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,GREEN); } 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]); } If 기준일 <= Date and ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then { For jjj = 1 To 4 { 역사적저점[jjj] = 저[1,jjj]; } } 최종변곡점 = "저점"; } #==========================================# Var:기울기(0); Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 If Index == 0 Then { fr[1,1] = 0; fr[2,1] = 0.236; fr[3,1] = 0.382; fr[4,1] = 0.50; fr[5,1] = 0.618; fr[6,1] = 0.764; fr[7,1] = 1; } If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then { If 역사적고점[1][1] != 역사적고점[1] or 역사적저점[1][1] != 역사적저점[1] Then { 기울기 = (역사적고점[1] - 역사적저점[1]) / (역사적고점[2] - 역사적저점[2]); for j = 1 to 7 { If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고 fr[j,2] = 역사적고점[1] + 기울기 * fr[j,1] * (index - 역사적고점[2]) ; // 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(역사적고점[3],역사적고점[4],역사적고점[1],sDate,sTime,fr[j,2]); // 라인을 생성 } } Else { for j = 1 to 7 { fr[j,2] = 역사적고점[1] + 기울기 * fr[j,1] * (index - 역사적고점[2]); TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]); } } } Text_Delete(var1); var1 = Text_New(sdate,stime,fr[1,2],NumToStr(fr[1,1]*100,1)+"% : "+NumToStr(fr[1,2],2)); Text_Delete(var2); var2 = Text_New(sdate,stime,fr[2,2],NumToStr(fr[2,1]*100,1)+"% : "+NumToStr(fr[2,2],2)); Text_Delete(var3); var3 = Text_New(sdate,stime,fr[3,2],NumToStr(fr[3,1]*100,1)+"% : "+NumToStr(fr[3,2],2)); Text_Delete(var4); var4 = Text_New(sdate,stime,fr[4,2],NumToStr(fr[4,1]*100,1)+"% : "+NumToStr(fr[4,2],2)); Text_Delete(var5); var5 = Text_New(sdate,stime,fr[5,2],NumToStr(fr[5,1]*100,1)+"% : "+NumToStr(fr[5,2],2)); Text_Delete(var6); var6 = Text_New(sdate,stime,fr[6,2],NumToStr(fr[6,1]*100,1)+"% : "+NumToStr(fr[6,2],2)); Text_Delete(var7); var7 = Text_New(sdate,stime,fr[7,2],NumToStr(fr[7,1]*100,1)+"% : "+NumToStr(fr[7,2],2)); 즐거운 하루되세요 > 부엉이 님이 쓴 글입니다. > 제목 : 60812번 수식 수정 부탁드립니다. > 성실하게 답변해 주셔서 감사드립니다. 60812번 피보나치팬 수식 관련 내용입니다. 피보나치 팬의 100% 라인은 저점을 기준으로 하여 팬이 펼쳐져야 맞는 것 같은데요, 제공된 수식은 저점기준이 모호하게 나타나네요. 수식에 수정하여야 할 부분이 있는것 같습니다. 첨부된 그림을 살펴보시고 수식 수정 부탁드립니다.