커뮤니티

문의드립니다

프로필 이미지
부엉이
2019-07-02 22:20:16
229
글번호 129969
답변완료
안녕하세요 아래 수식은 60분봉 캔들의 중심선을 나타내는 수식인데요 차트 전체에 표시되어서 불필요하게 많고 컴에 부하만 걸리는것 같아서 원하는 숫자만큼만 표시되도록 제어하는 수식이 있는지 문의드립니다. 있다면 수식 수정을 부탁드립니다. 예를들어 30개만 표시. input : ntime1(60); var : S1(0),D1(0),TM(0),TF(0),cnt(0); Array : 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%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { HH[0] = H; LL[0] = L; for cnt = 1 to 49 { HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; } if HH[1] > 0 and LL[1] > 0 then { var1 = (HH[1]+LL[1])/2; plot1(var1); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-07-03 09:56:46

안녕하세요 예스스탁입니다. 1 수식은 차트에 적용하면 차트 첫봉부터 마지막봉으로 오면서 지표를 출력하게 됩니다. 출력된 지표를 이후에 다시 지울수가 없습니다. 2 현재 60분봉 과거 50개까지 값을 저장하는데 직전의 60분봉 중간값만 그리시므로 불필요하게 과거값을 저장하지 않게 변경해 드립니다. input : ntime1(60); var : S1(0),D1(0),TM(0),TF(0),cnt(0); Array : HH[2](0),LL[2](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%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { HH[0] = H; LL[0] = L; for cnt = 1 to 1 { HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; } if HH[1] > 0 and LL[1] > 0 then { var1 = (HH[1]+LL[1])/2; plot1(var1); } 즐거운 하루되세요 > 부엉이 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요 아래 수식은 60분봉 캔들의 중심선을 나타내는 수식인데요 차트 전체에 표시되어서 불필요하게 많고 컴에 부하만 걸리는것 같아서 원하는 숫자만큼만 표시되도록 제어하는 수식이 있는지 문의드립니다. 있다면 수식 수정을 부탁드립니다. 예를들어 30개만 표시. input : ntime1(60); var : S1(0),D1(0),TM(0),TF(0),cnt(0); Array : 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%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { HH[0] = H; LL[0] = L; for cnt = 1 to 49 { HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; } if HH[1] > 0 and LL[1] > 0 then { var1 = (HH[1]+LL[1])/2; plot1(var1); }