커뮤니티

수식 문의

프로필 이미지
에구머니
2025-10-30 18:08:25
97
글번호 227515
답변완료

안녕하세요?
1.  분봉에서 사용할  daydiff(CC, n, per)이라는 사용자 함수를 원합니다.  CC = C, Data2(C), ... 등이 될 수 있습니다.   물론 그들을 이리 저리 짬뽕으로 만들어진 녀석이 될 수도 있습니다.
 이 함수는 abs(CC - CC[n]) 들의 평균인 ma(abs(CC - CC[n]) ,per)를 리턴 합니다.
날짜가 바뀔 때의 갭을 반영하지 않기 위해서 이 함수를 만듭니다!!!
예컨대 n=3이고, per = 5, CC = data2(C)인 경우, CC와 CC[3]이 모두 같은 날짜여야 합니다. 즉, 우리의 함수는 CC와 CC[n]이 나오는 날짜가 다르면 그냥 0 값을 리턴하고, 즉,
dayindex가 2 이하면 계속 0을 리턴 dayindex가 3 이상이 되면 이때부터 진짜 값들을 리턴하는데, 이 때도 dayindex가 3이면: CC-CC[3]을 리턴 dayindex가 4이면: ma( CC-CC[3],2)를 리턴  dayindex가 5이면: ma( CC-CC[3],3)를 리턴  dayindex가 6이면: ma( CC-CC[3],4)를 리턴  dayindex가 7 이상이면: 계속 오늘장이 끝날 때까지 주구장창 ma( CC-CC[3],5)를 리턴 
예컨대 선물은 8시 45분부터 나오지만, 어떤 참조 데이터는 9시 부터 나오는데, 위의 dayindex는 이 경우 해당 참조 데이터가 나오는 시점을 카운트 하는게 맞지요?
말이 어려워지는데, 그러니까 abs(CC-CC[3]) 들의 평균을 구하고 싶은데, 이게 날짜가 변해서 갭이 왕창 생겨서 평균을 망치는 것을 피하는 것이 목표입니다.   

2.  혹시 data2 등에서도 적용이 가능한, 분봉에서 사용할 일종의 Atr  함수를 dayatr(CC, per) 이란 이름으로 만들어 주시면 감사하겠습니다.  이 친구를 만들 때, 날짜가 바뀌어서 발생하는 갭들은 계산에서 제외하고 만들 수 있으면 정말 좋겠습니다.
보통 Atr 계산할 때, H,L,O,C 등이 사용되지만, 우리는 특별히 HLOC가 없다면 그냥 H=L=O=C 로 해서 비슷하게 만드시면 됩니다. 즉, 이 경우에는  말하자면 C-C[1] 들의 평균이면 될 것 같은데, 한가지 C와 C[1] 이 날짜가 달라지면, 이 녀석은 제외하고, 기존의 값을 계속 리턴하거나, 평균 구할 때, 그런 쌍은 제외하도록 하면 좋겠습니다.
감사합니다.  

사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-31 10:48:17

안녕하세요 예스스탁입니다. 1 함수명 : daydiff 반환값형 : 숫자형 input : CC(Numeric),n(Numeric),per(Numeric); var : value(0), sum1(0),sum2(0); value = abs(CC-CC[n]); if Bdate != Bdate[1] Then { sum1 = 0; sum2 = 0; } if Bdate[n] == Bdate Then { sum1 = sum1 + CC; sum2 = sum2 + 1; daydiff = sum1/sum2; } Else daydiff = 0; 2 data2이면 data2(dayatr(10))와 같이 작성해 사용하시면 됩니다. 함수명 : dayATR 반환값형 : 숫자형 Inputs: Period(NumericSimple); var : sum1(0),sum2(0),TH(0),TL(0); if Bdate != Bdate[1] Then { sum1 = 0; sum2 = 0; } If Bdate == bdate[1] and C[1] > H then TH = C[1]; else TH = H; If Bdate == bdate[1] and C[1] < L then TL = C[1]; else TL = L; sum1 = sum1 + (TH-TL); sum2 = sum2 + 1; dayATR = sum1/sum2; 즐거운 하루되세요