커뮤니티

수식수정 요청합니다

프로필 이미지
bestkim
2019-05-22 17:24:00
231
글번호 128888
답변완료
안녕하세요 아래수식을 data2수식으로 사용하려합니다 수식 수정부탁드립니다 Input:length(2),종가사용여부(0),파동선두께(5),파동선두께고저선(5),수치표시수(1),수치표시세모(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),Text2(0),tl2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL2 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); If 수치표시세모 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],"★--"); Text_SetStyle(Text1, 0, 2); Text_SetColor(Text1,BLUE); Text_SetSize(Text1, 20); } If 수치표시수 == 1 Then { Text2 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text2, 2, 1); Text_SetColor(Text2,BLACK); Text_SetSize(Text2, 12); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,BLACK); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시세모 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,"★--"); } If 수치표시수 == 1 Then { Text_SetLocation(Text2,고[1,3],고[1,4],고[1,1]); Text_SetString(Text2,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL2 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); If 수치표시세모 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],"★--"); Text_SetStyle(Text1, 0, 2); Text_SetColor(Text1,RED); Text_SetSize(Text1, 20); } If 수치표시수 == 1 Then { Text2 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text2, 2, 0); Text_SetColor(Text2,BLACK); Text_SetSize(Text2, 12); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,BLACK); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); If 수치표시세모 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,"★--"); } If 수치표시수 == 1 Then { Text_SetLocation(Text2,저[1,3],저[1,4],저[1,1]); Text_SetString(Text2,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-05-23 11:33:43

안녕하세요 예스스탁입니다. 참조데이타에 적용하시기 위해서는 수정된 수식을 차트에 적용 후에 마우스로 끌어 참조데이타 위로 옮기셔야 합니다. 마우스로 잡고 옮길 지표가 필요해 data2의 시초가를 그리게 했습니다. 해당 지표를 마우스로 끌어 data2위로 올리시면 추세선과 텍스트가 출력되게 됩니다. Input:length(2),종가사용여부(0),파동선두께(5),파동선두께고저선(5),수치표시수(1),수치표시세모(1); Var:j(0,data2),jj(0,data2),HH(0,data2),LL(0,data2),최종고가(0,data2),최종저가(0,data2),최종꼭지점("",data2),처리구분("",data2), TL1(0,data2),Text1(0,data2),Text2(0,data2),tl2(0,data2); Array:고[10,4](0,data2),저[10,4](0,data2); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# var : cond1(false,data2),cond2(false,data2); HH = data2(IFF(종가사용여부==1,C,H)); LL = data2(IFF(종가사용여부==1,C,L)); If data2(Index == 0) Then { 고[1,1] = HH; 저[1,1] = LL; } cond1 = data2(Highest(HH,length) == HH and 최종고가 <> HH); cond2 = data2(Lowest (LL,length) == LL and 최종저가 <> LL); 처리구분 = ""; If cond1 and cond2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If cond1 Then 처리구분 = "고점처리"; Else If cond2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = data2(Index); 고[1,3] = data2(sDate); 고[1,4] = data2(sTime); TL1 = TL_New_self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL2 = TL_New_self(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); If 수치표시세모 == 1 Then { Text1 = Text_New_self(고[1,3],고[1,4],고[1,1],"★--"); Text_SetStyle(Text1, 0, 2); Text_SetColor(Text1,BLUE); Text_SetSize(Text1, 20); } If 수치표시수 == 1 Then { Text2 = Text_New_self(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text2, 2, 1); Text_SetColor(Text2,BLACK); Text_SetSize(Text2, 12); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,BLACK); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = data2(Index); 고[1,3] = data2(sDate); 고[1,4] = data2(sTime); TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시세모 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,"★--"); } If 수치표시수 == 1 Then { Text_SetLocation(Text2,고[1,3],고[1,4],고[1,1]); Text_SetString(Text2,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = data2(Index); 저[1,3] = data2(sDate); 저[1,4] = data2(sTime); TL1 = TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL2 = TL_New_Self(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); If 수치표시세모 == 1 Then { Text1 = Text_New_self(저[1,3],저[1,4],저[1,1],"★--"); Text_SetStyle(Text1, 0, 2); Text_SetColor(Text1,RED); Text_SetSize(Text1, 20); } If 수치표시수 == 1 Then { Text2 = Text_New_self(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text2, 2, 0); Text_SetColor(Text2,BLACK); Text_SetSize(Text2, 12); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,BLACK); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = data2(Index); 저[1,3] = data2(sDate); 저[1,4] = data2(sTime); TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); If 수치표시세모 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,"★--"); } If 수치표시수 == 1 Then { Text_SetLocation(Text2,저[1,3],저[1,4],저[1,1]); Text_SetString(Text2,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; } plot1(data2(opend(0))); 즐거운 하루되세요 > bestkim 님이 쓴 글입니다. > 제목 : 수식수정 요청합니다 > 안녕하세요 아래수식을 data2수식으로 사용하려합니다 수식 수정부탁드립니다 Input:length(2),종가사용여부(0),파동선두께(5),파동선두께고저선(5),수치표시수(1),수치표시세모(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),Text2(0),tl2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL2 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); If 수치표시세모 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],"★--"); Text_SetStyle(Text1, 0, 2); Text_SetColor(Text1,BLUE); Text_SetSize(Text1, 20); } If 수치표시수 == 1 Then { Text2 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text2, 2, 1); Text_SetColor(Text2,BLACK); Text_SetSize(Text2, 12); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,BLACK); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시세모 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,"★--"); } If 수치표시수 == 1 Then { Text_SetLocation(Text2,고[1,3],고[1,4],고[1,1]); Text_SetString(Text2,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL2 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); If 수치표시세모 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],"★--"); Text_SetStyle(Text1, 0, 2); Text_SetColor(Text1,RED); Text_SetSize(Text1, 20); } If 수치표시수 == 1 Then { Text2 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text2, 2, 0); Text_SetColor(Text2,BLACK); Text_SetSize(Text2, 12); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,BLACK); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); If 수치표시세모 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,"★--"); } If 수치표시수 == 1 Then { Text_SetLocation(Text2,저[1,3],저[1,4],저[1,1]); Text_SetString(Text2,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }