커뮤니티

검색

프로필 이미지
자라도
2017-04-21 16:13:14
188
글번호 109052
답변완료
# 52983번 질문을 아래 고점 저점 추세선을 변경해서 저점하락 검색을 하려고 하는데 안되네요 제일 밑부분에서 만 수정하면 될줄알았는데 안되내요 안되는건지 방법이 틀린건지 부탁드립니다. ##################################################### 안녕하세요 예스스탁입니다. NumToStr은 숫자를 텍스트로 바꾸는 함수입니다. 텍스트로 출력하거나 할때 숫자를 텍스트로 변형해야 하므로 사용하는 함수입니다. 비교문에서는 숫자로 사용하셔야 합니다. var3 = (저점[1,1]-고점[1,1])/고점[1,1]*100; if var3 < -30 Then find(1); 이부분만 삽입해서는 안되내요 ####################################################### Input:length(50); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),T(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],0)+"/"+NumToStr((고점[1,1]-저점[1,1])/저점[1,1]*100,2)+"%"); /*Text_SetStyle(Text1, 0, 0);#(Text1, 2, 1);*/ Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,RED); } } 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],0)+"저점/"+NumToStr((저점[1,1]-고점[1,1])/고점[1,1]*100,2)+"%"); ################################################### 삽입했던 부분 ################################################ Text_SetStyle(Text1, 2, 0);#(Text1, 2, 0); Text_SetColor(Text1,BLUE); } } TL_SetSize(TL1,5); TL_SetColor(TL1,BLACK); If 처리구분 == "고점처리" Then T = 1; If 처리구분 == "저점처리" Then T = -1;
검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-04-21 16:58:55

안녕하세요 예스스탁입니다. 종목검색이면 모든 추세선출력이나 텍스트출력 관련 함수는 필요가 없습니다. 해당 함수는 단순 차트에 표시를 하는 부분이므로 제외하고 아래와 같이 작성해 사용하시면 됩니다. 종목검색은 최대 제공봉수가 500봉입니다. 속성화면에서 검색에 필효한 최소기간에 최대인 500으로 봉수 지정하고 검색하시기 바랍니다. Input:length(50); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),T(0), ext1(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 처리구분 == "저점처리" 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 저점[1,1] > 0 and 고점[1,1] > 0 then{ var3 = (저점[1,1]-고점[1,1])/고점[1,1]*100; plot1(var3); } 즐거운 하루되세요 > 자라도 님이 쓴 글입니다. > 제목 : 검색 > # 52983번 질문을 아래 고점 저점 추세선을 변경해서 저점하락 검색을 하려고 하는데 안되네요 제일 밑부분에서 만 수정하면 될줄알았는데 안되내요 안되는건지 방법이 틀린건지 부탁드립니다. ##################################################### 안녕하세요 예스스탁입니다. NumToStr은 숫자를 텍스트로 바꾸는 함수입니다. 텍스트로 출력하거나 할때 숫자를 텍스트로 변형해야 하므로 사용하는 함수입니다. 비교문에서는 숫자로 사용하셔야 합니다. var3 = (저점[1,1]-고점[1,1])/고점[1,1]*100; if var3 < -30 Then find(1); 이부분만 삽입해서는 안되내요 ####################################################### Input:length(50); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),T(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],0)+"/"+NumToStr((고점[1,1]-저점[1,1])/저점[1,1]*100,2)+"%"); /*Text_SetStyle(Text1, 0, 0);#(Text1, 2, 1);*/ Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,RED); } } 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],0)+"저점/"+NumToStr((저점[1,1]-고점[1,1])/고점[1,1]*100,2)+"%"); ################################################### 삽입했던 부분 ################################################ Text_SetStyle(Text1, 2, 0);#(Text1, 2, 0); Text_SetColor(Text1,BLUE); } } TL_SetSize(TL1,5); TL_SetColor(TL1,BLACK); If 처리구분 == "고점처리" Then T = 1; If 처리구분 == "저점처리" Then T = -1;