커뮤니티

안녕하세요?

프로필 이미지
상중하
2020-11-16 10:59:57
746
글번호 143888
답변완료

첨부 이미지

안녕하세요. 69774 수식에서 수식 수정 2가지 요청드립니다. 1. 그림1 a3 출력라인 최저점(DAYLOW) 이탈시 a3 라인중 노란박스 부분이 출력되지 않게 수식수정. 그림2 b3 출력라인 최고점(DAYHIGH) 돌파시 b3 라인중 노란박스 부분이 출력되지 않게 수식수정. 2. 그림3 최저가(daylow)에서 최고가(dayhigh) 돌파시 노란박스에 라인이 그려지는데요 이부분을 첫최고가 부분은 나오지 않고 두번째 이후의 최고가 돌파시 라인이 나오게 수정. 최근 고가의 조정파동이 변수에 저장 되게 수식수정. 작성해주신 수식은 지난 파동의 조정파동이 변수에 저장되어 이를 보완할려고 합니다. 이반대의 상황도 수식 수정 부탁드립니다. (그림3의 노란박스부분의 라인이 나오지 않게수정) 수식작성에 항상 감사드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-11-16 14:52:28

안녕하세요 예스스탁입니다. 1 Input : length(10),종가사용여부(0),수치표시(1),표시(0); input : 추세두께(0),추세상승색(red),추세하락색(blue); input : 고점연결두께(3),고점연결색상(LGREEN); input : 저점연결두께(3),저점연결색상(MAGENTA); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL11(0),TL12(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]); TL_SetSize(TL1,추세두께); TL_SetColor(TL1,추세상승색); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); Text_SetStyle(Text1, 2, 1); } } 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]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); } } 최종꼭지점 = "고점"; } #==========================================# 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]); TL_SetSize(TL1,추세두께); TL_SetColor(TL1,추세하락색); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); Text_SetStyle(Text1, 2, 0); } } 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]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); } } 최종꼭지점 = "저점"; } var : S(0),T(0),hl(0),lh(0),hi(0),li(0),BD(0); var : hltl(0),lhtl(0); S = IFf(최종꼭지점 == "고점",1,iff(최종꼭지점 == "저점",-1,0)); if Bdate != Bdate[1] Then { hl = 0; lh = 0; hi = index; Li = index; } if H == DayHigh Then { hl = 0; hi = index; } if L == DayLow Then { lh = 0; Li = index; } if S == 1 and S != S[1] and 저[1,2] >= hi Then { if hl == 0 or (hl > 0 and 저[1,1] < hl) Then { hl = 저[1,1]; hltl = TL_New(저[1,3],저[1,4],hl,sdate,stime,hl); TL_SetColor(hltl,BLUE); } } Else { if hl > 0 Then TL_SetEnd(hltl,sdate,stime,hl); } if S == -1 and S != S[1] and 고[1,2] >= li Then { if lh == 0 or (lh > 0 and 고[1,1] > lh) Then { lh = 고[1,1]; lhtl = TL_New(고[1,3],고[1,4],lh,sdate,stime,lh); TL_SetColor(lhtl,RED); } } else { if lh > 0 Then TL_SetEnd(lhtl,sdate,stime,lh); } var : a1(0),a2(0),a3(0); var : b1(0),b2(0),b3(0); value1 = DayHigh; value2 = daylow+(DayHigh-DayLow)*0.618; value3 = daylow+(DayHigh-DayLow)*0.382; value4 = daylow; if Bdate != Bdate[1] Then { a1 = 0; a2 = Index; a3 = 0; b1 = 0; b2 = Index; b3 = 0; } Else { if h > DayHigh(0)[1] Then { a1 = 0; a2 = Index; b3 = 0; if a1[1] > 0 Then a3 = a1[1]; } if l < DayLow(0)[1] Then { b1 = 0; b2 = Index; a3 = 0; if b1[1] > 0 Then b3 = b1[1]; } } if a1 == 0 and S == 1 and S != S[1] and 저[1,2] > a2 and 저[1,1] < value2[Index-저[1,2]] and 저[1,1] > value4[Index-저[1,2]] Then a1 = 저[1,1]; if b1 == 0 and S == -1 and S != S[1] and 고[1,2] > b2 and 고[1,1] > value3[Index-고[1,2]] and 고[1,1] < value1[Index-고[1,2]] Then b1 = 고[1,1]; if a3 > 0 then Plot1(a3); if b3 > 0 then Plot2(b3); 2 해당 내용은 작성해 보는데 시간이 많이 요구됩니다. 한정된 시간안에 많은 분들의 질문을 처리해야하는 업무상 저희가 답변을 드릴수가 없습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 상중하 님이 쓴 글입니다. > 제목 : 안녕하세요? > 안녕하세요. 69774 수식에서 수식 수정 2가지 요청드립니다. 1. 그림1 a3 출력라인 최저점(DAYLOW) 이탈시 a3 라인중 노란박스 부분이 출력되지 않게 수식수정. 그림2 b3 출력라인 최고점(DAYHIGH) 돌파시 b3 라인중 노란박스 부분이 출력되지 않게 수식수정. 2. 그림3 최저가(daylow)에서 최고가(dayhigh) 돌파시 노란박스에 라인이 그려지는데요 이부분을 첫최고가 부분은 나오지 않고 두번째 이후의 최고가 돌파시 라인이 나오게 수정. 최근 고가의 조정파동이 변수에 저장 되게 수식수정. 작성해주신 수식은 지난 파동의 조정파동이 변수에 저장되어 이를 보완할려고 합니다. 이반대의 상황도 수식 수정 부탁드립니다. (그림3의 노란박스부분의 라인이 나오지 않게수정) 수식작성에 항상 감사드립니다.