커뮤니티

추세선 하락 3파

프로필 이미지
고성
2024-10-02 11:32:15
650
글번호 183901
답변완료

첨부 이미지

Input : 전환(0.2); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""); Array:고[10,4](0),저[10,4](0); var : TL(0), TL1(0),T(0),Tx(0); Plot1(c); HH = H; LL = L; If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1]+전환 <= HH and hiBar == 0; Condition2 = 고[1,1]-전환 >= LL and loBar == 0; 처리구분 = ""; 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 { t = 1; If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Red); Text_SetSize(tx,25); Text_SetColor(tx,Blue); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); if abs(고[1,1][1]-저[1,1][1]) < 0.5 Then Text_Delete(tx); TX = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1]-저[1,1],2)); Text_SetSize(tx,25); Text_SetColor(tx,Red); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); Condition8 = False; if Condition8 == False and 저[1,1]<= 고[1,1]-0.5 Then { Condition8 = true; } } If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; if Condition8 == False and 저[1,1] <= 고[1,1]-0.5 Then { Condition8 = true; TL1= TL_New(sDate,sTime,h-0.5,sDate,sTime,-999); TL_SetColor(TL1,Red); TL_SetSize(TL1,2); } TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]); Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)); Text_SetLocation(TX,고[1,3],고[1,4],고[1,1]); } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { t = -1; If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Green); Text_SetSize(tx,25); Text_SetColor(tx,Red); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); if abs(고[1,1][1]-저[1,1][1]) < 0.5 Then Text_Delete(tx); TX = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(고[1,1]-저[1,1],2)); Text_SetSize(tx,25); Text_SetColor(tx,Blue); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); Condition4 = False; if Condition4 == False and 저[1,1]<= 고[1,1]-0.5 Then { Condition4 = true; } } If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; if Condition4 == False and 저[1,1] <= 고[1,1]-0.5 Then { Condition4 = true; TL1= TL_New(sDate,sTime,L+0.5,sDate,sTime,999); TL_SetColor(TL1,Blue); TL_SetSize(TL1,2); } TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]); Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)); Text_SetLocation(TX,저[1,3],저[1,4],저[1,1]); } 최종꼭지점 = "저점"; } 추세선의 크기가 0.5 이상이면 세로선 표시되는 수식입니다. 하락추세선의 크기가 0.5 이상일 때만 카운트해서 세번째 하락 0.5파에 네모 표시. 0.5 이하는 무시. 저점은 무관. (고점 낮은 세번째 세로선) 고점이 같거나 낮을 때만 카운트. 직전 하락 0.5파보다 고점이 높으면 다시 새로 카운트. 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-10-02 14:22:45

안녕하세요 예스스탁입니다. 올려주신 내용은 작성해 보는데 시간이 많이 소모되는 내용으로 업무상 일정 시간이상 요구되는 내용은 작성해 드리기 어렵습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 고성 님이 쓴 글입니다. > 제목 : 추세선 하락 3파 > Input : 전환(0.2); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""); Array:고[10,4](0),저[10,4](0); var : TL(0), TL1(0),T(0),Tx(0); Plot1(c); HH = H; LL = L; If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1]+전환 <= HH and hiBar == 0; Condition2 = 고[1,1]-전환 >= LL and loBar == 0; 처리구분 = ""; 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 { t = 1; If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Red); Text_SetSize(tx,25); Text_SetColor(tx,Blue); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); if abs(고[1,1][1]-저[1,1][1]) < 0.5 Then Text_Delete(tx); TX = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1]-저[1,1],2)); Text_SetSize(tx,25); Text_SetColor(tx,Red); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); Condition8 = False; if Condition8 == False and 저[1,1]<= 고[1,1]-0.5 Then { Condition8 = true; } } If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; if Condition8 == False and 저[1,1] <= 고[1,1]-0.5 Then { Condition8 = true; TL1= TL_New(sDate,sTime,h-0.5,sDate,sTime,-999); TL_SetColor(TL1,Red); TL_SetSize(TL1,2); } TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]); Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)); Text_SetLocation(TX,고[1,3],고[1,4],고[1,1]); } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { t = -1; If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Green); Text_SetSize(tx,25); Text_SetColor(tx,Red); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); if abs(고[1,1][1]-저[1,1][1]) < 0.5 Then Text_Delete(tx); TX = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(고[1,1]-저[1,1],2)); Text_SetSize(tx,25); Text_SetColor(tx,Blue); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); Condition4 = False; if Condition4 == False and 저[1,1]<= 고[1,1]-0.5 Then { Condition4 = true; } } If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; if Condition4 == False and 저[1,1] <= 고[1,1]-0.5 Then { Condition4 = true; TL1= TL_New(sDate,sTime,L+0.5,sDate,sTime,999); TL_SetColor(TL1,Blue); TL_SetSize(TL1,2); } TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]); Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)); Text_SetLocation(TX,저[1,3],저[1,4],저[1,1]); } 최종꼭지점 = "저점"; } 추세선의 크기가 0.5 이상이면 세로선 표시되는 수식입니다. 하락추세선의 크기가 0.5 이상일 때만 카운트해서 세번째 하락 0.5파에 네모 표시. 0.5 이하는 무시. 저점은 무관. (고점 낮은 세번째 세로선) 고점이 같거나 낮을 때만 카운트. 직전 하락 0.5파보다 고점이 높으면 다시 새로 카운트. 감사합니다.