커뮤니티

부탁 드립니다.

프로필 이미지
yes
2020-01-21 00:52:18
236
글번호 135295
답변완료

첨부 이미지

도움에 감사 드립니다. 아래 수식을 첨부그림의 적색선과 같이 나타 나도록 수정 부탁 드립니다. INPUT:Atime(11),p1(20); Var: Cnt(0),HH(0),LL(0); var : count(0),sum1(0),mav1(0),sum2(0),mav2(0),TF(0),S1(0),S2(0),T(0),TM(0); Array: tp[100](0), upv[100](0),dnv[100](0); Array : OO[100](0),CC[100](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); T = 1; } if date != date[1] and Bdate == Bdate[1] Then{ S2 = 1440-S1; T = 2; } if T == 1 then TM = TimeToMinutes(stime)-S1; if T == 2 Then TM = TimeToMinutes(stime)+S2; TF = TM%Atime; if Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then{ OO[0] = O; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1+1] > 0 and (Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1])) Then{ sum1 = 0; sum2 = 0; for count = 0 to P1-1{ sum1 = sum1+CC[count+1]; sum2 = sum2+CC[count+2]; } mav1 = sum1/P1; mav2 = sum2/P1; If (CC[1] < mav1 and CC[2] >= mav2) Then { tp[0] = (OO[1] + CC[1]) / 2; For Cnt = 1 To 99 { tp[Cnt] = tp[Cnt -1][1]; } } for cnt = 0 to 99 { if tp[cnt] >= C Then upv[cnt] = tp[cnt]; Else upv[cnt] = 1000000; if tp[cnt] <= C Then dnv[cnt] = tp[cnt]; Else dnv[cnt] = 0; } var1 =1000000; LL = 0; for cnt = 0 to 99 { if upv[cnt] <var1 THEN var1 = upv[cnt]; if dnv[cnt] > LL Then LL = dnv[cnt]; }} plot1(var1);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-01-21 17:16:45

안녕하세요 예스스탁입니다. 올려주신 수식은 타주기인 20이평을 데드했을떄의 몸통의 중간값들을 계산하고 이 중간값들 중에 현재봉 종가보다 큰값 중 가장 가까운 값(var1)과 이 중간값들 중에 현재봉 종가보다 작은값 중 가장 가까운 값(LL)을 계산하는 식입니다. 해당 값들이 없으면 1000000이나 0으로 출력됩니다. 해당 수식의 계산된 값으로 그림과 같이 구현은 어렵습니다. 타주기 이평보다는 크면 1 아니면 -1을 그리는 식을 작성해 드립니다. 해당 수식을 이용해 수정보안하시기 바랍니다. input : ntime1(11),P(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0); Array : C1[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 { for cnt = 1 to 49 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P] > 0 then{ sum1 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; } mav1 = sum1/P; if c > mav1 Then plot1(1); Else plot1(0); } } 즐거운 하루되세요 > yes 님이 쓴 글입니다. > 제목 : 부탁 드립니다. > 도움에 감사 드립니다. 아래 수식을 첨부그림의 적색선과 같이 나타 나도록 수정 부탁 드립니다. INPUT:Atime(11),p1(20); Var: Cnt(0),HH(0),LL(0); var : count(0),sum1(0),mav1(0),sum2(0),mav2(0),TF(0),S1(0),S2(0),T(0),TM(0); Array: tp[100](0), upv[100](0),dnv[100](0); Array : OO[100](0),CC[100](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); T = 1; } if date != date[1] and Bdate == Bdate[1] Then{ S2 = 1440-S1; T = 2; } if T == 1 then TM = TimeToMinutes(stime)-S1; if T == 2 Then TM = TimeToMinutes(stime)+S2; TF = TM%Atime; if Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then{ OO[0] = O; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1+1] > 0 and (Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1])) Then{ sum1 = 0; sum2 = 0; for count = 0 to P1-1{ sum1 = sum1+CC[count+1]; sum2 = sum2+CC[count+2]; } mav1 = sum1/P1; mav2 = sum2/P1; If (CC[1] < mav1 and CC[2] >= mav2) Then { tp[0] = (OO[1] + CC[1]) / 2; For Cnt = 1 To 99 { tp[Cnt] = tp[Cnt -1][1]; } } for cnt = 0 to 99 { if tp[cnt] >= C Then upv[cnt] = tp[cnt]; Else upv[cnt] = 1000000; if tp[cnt] <= C Then dnv[cnt] = tp[cnt]; Else dnv[cnt] = 0; } var1 =1000000; LL = 0; for cnt = 0 to 99 { if upv[cnt] <var1 THEN var1 = upv[cnt]; if dnv[cnt] > LL Then LL = dnv[cnt]; }} plot1(var1);