커뮤니티

수식 문의드립니다

프로필 이미지
파트라
2020-06-02 13:34:35
1549
글번호 139481
답변완료
분봉을 이용하였을때 장이 시작되면 초기화되고 최근 5개(Input으로 최적화시키게) 봉 중에서 양봉인 경우 위꼬리(H-C)를 저장, 음봉인경우 아래꼬리(C-L)를 저장 양봉개수만큼 위꼬리들을 더하고, 음봉개수만큼 아래꼬리들을 더하고 싶습니다. Input : CountMax(4); Var : Count(0), HighTail(0), LowTail(0), HighTailAccum(0), LowTailAccum(0); For Count = 0 to Countmax Begin If C > O then HighTail = H - C; HighTailAccum = HighTailAccum + HighTail; If C < O then LowTail = C - L; LowTailAccum = LowTailAccum + LowTail; End; 이런식으로 생각해보았는데 date != date[1]일때 어떤 값을 초기화시켜야 하는지, HighTailAccum이 계속 누적되니 HighTail을 Array 변수로 빼서 배열시켜야 할 것 같긴한데.. 어렵네요.. 장 시작부터 양양음양음 / 양양양양양 이라면 5개봉까지는 134번의 윗꼬리를, 6번부터는 246번의 윗꼬리를, 7번부터는 467번의 윗꼬리를 더하는 식으로 만들고 싶습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-06-02 14:43:30

안녕하세요 예스스탁입니다. 1 올려주신 내용은 최근 5개봉을 대상으로 값을 누적하는 내용이므로 날짜변경시에 초기화가 아닌 for문 수행전에 항상 값을 0으로 초기화하게 하시면 됩니다. 2 for문이 루프만 수행되고 값은 항상 현재봉값만 사용해서 수식도 수정했습니다. Input : CountMax(4); Var : Count(0), HighTail(0), LowTail(0), HighTailAccum(0), LowTailAccum(0); HighTail = 0; HighTailAccum = 0; LowTail = 0; LowTailAccum = 0; For Count = 0 to Countmax { If C[Count] > O[Count] then { HighTail = H[Count] - C[Count]; HighTailAccum = HighTailAccum + HighTail; } If C[Count] < O[Count] then { LowTail = C[Count] - L[Count]; LowTailAccum = LowTailAccum + LowTail; } } 3 당일 N봉이후에만 계산하고자 하시면 아래와 같이 봉수 지정하시면 됩니다. Input : CountMax(4); Var : Count(0), HighTail(0), LowTail(0), HighTailAccum(0), LowTailAccum(0),idx(0); if bdate != bdate[1] Then idx = 0; Else idx = idx+1; HighTail = 0; HighTailAccum = 0; LowTail = 0; LowTailAccum = 0; if idx >= CountMax then { For Count = 0 to Countmax { If C[Count] > O[Count] then { HighTail = H[Count] - C[Count]; HighTailAccum = HighTailAccum + HighTail; } If C[Count] < O[Count] then { LowTail = C[Count] - L[Count]; LowTailAccum = LowTailAccum + LowTail; } } } 즐거운 하루되세요 > 파트라 님이 쓴 글입니다. > 제목 : 수식 문의드립니다 > 분봉을 이용하였을때 장이 시작되면 초기화되고 최근 5개(Input으로 최적화시키게) 봉 중에서 양봉인 경우 위꼬리(H-C)를 저장, 음봉인경우 아래꼬리(C-L)를 저장 양봉개수만큼 위꼬리들을 더하고, 음봉개수만큼 아래꼬리들을 더하고 싶습니다. Input : CountMax(4); Var : Count(0), HighTail(0), LowTail(0), HighTailAccum(0), LowTailAccum(0); For Count = 0 to Countmax Begin If C > O then HighTail = H - C; HighTailAccum = HighTailAccum + HighTail; If C < O then LowTail = C - L; LowTailAccum = LowTailAccum + LowTail; End; 이런식으로 생각해보았는데 date != date[1]일때 어떤 값을 초기화시켜야 하는지, HighTailAccum이 계속 누적되니 HighTail을 Array 변수로 빼서 배열시켜야 할 것 같긴한데.. 어렵네요.. 장 시작부터 양양음양음 / 양양양양양 이라면 5개봉까지는 134번의 윗꼬리를, 6번부터는 246번의 윗꼬리를, 7번부터는 467번의 윗꼬리를 더하는 식으로 만들고 싶습니다.