커뮤니티

고점과 저점 표시방법에 대해 문의드립니다.

프로필 이미지
민기삼촌
2016-06-01 00:13:25
258
글번호 98667
답변완료

첨부 이미지

항상 친절하고 빠른 답변에 감사드립니다. 아래와 같은 지그재그 변곡점 수식에서 고점과 저점의 표시 방법을 소숫점이하 1자리(50.1)에서 소숫점이하 2자리(50.06) 또는 4자리(50.0601)로 표시하는 방법을 알려 주시면 고맙겠습니다. 어느 부분에서 수정을 해야 하는지 주석을 달아 주시면 더욱 좋겠습니다. Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TT(0), TL1(0), Text1(0),처리구분(""); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],1)); Text_SetStyle(Text1, 2, 1); } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1], NumToStr(저점[1,1],1)); Text_SetStyle(Text1, 2, 0); } } TL_SetSize(TL1, 5); TL_SetColor(TL1, GRAY); If 처리구분 == "고점처리" Then TT = 1; plot1(1,"저점",GREEN, def, 2); If 처리구분 == "저점처리" Then TT = -1; plot2(2,"고점",YELLOW, def, 2);
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2016-06-01 16:32:35

안녕하세요 예스스탁입니다. 차트에 텍스트를 출력하는 함수가 Text_New함수이고 해당 함수의 4번째변수가 출력값입니다. 출력값이 숫자이면 스트링으로 변경해서 하는데 숫자를 스트링으로 변경해 주는 함수가 NumToStr(숫자값, 소수점자리수)이고 해당 함수에 자리수를 지정합니다. 외부변수로 출력되는 값의 소숫점자리수를 변경하실수 있게 수정해드립니다 Input:length(12),소숫점자리수(1); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TT(0), TL1(0), text1(0),처리구분(""); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); #텍스트 출력 Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],소숫점자리수)); Text_SetStyle(Text1, 2, 1); } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); #텍스트출력 Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1], NumToStr(저점[1,1],소숫점자리수)); Text_SetStyle(Text1, 2, 0); } } TL_SetSize(TL1, 5); TL_SetColor(TL1, GRAY); If 처리구분 == "고점처리" Then TT = 1; plot1(1,"저점",GREEN, def, 2); If 처리구분 == "저점처리" Then TT = -1; plot2(2,"고점",YELLOW, def, 2); 즐거운 하루되세요 > 민기삼촌 님이 쓴 글입니다. > 제목 : 고점과 저점 표시방법에 대해 문의드립니다. > 항상 친절하고 빠른 답변에 감사드립니다. 아래와 같은 지그재그 변곡점 수식에서 고점과 저점의 표시 방법을 소숫점이하 1자리(50.1)에서 소숫점이하 2자리(50.06) 또는 4자리(50.0601)로 표시하는 방법을 알려 주시면 고맙겠습니다. 어느 부분에서 수정을 해야 하는지 주석을 달아 주시면 더욱 좋겠습니다. Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TT(0), TL1(0), Text1(0),처리구분(""); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],1)); Text_SetStyle(Text1, 2, 1); } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1], NumToStr(저점[1,1],1)); Text_SetStyle(Text1, 2, 0); } } TL_SetSize(TL1, 5); TL_SetColor(TL1, GRAY); If 처리구분 == "고점처리" Then TT = 1; plot1(1,"저점",GREEN, def, 2); If 처리구분 == "저점처리" Then TT = -1; plot2(2,"고점",YELLOW, def, 2);
프로필 이미지

민기삼촌

2016-06-01 16:46:28

빠른 답변 고맙습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 고점과 저점 표시방법에 대해 문의드립니다. > 안녕하세요 예스스탁입니다. 차트에 텍스트를 출력하는 함수가 Text_New함수이고 해당 함수의 4번째변수가 출력값입니다. 출력값이 숫자이면 스트링으로 변경해서 하는데 숫자를 스트링으로 변경해 주는 함수가 NumToStr(숫자값, 소수점자리수)이고 해당 함수에 자리수를 지정합니다. 외부변수로 출력되는 값의 소숫점자리수를 변경하실수 있게 수정해드립니다 Input:length(12),소숫점자리수(1); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TT(0), TL1(0), text1(0),처리구분(""); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); #텍스트 출력 Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],소숫점자리수)); Text_SetStyle(Text1, 2, 1); } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); #텍스트출력 Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1], NumToStr(저점[1,1],소숫점자리수)); Text_SetStyle(Text1, 2, 0); } } TL_SetSize(TL1, 5); TL_SetColor(TL1, GRAY); If 처리구분 == "고점처리" Then TT = 1; plot1(1,"저점",GREEN, def, 2); If 처리구분 == "저점처리" Then TT = -1; plot2(2,"고점",YELLOW, def, 2); 즐거운 하루되세요 > 민기삼촌 님이 쓴 글입니다. > 제목 : 고점과 저점 표시방법에 대해 문의드립니다. > 항상 친절하고 빠른 답변에 감사드립니다. 아래와 같은 지그재그 변곡점 수식에서 고점과 저점의 표시 방법을 소숫점이하 1자리(50.1)에서 소숫점이하 2자리(50.06) 또는 4자리(50.0601)로 표시하는 방법을 알려 주시면 고맙겠습니다. 어느 부분에서 수정을 해야 하는지 주석을 달아 주시면 더욱 좋겠습니다. Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TT(0), TL1(0), Text1(0),처리구분(""); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],1)); Text_SetStyle(Text1, 2, 1); } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1], NumToStr(저점[1,1],1)); Text_SetStyle(Text1, 2, 0); } } TL_SetSize(TL1, 5); TL_SetColor(TL1, GRAY); If 처리구분 == "고점처리" Then TT = 1; plot1(1,"저점",GREEN, def, 2); If 처리구분 == "저점처리" Then TT = -1; plot2(2,"고점",YELLOW, def, 2);