커뮤니티

부탁드립니다

프로필 이미지
회원
2017-12-04 21:58:33
127
글번호 114715
답변완료
Input:length(10); Var:최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), sBar(0),TL1(0),TL2(0),TL3(0), 고추세기울기(0),고추세봉개수(0),고추세시작(0),고추세시작IDX(0),고추세최종(0), 저추세기울기(0),저추세봉개수(0),저추세시작(0),저추세시작IDX(0),저추세최종(0); Var:고1(0),고2(0),고3(0),고4(0),고5(0),고6(0),고7(0),고8(0),고9(0),고10(0), 저1(0),저2(0),저3(0),저4(0),저5(0),저6(0),저7(0),저8(0),저9(0),저10(0), 고1IDX(0),고2IDX(0),고3IDX(0),고4IDX(0),고5IDX(0), 고6IDX(0),고7IDX(0),고8IDX(0),고9IDX(0),고10IDX(0), 저1IDX(0),저2IDX(0),저3IDX(0),저4IDX(0),저5IDX(0), 저6IDX(0),저7IDX(0),저8IDX(0),저9IDX(0),저10IDX(0); var : tl21(0),tl22(0),TL31(0),tl32(0),Tl33(0),tl34(0),t(0); #==========================================# Condition1 = Highest(C,length) == C and 최종고가 <> C; Condition2 = Lowest (C,length) == C and 최종저가 <> C; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = C; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { 고9 = 고8; 고9IDX = 고8IDX; 고8 = 고7; 고8IDX = 고7IDX; 고7 = 고6; 고7IDX = 고6IDX; 고6 = 고5; 고6IDX = 고5IDX; 고5 = 고4; 고5IDX = 고4IDX; 고4 = 고3; 고4IDX = 고3IDX; 고3 = 고2; 고3IDX = 고2IDX; 고2 = 고1; 고2IDX = 고1IDX; 고1 = C; 고1IDX = Index; sBar = Index - 저1IDX; // 추세선 시작점의 위치, n봉전으로 표시 TL1 = TL_New(sDate[sBar],sTime[sBar],저1,sDate[0],sTime[0],고1); TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); TL21 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],L[index-저2IDX],sDate[index-저1IDX],sTime[index-저1IDX],L[index-저2IDX]); TL_SetColor(TL21,CYAN); if C[index-저2IDX] != L[index-저2IDX] then{ TL22 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],C[index-저2IDX],sDate[index-저1IDX],sTime[index-저1IDX],C[index-저2IDX]); TL_SetColor(TL22,CYAN); } T = -1; } Else If 고1 < C Then // 1번 고점보다 높은 고가 출현 { 고1 = C; 고1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],고1); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 } /* 고점추세선 */ If 고2IDX[1] <> 고2IDX Then // 고2의 Index값이 변동 없음 즉, 새로운 고점이 생기지 않았음 { 고추세최종 = 0; 고추세기울기 = 0; 고추세시작 = 0; 고추세봉개수 = 0; If 고2 < 고3 Then { 고추세기울기 = (고2 - 고3)/(고2IDX - 고3IDX); 고추세시작 = 고3; 고추세시작IDX = 고3IDX; } Else If 고2 < 고4 Then { 고추세기울기 = (고2 - 고4)/(고2IDX - 고4IDX); 고추세시작 = 고4; 고추세시작IDX = 고4IDX; } Else If 고2 < 고5 Then { 고추세기울기 = (고2 - 고5)/(고2IDX - 고5IDX); 고추세시작 = 고5; 고추세시작IDX = 고5IDX; } Else If 고2 < 고6 Then { 고추세기울기 = (고2 - 고6)/(고2IDX - 고6IDX); 고추세시작 = 고6; 고추세시작IDX = 고6IDX; } Else If 고2 < 고7 Then { 고추세기울기 = (고2 - 고7)/(고2IDX - 고7IDX); 고추세시작 = 고7; 고추세시작IDX = 고7IDX; } Else If 고2 < 고8 Then { 고추세기울기 = (고2 - 고8)/(고2IDX - 고8IDX); 고추세시작 = 고8; 고추세시작IDX = 고8IDX; } Else If 고2 < 고9 Then { 고추세기울기 = (고2 - 고9)/(고2IDX - 고9IDX); 고추세시작 = 고9; 고추세시작IDX = 고9IDX; } 고추세봉개수 = Index - 고추세시작IDX; 고추세최종 = 고추세기울기 * 고추세봉개수 + 고추세시작; If 고추세최종 > 0 Then { TL2 = TL_New(sDate[고추세봉개수],sTime[고추세봉개수],고추세시작,sDate[0],sTime[0],고추세최종); TL_SetSize(TL2,1); TL_SetColor(TL2,RED); } } Else If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종); } If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종); } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = C; If 최종변곡점 == "고점" then { 저9 = 저8; 저9IDX = 저8IDX; 저8 = 저7; 저8IDX = 저7IDX; 저7 = 저6; 저7IDX = 저6IDX; 저6 = 저5; 저6IDX = 저5IDX; 저5 = 저4; 저5IDX = 저4IDX; 저4 = 저3; 저4IDX = 저3IDX; 저3 = 저2; 저3IDX = 저2IDX; 저2 = 저1; 저2IDX = 저1IDX; 저1 = C; 저1IDX = Index; sBar = Index - 고1IDX; TL1 = TL_New(sDate[sBar],sTime[sBar],고1,sDate[0],sTime[0],저1); TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); T = 1; TL21 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],H[index-고2IDX],sDate[index-고1IDX],sTime[index-고1IDX],H[index-고2IDX]); TL_SetColor(TL21,MAGENTA); if C[index-고2IDX]!= H[index-고2IDX] then{ TL22 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],C[index-고2IDX],sDate[index-고1IDX],sTime[index-고1IDX],C[index-고2IDX]); TL_SetColor(TL22,MAGENTA); } } Else If 저1 > C then { 저1 = C; 저1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],저1); } /* 저점추세선 */ If 저2IDX[1] <> 저2IDX Then { 저추세최종 = 0; 저추세기울기 = 0; 저추세시작 = 0; 저추세봉개수 = 0; If 저2 > 저3 and 저3 > 0 Then { 저추세기울기 = (저2 - 저3)/(저2IDX - 저3IDX); 저추세시작 = 저3; 저추세시작IDX = 저3IDX; } Else If 저2 > 저4 and 저4 > 0 Then { 저추세기울기 = (저2 - 저4)/(저2IDX - 저4IDX); 저추세시작 = 저4; 저추세시작IDX = 저4IDX; } Else If 저2 > 저5 and 저5 > 0 Then { 저추세기울기 = (저2 - 저5)/(저2IDX - 저5IDX); 저추세시작 = 저5; 저추세시작IDX = 저5IDX; } Else If 저2 > 저6 and 저6 > 0 Then { 저추세기울기 = (저2 - 저6)/(저2IDX - 저6IDX); 저추세시작 = 저6; 저추세시작IDX = 저6IDX; } Else If 저2 > 저7 and 저7 > 0 Then { 저추세기울기 = (저2 - 저7)/(저2IDX - 저7IDX); 저추세시작 = 저7; 저추세시작IDX = 저7IDX; } Else If 저2 > 저8 and 저8 > 0 Then { 저추세기울기 = (저2 - 저8)/(저2IDX - 저8IDX); 저추세시작 = 저8; 저추세시작IDX = 저8IDX; } Else If 저2 > 저9 and 저9 > 0 Then { 저추세기울기 = (저2 - 저9)/(저2IDX - 저9IDX); 저추세시작 = 저9; 저추세시작IDX = 저9IDX; } 저추세봉개수 = Index - 저추세시작IDX; 저추세최종 = 저추세기울기 * 저추세봉개수 + 저추세시작; If 저추세최종 > 0 Then { TL3 = TL_New(sDate[저추세봉개수],sTime[저추세봉개수],저추세시작,sDate[0],sTime[0],저추세최종); TL_SetSize(TL3,1); TL_SetColor(TL3,BLUE); } } Else If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종); } If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종); } 최종변곡점 = "저점"; } TL_Delete(TL31); TL_Delete(TL32); TL_Delete(TL33); TL_Delete(TL34); If T == 1 Then{ TL31 = TL_New(sDate[index-고1IDX],sTime[index-고1IDX],H[index-고1IDX],sDate,sTime,H[index-고1IDX]); TL_SetColor(TL31,MAGENTA); if C[index-고1IDX]!= H[index-고1IDX] then{ TL32 = TL_New(sDate[index-고1IDX],sTime[index-고1IDX],C[index-고1IDX],sDate,sTime,C[index-고1IDX]); TL_SetColor(TL32,MAGENTA); } TL33 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],L[index-저2IDX],sDate,sTime,L[index-저2IDX]); TL_SetColor(TL33,cyan); if C[index-저2IDX]!= L[index-저2IDX] then{ TL34 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],C[index-저2IDX],sDate,sTime,C[index-저2IDX]); TL_SetColor(TL34,cyan); } } If T == -1 Then{ TL31 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],H[index-고2IDX],sDate,sTime,H[index-고2IDX]); TL_SetColor(TL31,MAGENTA); if C[index-고2IDX]!= H[index-고2IDX] then{ TL32 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],C[index-고2IDX],sDate,sTime,C[index-고2IDX]); TL_SetColor(TL32,MAGENTA); } TL33 = TL_New(sDate[index-저1IDX],sTime[index-저1IDX],L[index-저1IDX],sDate,sTime,L[index-저1IDX]); TL_SetColor(TL33,cyan); if C[index-저1IDX]!= L[index-저1IDX] then{ TL34 = TL_New(sDate[index-저1IDX],sTime[index-저1IDX],C[index-저1IDX],sDate,sTime,C[index-저1IDX]); TL_SetColor(TL34,cyan); } } ************************************************************************** 윗식에서 TL 21, TL 22, TL 31, TL 32, TL 33, TL 34의 수평선이 생성되면 그 수평선 생성싯점 당시의 해당 캔들에 검색식으로 점을 찍어 주세요. 수평선을 대신해서 점을 찍어 달라는게 아니라 챠트에 수평선이 생성될때 그싯점의 캔들에 점을 찍어 달라는 것입니다 (그러므로 수평선상 위치에 있는 캔들과 검색식의 점은 그위치가 상이할 수 있습니다) 이때 검색식 점 색깔은 각각 해당되는 TL선의 색깔로 지정해 주세요 부탁드립니다. 감사합니다
검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-12-05 14:22:23

안녕하세요 예스스탁입니다. Input:length(10); Var:최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), sBar(0),TL1(0),TL2(0),TL3(0), 고추세기울기(0),고추세봉개수(0),고추세시작(0),고추세시작IDX(0),고추세최종(0), 저추세기울기(0),저추세봉개수(0),저추세시작(0),저추세시작IDX(0),저추세최종(0); Var:고1(0),고2(0),고3(0),고4(0),고5(0),고6(0),고7(0),고8(0),고9(0),고10(0), 저1(0),저2(0),저3(0),저4(0),저5(0),저6(0),저7(0),저8(0),저9(0),저10(0), 고1IDX(0),고2IDX(0),고3IDX(0),고4IDX(0),고5IDX(0), 고6IDX(0),고7IDX(0),고8IDX(0),고9IDX(0),고10IDX(0), 저1IDX(0),저2IDX(0),저3IDX(0),저4IDX(0),저5IDX(0), 저6IDX(0),저7IDX(0),저8IDX(0),저9IDX(0),저10IDX(0); var : tl21(0),tl22(0),TL31(0),tl32(0),Tl33(0),tl34(0),t(0); #==========================================# Condition1 = Highest(C,length) == C and 최종고가 <> C; Condition2 = Lowest (C,length) == C and 최종저가 <> C; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = C; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { 고9 = 고8; 고9IDX = 고8IDX; 고8 = 고7; 고8IDX = 고7IDX; 고7 = 고6; 고7IDX = 고6IDX; 고6 = 고5; 고6IDX = 고5IDX; 고5 = 고4; 고5IDX = 고4IDX; 고4 = 고3; 고4IDX = 고3IDX; 고3 = 고2; 고3IDX = 고2IDX; 고2 = 고1; 고2IDX = 고1IDX; 고1 = C; 고1IDX = Index; sBar = Index - 저1IDX; // 추세선 시작점의 위치, n봉전으로 표시 T = -1; TL1 = TL_New(sDate[sBar],sTime[sBar],저1,sDate[0],sTime[0],고1); TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); TL21 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],L[index-저2IDX],sDate[index-저1IDX],sTime[index-저1IDX],L[index-저2IDX]); TL_SetColor(TL21,CYAN); if C[index-저2IDX] != L[index-저2IDX] then{ TL22 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],C[index-저2IDX],sDate[index-저1IDX],sTime[index-저1IDX],C[index-저2IDX]); TL_SetColor(TL22,CYAN); } if T[1] != -1 Then{ plot21(L[index-저2IDX],"검색21",CYAN); plot22(C[index-저2IDX],"검색22",CYAN); } } Else If 고1 < C Then // 1번 고점보다 높은 고가 출현 { 고1 = C; 고1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],고1); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 } /* 고점추세선 */ If 고2IDX[1] <> 고2IDX Then // 고2의 Index값이 변동 없음 즉, 새로운 고점이 생기지 않았음 { 고추세최종 = 0; 고추세기울기 = 0; 고추세시작 = 0; 고추세봉개수 = 0; If 고2 < 고3 Then { 고추세기울기 = (고2 - 고3)/(고2IDX - 고3IDX); 고추세시작 = 고3; 고추세시작IDX = 고3IDX; } Else If 고2 < 고4 Then { 고추세기울기 = (고2 - 고4)/(고2IDX - 고4IDX); 고추세시작 = 고4; 고추세시작IDX = 고4IDX; } Else If 고2 < 고5 Then { 고추세기울기 = (고2 - 고5)/(고2IDX - 고5IDX); 고추세시작 = 고5; 고추세시작IDX = 고5IDX; } Else If 고2 < 고6 Then { 고추세기울기 = (고2 - 고6)/(고2IDX - 고6IDX); 고추세시작 = 고6; 고추세시작IDX = 고6IDX; } Else If 고2 < 고7 Then { 고추세기울기 = (고2 - 고7)/(고2IDX - 고7IDX); 고추세시작 = 고7; 고추세시작IDX = 고7IDX; } Else If 고2 < 고8 Then { 고추세기울기 = (고2 - 고8)/(고2IDX - 고8IDX); 고추세시작 = 고8; 고추세시작IDX = 고8IDX; } Else If 고2 < 고9 Then { 고추세기울기 = (고2 - 고9)/(고2IDX - 고9IDX); 고추세시작 = 고9; 고추세시작IDX = 고9IDX; } 고추세봉개수 = Index - 고추세시작IDX; 고추세최종 = 고추세기울기 * 고추세봉개수 + 고추세시작; If 고추세최종 > 0 Then { TL2 = TL_New(sDate[고추세봉개수],sTime[고추세봉개수],고추세시작,sDate[0],sTime[0],고추세최종); TL_SetSize(TL2,1); TL_SetColor(TL2,RED); } } Else If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종); } If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종); } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = C; If 최종변곡점 == "고점" then { 저9 = 저8; 저9IDX = 저8IDX; 저8 = 저7; 저8IDX = 저7IDX; 저7 = 저6; 저7IDX = 저6IDX; 저6 = 저5; 저6IDX = 저5IDX; 저5 = 저4; 저5IDX = 저4IDX; 저4 = 저3; 저4IDX = 저3IDX; 저3 = 저2; 저3IDX = 저2IDX; 저2 = 저1; 저2IDX = 저1IDX; 저1 = C; 저1IDX = Index; sBar = Index - 고1IDX; TL1 = TL_New(sDate[sBar],sTime[sBar],고1,sDate[0],sTime[0],저1); TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); T = 1; TL21 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],H[index-고2IDX],sDate[index-고1IDX],sTime[index-고1IDX],H[index-고2IDX]); TL_SetColor(TL21,MAGENTA); if C[index-고2IDX]!= H[index-고2IDX] then{ TL22 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],C[index-고2IDX],sDate[index-고1IDX],sTime[index-고1IDX],C[index-고2IDX]); TL_SetColor(TL22,MAGENTA); } if T[1] != 1 Then{ plot21(H[index-고2IDX],"검색21",MAGENTA); plot22(c[index-고2IDX],"검색22",MAGENTA); } } Else If 저1 > C then { 저1 = C; 저1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],저1); } /* 저점추세선 */ If 저2IDX[1] <> 저2IDX Then { 저추세최종 = 0; 저추세기울기 = 0; 저추세시작 = 0; 저추세봉개수 = 0; If 저2 > 저3 and 저3 > 0 Then { 저추세기울기 = (저2 - 저3)/(저2IDX - 저3IDX); 저추세시작 = 저3; 저추세시작IDX = 저3IDX; } Else If 저2 > 저4 and 저4 > 0 Then { 저추세기울기 = (저2 - 저4)/(저2IDX - 저4IDX); 저추세시작 = 저4; 저추세시작IDX = 저4IDX; } Else If 저2 > 저5 and 저5 > 0 Then { 저추세기울기 = (저2 - 저5)/(저2IDX - 저5IDX); 저추세시작 = 저5; 저추세시작IDX = 저5IDX; } Else If 저2 > 저6 and 저6 > 0 Then { 저추세기울기 = (저2 - 저6)/(저2IDX - 저6IDX); 저추세시작 = 저6; 저추세시작IDX = 저6IDX; } Else If 저2 > 저7 and 저7 > 0 Then { 저추세기울기 = (저2 - 저7)/(저2IDX - 저7IDX); 저추세시작 = 저7; 저추세시작IDX = 저7IDX; } Else If 저2 > 저8 and 저8 > 0 Then { 저추세기울기 = (저2 - 저8)/(저2IDX - 저8IDX); 저추세시작 = 저8; 저추세시작IDX = 저8IDX; } Else If 저2 > 저9 and 저9 > 0 Then { 저추세기울기 = (저2 - 저9)/(저2IDX - 저9IDX); 저추세시작 = 저9; 저추세시작IDX = 저9IDX; } 저추세봉개수 = Index - 저추세시작IDX; 저추세최종 = 저추세기울기 * 저추세봉개수 + 저추세시작; If 저추세최종 > 0 Then { TL3 = TL_New(sDate[저추세봉개수],sTime[저추세봉개수],저추세시작,sDate[0],sTime[0],저추세최종); TL_SetSize(TL3,1); TL_SetColor(TL3,BLUE); } } Else If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종); } If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종); } 최종변곡점 = "저점"; } TL_Delete(TL31); TL_Delete(TL32); TL_Delete(TL33); TL_Delete(TL34); If T == 1 Then{ TL31 = TL_New(sDate[index-고1IDX],sTime[index-고1IDX],H[index-고1IDX],sDate,sTime,H[index-고1IDX]); TL_SetColor(TL31,MAGENTA); if C[index-고1IDX]!= H[index-고1IDX] then{ TL32 = TL_New(sDate[index-고1IDX],sTime[index-고1IDX],C[index-고1IDX],sDate,sTime,C[index-고1IDX]); TL_SetColor(TL32,MAGENTA); } TL33 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],L[index-저2IDX],sDate,sTime,L[index-저2IDX]); TL_SetColor(TL33,cyan); if C[index-저2IDX]!= L[index-저2IDX] then{ TL34 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],C[index-저2IDX],sDate,sTime,C[index-저2IDX]); TL_SetColor(TL34,cyan); } if T[1] != 1 then{ Plot31(H[index-고1IDX],"검색31",MAGENTA); Plot32(C[index-고1IDX],"검색32",MAGENTA); Plot33(L[index-저2IDX],"검색33",cyan); Plot34(C[index-저2IDX],"검색34",cyan); } } If T == -1 Then{ TL31 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],H[index-고2IDX],sDate,sTime,H[index-고2IDX]); TL_SetColor(TL31,MAGENTA); if C[index-고2IDX]!= H[index-고2IDX] then{ TL32 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],C[index-고2IDX],sDate,sTime,C[index-고2IDX]); TL_SetColor(TL32,MAGENTA); } TL33 = TL_New(sDate[index-저1IDX],sTime[index-저1IDX],L[index-저1IDX],sDate,sTime,L[index-저1IDX]); TL_SetColor(TL33,cyan); if C[index-저1IDX]!= L[index-저1IDX] then{ TL34 = TL_New(sDate[index-저1IDX],sTime[index-저1IDX],C[index-저1IDX],sDate,sTime,C[index-저1IDX]); TL_SetColor(TL34,cyan); } if T[1] != -1 then{ Plot31(H[index-고2IDX],"검색31",MAGENTA); Plot32(C[index-고2IDX],"검색32",MAGENTA); Plot33(L[index-저1IDX],"검색33",cyan); Plot34(c[index-저1IDX],"검색34",cyan); } } 즐거운 하루되세요 > 베레타 님이 쓴 글입니다. > 제목 : 부탁드립니다 > Input:length(10); Var:최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), sBar(0),TL1(0),TL2(0),TL3(0), 고추세기울기(0),고추세봉개수(0),고추세시작(0),고추세시작IDX(0),고추세최종(0), 저추세기울기(0),저추세봉개수(0),저추세시작(0),저추세시작IDX(0),저추세최종(0); Var:고1(0),고2(0),고3(0),고4(0),고5(0),고6(0),고7(0),고8(0),고9(0),고10(0), 저1(0),저2(0),저3(0),저4(0),저5(0),저6(0),저7(0),저8(0),저9(0),저10(0), 고1IDX(0),고2IDX(0),고3IDX(0),고4IDX(0),고5IDX(0), 고6IDX(0),고7IDX(0),고8IDX(0),고9IDX(0),고10IDX(0), 저1IDX(0),저2IDX(0),저3IDX(0),저4IDX(0),저5IDX(0), 저6IDX(0),저7IDX(0),저8IDX(0),저9IDX(0),저10IDX(0); var : tl21(0),tl22(0),TL31(0),tl32(0),Tl33(0),tl34(0),t(0); #==========================================# Condition1 = Highest(C,length) == C and 최종고가 <> C; Condition2 = Lowest (C,length) == C and 최종저가 <> C; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = C; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { 고9 = 고8; 고9IDX = 고8IDX; 고8 = 고7; 고8IDX = 고7IDX; 고7 = 고6; 고7IDX = 고6IDX; 고6 = 고5; 고6IDX = 고5IDX; 고5 = 고4; 고5IDX = 고4IDX; 고4 = 고3; 고4IDX = 고3IDX; 고3 = 고2; 고3IDX = 고2IDX; 고2 = 고1; 고2IDX = 고1IDX; 고1 = C; 고1IDX = Index; sBar = Index - 저1IDX; // 추세선 시작점의 위치, n봉전으로 표시 TL1 = TL_New(sDate[sBar],sTime[sBar],저1,sDate[0],sTime[0],고1); TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); TL21 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],L[index-저2IDX],sDate[index-저1IDX],sTime[index-저1IDX],L[index-저2IDX]); TL_SetColor(TL21,CYAN); if C[index-저2IDX] != L[index-저2IDX] then{ TL22 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],C[index-저2IDX],sDate[index-저1IDX],sTime[index-저1IDX],C[index-저2IDX]); TL_SetColor(TL22,CYAN); } T = -1; } Else If 고1 < C Then // 1번 고점보다 높은 고가 출현 { 고1 = C; 고1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],고1); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 } /* 고점추세선 */ If 고2IDX[1] <> 고2IDX Then // 고2의 Index값이 변동 없음 즉, 새로운 고점이 생기지 않았음 { 고추세최종 = 0; 고추세기울기 = 0; 고추세시작 = 0; 고추세봉개수 = 0; If 고2 < 고3 Then { 고추세기울기 = (고2 - 고3)/(고2IDX - 고3IDX); 고추세시작 = 고3; 고추세시작IDX = 고3IDX; } Else If 고2 < 고4 Then { 고추세기울기 = (고2 - 고4)/(고2IDX - 고4IDX); 고추세시작 = 고4; 고추세시작IDX = 고4IDX; } Else If 고2 < 고5 Then { 고추세기울기 = (고2 - 고5)/(고2IDX - 고5IDX); 고추세시작 = 고5; 고추세시작IDX = 고5IDX; } Else If 고2 < 고6 Then { 고추세기울기 = (고2 - 고6)/(고2IDX - 고6IDX); 고추세시작 = 고6; 고추세시작IDX = 고6IDX; } Else If 고2 < 고7 Then { 고추세기울기 = (고2 - 고7)/(고2IDX - 고7IDX); 고추세시작 = 고7; 고추세시작IDX = 고7IDX; } Else If 고2 < 고8 Then { 고추세기울기 = (고2 - 고8)/(고2IDX - 고8IDX); 고추세시작 = 고8; 고추세시작IDX = 고8IDX; } Else If 고2 < 고9 Then { 고추세기울기 = (고2 - 고9)/(고2IDX - 고9IDX); 고추세시작 = 고9; 고추세시작IDX = 고9IDX; } 고추세봉개수 = Index - 고추세시작IDX; 고추세최종 = 고추세기울기 * 고추세봉개수 + 고추세시작; If 고추세최종 > 0 Then { TL2 = TL_New(sDate[고추세봉개수],sTime[고추세봉개수],고추세시작,sDate[0],sTime[0],고추세최종); TL_SetSize(TL2,1); TL_SetColor(TL2,RED); } } Else If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종); } If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종); } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = C; If 최종변곡점 == "고점" then { 저9 = 저8; 저9IDX = 저8IDX; 저8 = 저7; 저8IDX = 저7IDX; 저7 = 저6; 저7IDX = 저6IDX; 저6 = 저5; 저6IDX = 저5IDX; 저5 = 저4; 저5IDX = 저4IDX; 저4 = 저3; 저4IDX = 저3IDX; 저3 = 저2; 저3IDX = 저2IDX; 저2 = 저1; 저2IDX = 저1IDX; 저1 = C; 저1IDX = Index; sBar = Index - 고1IDX; TL1 = TL_New(sDate[sBar],sTime[sBar],고1,sDate[0],sTime[0],저1); TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); T = 1; TL21 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],H[index-고2IDX],sDate[index-고1IDX],sTime[index-고1IDX],H[index-고2IDX]); TL_SetColor(TL21,MAGENTA); if C[index-고2IDX]!= H[index-고2IDX] then{ TL22 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],C[index-고2IDX],sDate[index-고1IDX],sTime[index-고1IDX],C[index-고2IDX]); TL_SetColor(TL22,MAGENTA); } } Else If 저1 > C then { 저1 = C; 저1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],저1); } /* 저점추세선 */ If 저2IDX[1] <> 저2IDX Then { 저추세최종 = 0; 저추세기울기 = 0; 저추세시작 = 0; 저추세봉개수 = 0; If 저2 > 저3 and 저3 > 0 Then { 저추세기울기 = (저2 - 저3)/(저2IDX - 저3IDX); 저추세시작 = 저3; 저추세시작IDX = 저3IDX; } Else If 저2 > 저4 and 저4 > 0 Then { 저추세기울기 = (저2 - 저4)/(저2IDX - 저4IDX); 저추세시작 = 저4; 저추세시작IDX = 저4IDX; } Else If 저2 > 저5 and 저5 > 0 Then { 저추세기울기 = (저2 - 저5)/(저2IDX - 저5IDX); 저추세시작 = 저5; 저추세시작IDX = 저5IDX; } Else If 저2 > 저6 and 저6 > 0 Then { 저추세기울기 = (저2 - 저6)/(저2IDX - 저6IDX); 저추세시작 = 저6; 저추세시작IDX = 저6IDX; } Else If 저2 > 저7 and 저7 > 0 Then { 저추세기울기 = (저2 - 저7)/(저2IDX - 저7IDX); 저추세시작 = 저7; 저추세시작IDX = 저7IDX; } Else If 저2 > 저8 and 저8 > 0 Then { 저추세기울기 = (저2 - 저8)/(저2IDX - 저8IDX); 저추세시작 = 저8; 저추세시작IDX = 저8IDX; } Else If 저2 > 저9 and 저9 > 0 Then { 저추세기울기 = (저2 - 저9)/(저2IDX - 저9IDX); 저추세시작 = 저9; 저추세시작IDX = 저9IDX; } 저추세봉개수 = Index - 저추세시작IDX; 저추세최종 = 저추세기울기 * 저추세봉개수 + 저추세시작; If 저추세최종 > 0 Then { TL3 = TL_New(sDate[저추세봉개수],sTime[저추세봉개수],저추세시작,sDate[0],sTime[0],저추세최종); TL_SetSize(TL3,1); TL_SetColor(TL3,BLUE); } } Else If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종); } If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종); } 최종변곡점 = "저점"; } TL_Delete(TL31); TL_Delete(TL32); TL_Delete(TL33); TL_Delete(TL34); If T == 1 Then{ TL31 = TL_New(sDate[index-고1IDX],sTime[index-고1IDX],H[index-고1IDX],sDate,sTime,H[index-고1IDX]); TL_SetColor(TL31,MAGENTA); if C[index-고1IDX]!= H[index-고1IDX] then{ TL32 = TL_New(sDate[index-고1IDX],sTime[index-고1IDX],C[index-고1IDX],sDate,sTime,C[index-고1IDX]); TL_SetColor(TL32,MAGENTA); } TL33 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],L[index-저2IDX],sDate,sTime,L[index-저2IDX]); TL_SetColor(TL33,cyan); if C[index-저2IDX]!= L[index-저2IDX] then{ TL34 = TL_New(sDate[index-저2IDX],sTime[index-저2IDX],C[index-저2IDX],sDate,sTime,C[index-저2IDX]); TL_SetColor(TL34,cyan); } } If T == -1 Then{ TL31 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],H[index-고2IDX],sDate,sTime,H[index-고2IDX]); TL_SetColor(TL31,MAGENTA); if C[index-고2IDX]!= H[index-고2IDX] then{ TL32 = TL_New(sDate[index-고2IDX],sTime[index-고2IDX],C[index-고2IDX],sDate,sTime,C[index-고2IDX]); TL_SetColor(TL32,MAGENTA); } TL33 = TL_New(sDate[index-저1IDX],sTime[index-저1IDX],L[index-저1IDX],sDate,sTime,L[index-저1IDX]); TL_SetColor(TL33,cyan); if C[index-저1IDX]!= L[index-저1IDX] then{ TL34 = TL_New(sDate[index-저1IDX],sTime[index-저1IDX],C[index-저1IDX],sDate,sTime,C[index-저1IDX]); TL_SetColor(TL34,cyan); } } ************************************************************************** 윗식에서 TL 21, TL 22, TL 31, TL 32, TL 33, TL 34의 수평선이 생성되면 그 수평선 생성싯점 당시의 해당 캔들에 검색식으로 점을 찍어 주세요. 수평선을 대신해서 점을 찍어 달라는게 아니라 챠트에 수평선이 생성될때 그싯점의 캔들에 점을 찍어 달라는 것입니다 (그러므로 수평선상 위치에 있는 캔들과 검색식의 점은 그위치가 상이할 수 있습니다) 이때 검색식 점 색깔은 각각 해당되는 TL선의 색깔로 지정해 주세요 부탁드립니다. 감사합니다