커뮤니티

안녕하세요?

프로필 이미지
상중하
2020-11-03 06:30:07
680
글번호 143573
답변완료

첨부 이미지

안녕하세요? 지난주에 69742번 요청을 했었는데요 저가 뭔가 설명이 부족해서 라인이 그려지지 않았습니다. 그림의 빨강색이 그려지는 조건입니다. A. 당일 저가일때 변수값 0. B. 당일 고가에서 0.618 밑으로 조정일때 0.618 아래의 첫번째 저가를 변수에 저장 (가격의 높고,낮음 상관없이 0.618아래 첫번째 저가만 변수에 저장) =그림의 노란색. C. 다시 당일고가 재 돌파시 B에 저장된 변수값을 plot 그리기. =그림의 빨간색라인. 위치는 검은선부터 라인시작점. 반대일때 A. 당일 고가일때 변수값 0. B. 당일 저가에서 0.382 위로 반등일때 0.382위의 첫번째 고가를 변수에 저장 (가격의 높고,낮음 상관없이 첫번째만 변수에 저장) C. 다시 당일저가 재 이탈시 B에 저장된 변수값을 plot 그리기. 라인은 PLOT으로 요청드립니다. 수식작성에 감사드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-11-03 16:51:48

안녕하세요 예스스탁입니다. 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; if a1[1] > 0 Then a3 = a1[1]; } if l < DayLow(0)[1] Then { b1 = 0; b2 = Index; 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); 즐거운 하루되세요 > 상중하 님이 쓴 글입니다. > 제목 : 안녕하세요? > 안녕하세요? 지난주에 69742번 요청을 했었는데요 저가 뭔가 설명이 부족해서 라인이 그려지지 않았습니다. 그림의 빨강색이 그려지는 조건입니다. A. 당일 저가일때 변수값 0. B. 당일 고가에서 0.618 밑으로 조정일때 0.618 아래의 첫번째 저가를 변수에 저장 (가격의 높고,낮음 상관없이 0.618아래 첫번째 저가만 변수에 저장) =그림의 노란색. C. 다시 당일고가 재 돌파시 B에 저장된 변수값을 plot 그리기. =그림의 빨간색라인. 위치는 검은선부터 라인시작점. 반대일때 A. 당일 고가일때 변수값 0. B. 당일 저가에서 0.382 위로 반등일때 0.382위의 첫번째 고가를 변수에 저장 (가격의 높고,낮음 상관없이 첫번째만 변수에 저장) C. 다시 당일저가 재 이탈시 B에 저장된 변수값을 plot 그리기. 라인은 PLOT으로 요청드립니다. 수식작성에 감사드립니다.