커뮤니티

타주기 지표 함수화

프로필 이미지
초심자의행운
2022-04-13 22:14:14
1669
글번호 158019
답변완료
타주기의 볼린저밴드 지표식을 보고 이를 함수화하려하는데 지표식과 똑같이 쓰고 함수 이름만 bbdn, bbup로 하면 될까요? 아래는 bbdn함수식입니다 문의를 드리는 이유는 뭔가 시스템식에 적용했을때 다른 것 같아서 그럽니다 input : 타주기분(NumericSimple),P(NumericSimple),Dv(NumericSimple); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0),Bbup(0); Array : CC[100](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 { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P] > 0 then{ sum = 0; for cnt = 0 to P-1{ sum = sum + CC[cnt]; } BBmd = sum/P; SumSqrt = 0; For cnt = 0 To P - 1 { SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2; } Stdv = SquareRoot(SumSqrt / P); BBup = BBmd + (Dv * Stdv); BBdn = BBmd - (Dv * Stdv); } }
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-04-14 10:13:55

안녕하세요 예스스탁입니다. 예 함수명만 BBdn,BBup으로 하시고 수식내 최종결과값이 해당이름에 저장되게만 하시면 됩니다. 계산식을 수식내 직접 쓰시거나 사용자함수처리를 해도 값이 다를수는 없습니다. 테스트한 결과도 값이 같게 나오고 있습니다. 다만 함수로 처리하면 최초 값이 출력되는 시점이 다를수가 있습니다. 수식에서 함수로 처리하면 해당 함수가 최소 몇개봉이 필요한지 체크하게 되는데 타주기 수식이라 실제보다 조금 더 많이 봉수가 체크될수 있습니다. 차트의 봉만 충분히 띄워서 사용하시면 됩니다. 1 사용자함수명 : BBdn 반환값형 : 숫자 input : 타주기분(NumericSimple),P(NumericSimple),Dv(NumericSimple); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0); Array : CC[100](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 { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P] > 0 then { sum = 0; for cnt = 0 to P-1{ sum = sum + CC[cnt]; } BBmd = sum/P; SumSqrt = 0; For cnt = 0 To P - 1 { SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2; } Stdv = SquareRoot(SumSqrt / P); BBdn = BBmd - (Dv * Stdv); } } 2 사용자함수명 : BBup 반환값형 : 숫자 input : 타주기분(NumericSimple),P(NumericSimple),Dv(NumericSimple); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0); Array : CC[100](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 { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P] > 0 then { sum = 0; for cnt = 0 to P-1{ sum = sum + CC[cnt]; } BBmd = sum/P; SumSqrt = 0; For cnt = 0 To P - 1 { SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2; } Stdv = SquareRoot(SumSqrt / P); BBup = BBmd + (Dv * Stdv); } } 즐거운 하루되세요 > 초심자의행운 님이 쓴 글입니다. > 제목 : 타주기 지표 함수화 > 타주기의 볼린저밴드 지표식을 보고 이를 함수화하려하는데 지표식과 똑같이 쓰고 함수 이름만 bbdn, bbup로 하면 될까요? 아래는 bbdn함수식입니다 문의를 드리는 이유는 뭔가 시스템식에 적용했을때 다른 것 같아서 그럽니다 input : 타주기분(NumericSimple),P(NumericSimple),Dv(NumericSimple); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0),Bbup(0); Array : CC[100](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 { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P] > 0 then{ sum = 0; for cnt = 0 to P-1{ sum = sum + CC[cnt]; } BBmd = sum/P; SumSqrt = 0; For cnt = 0 To P - 1 { SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2; } Stdv = SquareRoot(SumSqrt / P); BBup = BBmd + (Dv * Stdv); BBdn = BBmd - (Dv * Stdv); } }