커뮤니티

수식 체크 부탁드리겠습니다

프로필 이미지
yamu
2024-08-06 13:54:43
983
글번호 182301
답변완료

첨부 이미지

더운날 수고가 많으십니다 전에 여쭤봤던 수식을 고치고 싶은데요 설명은 스샷으로 첨부해놨습니다. 라인은 대략적으로 표시했습니다. 수식은 맨 아래에 있습니다 제가 원하는건 틱이 5만개 이상일때만 기준봉으로 잡고 그 고가를 계속 연결하고 싶습니다. 수식상으로는 고가 라인이 5만 틱 이상일때만 나타나는것이 아니라 5만틱 이하일때도 (조건에 만족하지 않을때)도 계속 출력이 되네요 두번째 조건인 1만틱 이하일때도 마찬가지로 이 조건에서만 저가라인을 나타내고 싶습니다. *틱이 5만개 이상, 1만개 이하일때 각각 나타내고 싶고 그 이외는 (5만개 이하, 1만개 이상 구간) 은 패스 하고 싶습니다 스크린샷에서는 120봉 차트에 설명을 적어놨는데 타주기 수식으로 작성하면 이 라인이 30분이나 60분봉에서도 같은 모양으로 나타나게 되는게 맞지 않나요?? 수식을 타주기분이 아니라 현재 봉차트에 나타내고 싶으면 아래 부분만 빼고 작성하면 되나요??? "if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { #120분 단위 수직선 // TL_New(sDate,sTime,0,sDate,sTime,999999999); #120분 단위 Ticks와 최고가 죄저가 for cnt = 49 downto 1 { TT[cnt] = TT[cnt-1]; HH[cnt] = HH[cnt-1]; LL[cnt] = LL[cnt-1]; } hh[0] = h; ll[0] = l; TT[0] = 0; } " 지표 수식:: input : 타주기분(120); var : S1(0),D1(0),TM(0),TF(0),cnt(0); Array : TT[50](0),hh[50](0),ll[50](0);; if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { #120분 단위 수직선 // TL_New(sDate,sTime,0,sDate,sTime,999999999); #120분 단위 Ticks와 최고가 죄저가 for cnt = 49 downto 1 { TT[cnt] = TT[cnt-1]; HH[cnt] = HH[cnt-1]; LL[cnt] = LL[cnt-1]; } hh[0] = h; ll[0] = l; TT[0] = 0; } if h > hh[0] Then hh[0] = h; if L < ll[0] Then ll[0] = l; TT[0] = TT[0]+Ticks; if TT[1] < 10000 or TT[1] > 50000 then { var1 = hh[1]; Var2 = ll[1]; } if var1 > 0 and Var2 > 0 Then { plot1(var1); plot2(Var2); } }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-08-07 14:59:48

안녕하세요 예스스탁입니다. 1 5만틱 이상일때 고가와 1만틱 이하일때 저가로 분리해서 표시되게 작성해 드립니다. 타주기분이 120분이면 30분, 60분에서 동일 값이 표시됩니다. input : 타주기분(120); var : S1(0),D1(0),TM(0),TF(0),cnt(0); Array : TT[50](0),hh[50](0),ll[50](0);; if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { #120분 단위 수직선 // TL_New(sDate,sTime,0,sDate,sTime,999999999); #120분 단위 Ticks와 최고가 죄저가 for cnt = 49 downto 1 { TT[cnt] = TT[cnt-1]; HH[cnt] = HH[cnt-1]; LL[cnt] = LL[cnt-1]; } hh[0] = h; ll[0] = l; TT[0] = 0; } if h > hh[0] Then hh[0] = h; if L < ll[0] Then ll[0] = l; TT[0] = TT[0]+Ticks; #5만틱 이상 if TT[1] >= 50000 then { var1 = hh[1]; } #1만틱 이하 if TT[1] < 10000 then { var2 = ll[1]; } if var1 > 0 Then { plot1(var1); } if Var2 > 0 Then { plot2(Var2); } } 2 타주기를 사용하지 않으시면 아래와 같이 작성하시면 됩니다. #5만틱 이상 if Ticks >= 50000 then { var1 = h; } #1만틱 이하 if Ticks < 10000 then { var2 = l; } if var1 > 0 Then { plot1(var1); } if Var2 > 0 Then { plot2(Var2); } 즐거운 하루되세요 > yamu 님이 쓴 글입니다. > 제목 : 수식 체크 부탁드리겠습니다 > 더운날 수고가 많으십니다 전에 여쭤봤던 수식을 고치고 싶은데요 설명은 스샷으로 첨부해놨습니다. 라인은 대략적으로 표시했습니다. 수식은 맨 아래에 있습니다 제가 원하는건 틱이 5만개 이상일때만 기준봉으로 잡고 그 고가를 계속 연결하고 싶습니다. 수식상으로는 고가 라인이 5만 틱 이상일때만 나타나는것이 아니라 5만틱 이하일때도 (조건에 만족하지 않을때)도 계속 출력이 되네요 두번째 조건인 1만틱 이하일때도 마찬가지로 이 조건에서만 저가라인을 나타내고 싶습니다. *틱이 5만개 이상, 1만개 이하일때 각각 나타내고 싶고 그 이외는 (5만개 이하, 1만개 이상 구간) 은 패스 하고 싶습니다 스크린샷에서는 120봉 차트에 설명을 적어놨는데 타주기 수식으로 작성하면 이 라인이 30분이나 60분봉에서도 같은 모양으로 나타나게 되는게 맞지 않나요?? 수식을 타주기분이 아니라 현재 봉차트에 나타내고 싶으면 아래 부분만 빼고 작성하면 되나요??? "if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { #120분 단위 수직선 // TL_New(sDate,sTime,0,sDate,sTime,999999999); #120분 단위 Ticks와 최고가 죄저가 for cnt = 49 downto 1 { TT[cnt] = TT[cnt-1]; HH[cnt] = HH[cnt-1]; LL[cnt] = LL[cnt-1]; } hh[0] = h; ll[0] = l; TT[0] = 0; } " 지표 수식:: input : 타주기분(120); var : S1(0),D1(0),TM(0),TF(0),cnt(0); Array : TT[50](0),hh[50](0),ll[50](0);; if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { #120분 단위 수직선 // TL_New(sDate,sTime,0,sDate,sTime,999999999); #120분 단위 Ticks와 최고가 죄저가 for cnt = 49 downto 1 { TT[cnt] = TT[cnt-1]; HH[cnt] = HH[cnt-1]; LL[cnt] = LL[cnt-1]; } hh[0] = h; ll[0] = l; TT[0] = 0; } if h > hh[0] Then hh[0] = h; if L < ll[0] Then ll[0] = l; TT[0] = TT[0]+Ticks; if TT[1] < 10000 or TT[1] > 50000 then { var1 = hh[1]; Var2 = ll[1]; } if var1 > 0 and Var2 > 0 Then { plot1(var1); plot2(Var2); } }