커뮤니티

부탁 드립니다.

프로필 이미지
yes
2021-10-28 16:30:59
604
글번호 153226
답변완료
항상 도움에 감사 드립니다. 틱봉용 수식으로 작성 해본 것입니다. 어딘가에 오류가 있어 보입니다. 수정 부탁 드립니다. 질문수식) input:p(10),sig(30); var1=obv(); var2=ma(var1,p); var3=var1-var2; var4=ma(var3,sig); 틱봉용 수식) input : ntime(6),P(60),sig(5); var : S1(0),D1(0),TM(0),TF(0),cnt(0),sum1(0),sum2(0); var : v2(0),v4(0),pre(0),C1(0),idx(0),vv(0); Array : v1[100](0),v3[100](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; idx = 0; } Else idx = idx+1; if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = idx%ntime; if Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then { // idx = idx+1; C1 = C[1]; vv = 0; pre = v1[0][1]; For cnt = 1 to 99 { v1[cnt] = v1[cnt-1][1]; v3[cnt] = v3[cnt-1][1]; } } vv = vv + v; if C > C1 Then v1[0] = pre + vv; else if C < C1 Then v1[0] = pre - vv; else v1[0] = pre; if idx >= P then { sum1 = 0; For cnt = 0 to P-1 { sum1 = sum1+v1[cnt]; } v2 = sum1/p; v3[0] = v1[0]-v2; } if idx >= P+sig then { sum2 = 0; For cnt = 0 to sig-1 { sum2 = sum2+v3[cnt]; } v4 = sum2/sig; Plot1(v4); } } PlotBaseLine1(0);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-10-29 11:34:44

안녕하세요 예스스탁입니다. 다른 계산식에는 별도로 문제가 없습니다. 다만 당일봉수를 카운트 하는 것과 시간경계변경을 카운트하는 변수를 별도로 지정하셔야 합니다. obv가 차트전체구간 누적하는 내용으로 차트 기간에 따라 값이 달라지게 됩니다. 이용에 참고하시기 바랍니다. input : ntime(6),P(60),sig(5); var : D1(0),TF(0),cnt(0),sum1(0),sum2(0); var : v2(0),v4(0),pre(0),C1(0),idx(0),Didx(0),vv(0); Array : v1[100](0),v3[100](0); if Bdate != Bdate[1] Then { D1 = sdate; Didx = 0; } Else Didx = Didx+1; if D1 > 0 then { TF = Didx%ntime; if Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then { idx = idx+1; C1 = C[1]; vv = 0; pre = v1[0][1]; For cnt = 1 to 99 { v1[cnt] = v1[cnt-1][1]; v3[cnt] = v3[cnt-1][1]; } } vv = vv + v; if C > C1 Then v1[0] = pre + vv; else if C < C1 Then v1[0] = pre - vv; else v1[0] = pre; if idx >= P then { sum1 = 0; For cnt = 0 to P-1 { sum1 = sum1+v1[cnt]; } v2 = sum1/p; v3[0] = v1[0]-v2; } if idx >= P+sig then { sum2 = 0; For cnt = 0 to sig-1 { sum2 = sum2+v3[cnt]; } v4 = sum2/sig; Plot1(v4); } } PlotBaseLine1(0); 즐거운 하루되세요 > yes 님이 쓴 글입니다. > 제목 : 부탁 드립니다. > 항상 도움에 감사 드립니다. 틱봉용 수식으로 작성 해본 것입니다. 어딘가에 오류가 있어 보입니다. 수정 부탁 드립니다. 질문수식) input:p(10),sig(30); var1=obv(); var2=ma(var1,p); var3=var1-var2; var4=ma(var3,sig); 틱봉용 수식) input : ntime(6),P(60),sig(5); var : S1(0),D1(0),TM(0),TF(0),cnt(0),sum1(0),sum2(0); var : v2(0),v4(0),pre(0),C1(0),idx(0),vv(0); Array : v1[100](0),v3[100](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; idx = 0; } Else idx = idx+1; if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = idx%ntime; if Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then { // idx = idx+1; C1 = C[1]; vv = 0; pre = v1[0][1]; For cnt = 1 to 99 { v1[cnt] = v1[cnt-1][1]; v3[cnt] = v3[cnt-1][1]; } } vv = vv + v; if C > C1 Then v1[0] = pre + vv; else if C < C1 Then v1[0] = pre - vv; else v1[0] = pre; if idx >= P then { sum1 = 0; For cnt = 0 to P-1 { sum1 = sum1+v1[cnt]; } v2 = sum1/p; v3[0] = v1[0]-v2; } if idx >= P+sig then { sum2 = 0; For cnt = 0 to sig-1 { sum2 = sum2+v3[cnt]; } v4 = sum2/sig; Plot1(v4); } } PlotBaseLine1(0);