커뮤니티

부탁 드립니다.

프로필 이미지
뮬리
2019-01-15 08:53:38
175
글번호 125269
답변완료
다음 수식은 지정일시 이후에서 최고점에서 피보나치팬 선을 긋고 있습니다. 이것의 시작점을 금주의 주초 즉 월요일에서 부터와 최고점이 아닌 최저점에서 피보나치 팬선을 긋도록 수정 부탁 드립니다. 감사 합니다. Input:length(10),기준일(20190108),기준시간(100000),파동선두께(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 var : Tcond(false); if sdate >= 기준일 and stime >= 기준시간 Then Tcond = true; #==========================================# 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 Tcond == true 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 tcond == true 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],NumT
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-01-15 09:22:42

안녕하세요 예스스탁입니다. 1 Input:length(10),파동선두께(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 Var:기울기(0); Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 If Index == 0 or (DayOfWeek(bdate) < DayOfWeek(bdate[1])) Then { 고[1,1] = H; 저[1,1] = L; 역사적고점[1] = 0; 역사적저점[1] = 0; for j = 1 to 7 { If fr[j,3] > 0 Then TL_Delete(fr[j,3]); } } 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 역사적고점[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 ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then { For jjj = 1 To 4 { 역사적저점[jjj] = 저[1,jjj]; } } 최종변곡점 = "저점"; } 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); Text_Delete(var2); Text_Delete(var3); Text_Delete(var4); Text_Delete(var5); Text_Delete(var6); Text_Delete(var7); If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then { var1 = Text_New(sdate,stime,fr[1,2],NumToStr(fr[1,1]*100,1)+"% : "+NumToStr(fr[1,2],2)); var2 = Text_New(sdate,stime,fr[2,2],NumToStr(fr[2,1]*100,1)+"% : "+NumToStr(fr[2,2],2)); var3 = Text_New(sdate,stime,fr[3,2],NumToStr(fr[3,1]*100,1)+"% : "+NumToStr(fr[3,2],2)); var4 = Text_New(sdate,stime,fr[4,2],NumToStr(fr[4,1]*100,1)+"% : "+NumToStr(fr[4,2],2)); var5 = Text_New(sdate,stime,fr[5,2],NumToStr(fr[5,1]*100,1)+"% : "+NumToStr(fr[5,2],2)); var6 = Text_New(sdate,stime,fr[6,2],NumToStr(fr[6,1]*100,1)+"% : "+NumToStr(fr[6,2],2)); var7 = Text_New(sdate,stime,fr[7,2],NumToStr(fr[7,1]*100,1)+"% : "+NumToStr(fr[7,2],2)); } 2 Input:length(10),파동선두께(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 Var:기울기(0); Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 If Index == 0 or (DayOfWeek(bdate) < DayOfWeek(bdate[1])) Then { 고[1,1] = H; 저[1,1] = L; 역사적고점[1] = 0; 역사적저점[1] = 0; for j = 1 to 7 { If fr[j,3] > 0 Then TL_Delete(fr[j,3]); } } 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 역사적고점[1] < 고[1,1] Then { For jjj = 1 To 4 // 1:가격, 2:Index, 3:sDate, 4:sTime { 역사적고점[jjj] = 고[1,jjj]; } } 최종변곡점 = "고점"; } 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 ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then { For jjj = 1 To 4 { 역사적저점[jjj] = 저[1,jjj]; 역사적고점[jjj] = 0; } } 최종변곡점 = "저점"; } 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] = 기울기 * fr[j,1] * (index - 역사적저점[2]) + 역사적저점[1]; // 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(역사적저점[3],역사적저점[4],역사적저점[1],sDate,sTime,fr[j,2]); // 라인을 생성 } } Else { for j = 1 to 7 { fr[j,2] = 기울기 * fr[j,1] * (index - 역사적저점[2]) + 역사적저점[1]; TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]); } } } Text_Delete(var1); Text_Delete(var2); Text_Delete(var3); Text_Delete(var4); Text_Delete(var5); Text_Delete(var6); Text_Delete(var7); If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then { var1 = Text_New(sdate,stime,fr[1,2],NumToStr(fr[1,1]*100,1)+"% : "+NumToStr(fr[1,2],2)); var2 = Text_New(sdate,stime,fr[2,2],NumToStr(fr[2,1]*100,1)+"% : "+NumToStr(fr[2,2],2)); var3 = Text_New(sdate,stime,fr[3,2],NumToStr(fr[3,1]*100,1)+"% : "+NumToStr(fr[3,2],2)); var4 = Text_New(sdate,stime,fr[4,2],NumToStr(fr[4,1]*100,1)+"% : "+NumToStr(fr[4,2],2)); var5 = Text_New(sdate,stime,fr[5,2],NumToStr(fr[5,1]*100,1)+"% : "+NumToStr(fr[5,2],2)); var6 = Text_New(sdate,stime,fr[6,2],NumToStr(fr[6,1]*100,1)+"% : "+NumToStr(fr[6,2],2)); var7 = Text_New(sdate,stime,fr[7,2],NumToStr(fr[7,1]*100,1)+"% : "+NumToStr(fr[7,2],2)); } 즐거운 하루되세요 > 뮬리 님이 쓴 글입니다. > 제목 : 부탁 드립니다. > 다음 수식은 지정일시 이후에서 최고점에서 피보나치팬 선을 긋고 있습니다. 이것의 시작점을 금주의 주초 즉 월요일에서 부터와 최고점이 아닌 최저점에서 피보나치 팬선을 긋도록 수정 부탁 드립니다. 감사 합니다. Input:length(10),기준일(20190108),기준시간(100000),파동선두께(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 var : Tcond(false); if sdate >= 기준일 and stime >= 기준시간 Then Tcond = true; #==========================================# 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 Tcond == true 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 tcond == true 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],NumT