커뮤니티

추가수식 부탁합니다.

프로필 이미지
nicejon
2019-10-24 14:56:20
232
글번호 133093
답변완료
아래수식에 아래와 같은 수식을 추가하고 싶습니다. 1) 모든 추세선에 굵기조정을 할수 있는 기능을 추가하고 싶습니다. 2) 상승추세선을 빨강, 하락추세선은 파랑으로 나타내고 싶습니다. 3) 추세선이 나오는 고점과 고점을 연결하는 빨간선을 추세선이 나오는 저점과 저점을 연결하는 파란선을 나타내고 싶습니다. 4) 직전 고,저점2와 연결하는선을 없애고 싶습니다. 5) 직전 고점과 저점에서 나오는 선들이 현재 진행되는 봉까지 연장되었으면 합니다.. 감사합니다... input : Left(5),right(5),표시소숫점자리(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if SHV[1] > 0 Then { TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); } if SHV[2] > 0 Then { TL_Delete(HTL2); HTL2 = TL_New(SHD[2],SHT[2],SHV[2],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL2,RED); } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if SLV[1] > 0 Then { TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); } if SLV[2] > 0 Then { TL_Delete(LTL2); LTL2 = TL_New(SLD[2],SLT[2],SLV[2],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL2,BLUE); } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 0; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 0; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } }
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2019-10-24 16:54:16

안녕하세요 예스스탁입니다. 연장변수에 0이면 기존과 같이 고점과 저점이 그려지다가 가격과 만나면 그만그려지게 됩니다. 연장에 1이상의 값을 넣으시면 현재봉까지 모두 그려지게 됩니다. input : Left(5),right(5),표시소숫점자리(0),굵기(2),연장(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { #TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { #TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); TL_SetSize(SHTL[0],굵기); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,BLUE); } if SLV[1] > 0 Then { #TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,blue); } if SLV[1] > 0 Then { #TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); TL_SetSize(SLTL[0],굵기); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 연장; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 연장; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } } 즐거운 하루되세요 > nicejon 님이 쓴 글입니다. > 제목 : 추가수식 부탁합니다. > 아래수식에 아래와 같은 수식을 추가하고 싶습니다. 1) 모든 추세선에 굵기조정을 할수 있는 기능을 추가하고 싶습니다. 2) 상승추세선을 빨강, 하락추세선은 파랑으로 나타내고 싶습니다. 3) 추세선이 나오는 고점과 고점을 연결하는 빨간선을 추세선이 나오는 저점과 저점을 연결하는 파란선을 나타내고 싶습니다. 4) 직전 고,저점2와 연결하는선을 없애고 싶습니다. 5) 직전 고점과 저점에서 나오는 선들이 현재 진행되는 봉까지 연장되었으면 합니다.. 감사합니다... input : Left(5),right(5),표시소숫점자리(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if SHV[1] > 0 Then { TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); } if SHV[2] > 0 Then { TL_Delete(HTL2); HTL2 = TL_New(SHD[2],SHT[2],SHV[2],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL2,RED); } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if SLV[1] > 0 Then { TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); } if SLV[2] > 0 Then { TL_Delete(LTL2); LTL2 = TL_New(SLD[2],SLT[2],SLV[2],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL2,BLUE); } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 0; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 0; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } }
프로필 이미지

nicejon

2019-10-24 17:03:53

수고 많으셨습니다.. 그런데 4)번이 수정 안된것 같습니다... > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 추가수식 부탁합니다. > 안녕하세요 예스스탁입니다. 연장변수에 0이면 기존과 같이 고점과 저점이 그려지다가 가격과 만나면 그만그려지게 됩니다. 연장에 1이상의 값을 넣으시면 현재봉까지 모두 그려지게 됩니다. input : Left(5),right(5),표시소숫점자리(0),굵기(2),연장(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { #TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { #TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); TL_SetSize(SHTL[0],굵기); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,BLUE); } if SLV[1] > 0 Then { #TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,blue); } if SLV[1] > 0 Then { #TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); TL_SetSize(SLTL[0],굵기); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 연장; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 연장; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } } 즐거운 하루되세요 > nicejon 님이 쓴 글입니다. > 제목 : 추가수식 부탁합니다. > 아래수식에 아래와 같은 수식을 추가하고 싶습니다. 1) 모든 추세선에 굵기조정을 할수 있는 기능을 추가하고 싶습니다. 2) 상승추세선을 빨강, 하락추세선은 파랑으로 나타내고 싶습니다. 3) 추세선이 나오는 고점과 고점을 연결하는 빨간선을 추세선이 나오는 저점과 저점을 연결하는 파란선을 나타내고 싶습니다. 4) 직전 고,저점2와 연결하는선을 없애고 싶습니다. 5) 직전 고점과 저점에서 나오는 선들이 현재 진행되는 봉까지 연장되었으면 합니다.. 감사합니다... input : Left(5),right(5),표시소숫점자리(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if SHV[1] > 0 Then { TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); } if SHV[2] > 0 Then { TL_Delete(HTL2); HTL2 = TL_New(SHD[2],SHT[2],SHV[2],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL2,RED); } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if SLV[1] > 0 Then { TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); } if SLV[2] > 0 Then { TL_Delete(LTL2); LTL2 = TL_New(SLD[2],SLT[2],SLV[2],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL2,BLUE); } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 0; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 0; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } }
프로필 이미지

예스스탁 예스스탁 답변

2019-10-24 17:08:50

안녕하세요 예스스탁입니다. 전전고점과 최근고점, 전전저점과 최근 저점을 연결하는 선은 삭제했습니다. 가장최근 연결선만 남기고 이전은 모두 지우고자 하시면 아래식 이용하시면 됩니다. input : Left(5),right(5),표시소숫점자리(0),굵기(2),연장(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); TL_SetSize(SHTL[0],굵기); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,BLUE); } if SLV[1] > 0 Then { TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,blue); } if SLV[1] > 0 Then { TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); TL_SetSize(SLTL[0],굵기); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 연장; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 연장; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } } 즐거운 하루되세요 > nicejon 님이 쓴 글입니다. > 제목 : Re : Re : 추가수식 부탁합니다. > 수고 많으셨습니다.. 그런데 4)번이 수정 안된것 같습니다... > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 추가수식 부탁합니다. > 안녕하세요 예스스탁입니다. 연장변수에 0이면 기존과 같이 고점과 저점이 그려지다가 가격과 만나면 그만그려지게 됩니다. 연장에 1이상의 값을 넣으시면 현재봉까지 모두 그려지게 됩니다. input : Left(5),right(5),표시소숫점자리(0),굵기(2),연장(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { #TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,red); } if SHV[1] > 0 Then { #TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); TL_SetSize(HTL1,굵기); } } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); TL_SetSize(SHTL[0],굵기); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,BLUE); } if SLV[1] > 0 Then { #TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); TL_SetSize(TL,굵기); TL_SetColor(TL,blue); } if SLV[1] > 0 Then { #TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); TL_SetSize(LTL1,굵기); } } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); TL_SetSize(SLTL[0],굵기); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 연장; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 연장; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } } 즐거운 하루되세요 > nicejon 님이 쓴 글입니다. > 제목 : 추가수식 부탁합니다. > 아래수식에 아래와 같은 수식을 추가하고 싶습니다. 1) 모든 추세선에 굵기조정을 할수 있는 기능을 추가하고 싶습니다. 2) 상승추세선을 빨강, 하락추세선은 파랑으로 나타내고 싶습니다. 3) 추세선이 나오는 고점과 고점을 연결하는 빨간선을 추세선이 나오는 저점과 저점을 연결하는 파란선을 나타내고 싶습니다. 4) 직전 고,저점2와 연결하는선을 없애고 싶습니다. 5) 직전 고점과 저점에서 나오는 선들이 현재 진행되는 봉까지 연장되었으면 합니다.. 감사합니다... input : Left(5),right(5),표시소숫점자리(0); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0); Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; for cnt = 1 to 4 { SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if SLV[0] > 0 Then { TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if var1 >= 2 and H[right] > SHV[0] then { SHD[0] = sdate[right]; SHT[0] = stime[right]; SHV[0] = H[right]; if SLV[0] > 0 Then { TL_Delete(TL); TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]); } } if SHV[1] > 0 Then { TL_Delete(HTL1); HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL1,RED); } if SHV[2] > 0 Then { TL_Delete(HTL2); HTL2 = TL_New(SHD[2],SHT[2],SHV[2],SHD[0],SHT[0],SHV[0]); TL_SetColor(HTL2,RED); } SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]); TL_SetColor(SHTL[0],RED); SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리)); Text_SetColor(SHTX[0],RED); Text_SetStyle(SHTX[0],2,1); for cnt = 1 to 99 { SHTL[cnt] = SHTL[cnt-1][1]; SHTX[cnt] = SHTX[cnt-1][1]; } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { #plot2(L,"2",blue); var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; for cnt = 1 to 4 { SLD[cnt] = SLD[cnt-1][1]; SLT[cnt] = SLT[cnt-1][1]; SLV[cnt] = SLV[cnt-1][1]; } if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if var2 >= 2 and L[right] < SLV[0] then { SLD[0] = sdate[right]; SLT[0] = stime[right]; SLV[0] = L[right]; TL_Delete(TL); if SHV[0] > 0 Then { TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]); } } if SLV[1] > 0 Then { TL_Delete(LTL1); LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL1,BLUE); } if SLV[2] > 0 Then { TL_Delete(LTL2); LTL2 = TL_New(SLD[2],SLT[2],SLV[2],SLD[0],SLT[0],SLV[0]); TL_SetColor(LTL2,BLUE); } SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]); TL_SetColor(SLTL[0],BLUE); SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리)); Text_SetColor(SLTX[0],BLUE); Text_SetStyle(SLTX[0],2,0); for cnt = 1 to 99 { SLTL[cnt] = SLTL[cnt-1][1]; SLTX[cnt] = SLTX[cnt-1][1]; } } for cnt = 0 to 99 { if SHTL[cnt] > 0 then { TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); if H >= TL_GetBeginVal(SHTL[cnt]) Then SHTL[cnt] = 0; } if SLTL[cnt] > 0 then { TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); if L <= TL_GetBeginVal(SLTL[cnt]) Then SLTL[cnt] = 0; } if SHTL[cnt] > 0 Then { Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt])); } if SLTL[cnt] > 0 Then { Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt])); } }