커뮤니티

고점 저점 추세선 수정부탁해요.

프로필 이미지
solution
2024-07-12 00:50:39
685
글번호 181411
답변완료

첨부 이미지

고점 저점 추세선 기존 수식입니다. SwingHigh 기준봉의 고가와 저가가 있습니다. 위 기준봉의 저가 보다 가격이 하락하면 그때 swinghigh 기준봉 고가를 진짜 고가로 인정해주고, swinglow 기준봉의 저가와 고가가 있는데 가격이 위 고가 보다 더 상승할 때 위 기준봉의 저가를 진짜 저가로 인정해서 찐 고가와 저가만 추세선을 연결하게 수정부탁드려요. [기준봉의 고가 저가 범위 내에서 가격이 움직일 때(가끔 기준봉의 범위가 커서 예를 들어 상한가 양봉과 같이 그 안에서 가격이 등락하면서 잉태형 캔들들이 swinghigh나 low를 만들어도 잉태형 캔들은)는 무시하고 추후 가격이 기준봉의 고가나 저가를 돌파할 때 ( 예를 들어 과거 장대 양봉) 기준봉의 고가나 저가를 기준점으로 인정해서 추세선을 그리도록] 그리고 이전 SwingHigh 기준봉의 저가를 돌파하며 하락하는 종목 검색식, 이전 swinglow 기준봉의 고가를 상승 돌파하는 종목 검색식 부탁합니다. input : Left(5),right(5); 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); Array : SLD[5](0),SLT[5](0),SLV[5](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); } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { 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); } }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-07-12 13:40:37

안녕하세요 예스스탁입니다. 1 스윙하이 발생 후 기준봉의 저가보다 낮은 종가발생 스윙로우 발생 후 기준봉의 고가보다 높은 종가발생 할때 확정되게 수정해 드립니다. input : Left(5),right(5); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); var : hd(0),ht(0),hh(0),ld(0),lt(0),ll(0); Array : SHD[5](0),SHT[5](0),SHV[5](0); Array : SLD[5](0),SLT[5](0),SLV[5](0); var : SHL(0),SLH(0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { T = 1; SHL = L[Right]; hd = sDate[right]; hT = sTime[right]; hh = H[right]; } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { T = -1; SLH = H[right]; ld = sDate[right]; lT = sTime[right]; ll = L[right]; } if T == 1 and C < SHL Then { T = 2; var2 = 0; var1 = var1+1; if var1 == 1 then { SHD[0] = hd; SHT[0] = ht; SHV[0] = hh; 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); } } if T == -1 and C > SLH Then { T = -2; var1 = 0; var2 = var2+1; if var2 == 1 then { SLD[0] = ld; SLT[0] = lt; SLV[0] = ll; 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); } } 2 input : Left(5),right(5); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); var : hd(0),ht(0),hh(0),ld(0),lt(0),ll(0); Array : SHD[5](0),SHT[5](0),SHV[5](0); Array : SLD[5](0),SLT[5](0),SLV[5](0); var : SHL(0),SLH(0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { T = 1; SHL = L[Right]; hd = sDate[right]; hT = sTime[right]; hh = H[right]; } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { T = -1; SLH = H[right]; ld = sDate[right]; lT = sTime[right]; ll = L[right]; } if T == 1 and C < SHL Then { T = 2; Find(1); } 3 input : Left(5),right(5); var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0); var : hd(0),ht(0),hh(0),ld(0),lt(0),ll(0); Array : SHD[5](0),SHT[5](0),SHV[5](0); Array : SLD[5](0),SLT[5](0),SLV[5](0); var : SHL(0),SLH(0); if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then { T = 1; SHL = L[Right]; hd = sDate[right]; hT = sTime[right]; hh = H[right]; } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { T = -1; SLH = H[right]; ld = sDate[right]; lT = sTime[right]; ll = L[right]; } if T == -1 and C > SLH Then { T = -2; Find(1); } 즐거운 하루되세요 > solution 님이 쓴 글입니다. > 제목 : 고점 저점 추세선 수정부탁해요. > 고점 저점 추세선 기존 수식입니다. SwingHigh 기준봉의 고가와 저가가 있습니다. 위 기준봉의 저가 보다 가격이 하락하면 그때 swinghigh 기준봉 고가를 진짜 고가로 인정해주고, swinglow 기준봉의 저가와 고가가 있는데 가격이 위 고가 보다 더 상승할 때 위 기준봉의 저가를 진짜 저가로 인정해서 찐 고가와 저가만 추세선을 연결하게 수정부탁드려요. [기준봉의 고가 저가 범위 내에서 가격이 움직일 때(가끔 기준봉의 범위가 커서 예를 들어 상한가 양봉과 같이 그 안에서 가격이 등락하면서 잉태형 캔들들이 swinghigh나 low를 만들어도 잉태형 캔들은)는 무시하고 추후 가격이 기준봉의 고가나 저가를 돌파할 때 ( 예를 들어 과거 장대 양봉) 기준봉의 고가나 저가를 기준점으로 인정해서 추세선을 그리도록] 그리고 이전 SwingHigh 기준봉의 저가를 돌파하며 하락하는 종목 검색식, 이전 swinglow 기준봉의 고가를 상승 돌파하는 종목 검색식 부탁합니다. input : Left(5),right(5); 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); Array : SLD[5](0),SLT[5](0),SLV[5](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); } } if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then { 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); } }