3. 비트코인 선물/3-3. 비트코인 알고리즘 패턴 찾기

(바이비트 비트코인 자동매매API) 알고리즘 패턴 찾기 (4) 패턴의 중복없는 랭킹 설정(엑셀 RANK, COUNTIF) 동점자 처리

봄이오네 2022. 12. 1. 08:05
반응형
목 차
1. 들어가며
2. 사전설명
1) RANK 함수 설명
2) 중복이 있는 경우 랭크함수
3. 동점인 경우, 우열 가리기
① RANK(찾는 셀, 범위)
② COUNTIF(기준값 : 찾는셀, 찾는셀)
③ -1을 하는 이유
④ 중복을 제외한 랭크 (동점 처리)
4. 마치며

1. 들어가며

이전 글에서는 패턴 반복횟수 구하기를 알아보았다.

  • 함수형태 : COUNTIF(찾을 범위, 찾는 문자)

이번 글에서는 패턴의 多빈도 횟수별로 각각 랭킹을 알아볼 것이다.

향후에는 각 패턴별 랭킹을 지정하여,
한 가지 패턴일지라도, 각 패턴별 승률을 알아보기 위해서이다.

첨부한 파일에서 유일하게 배열함수를 활용한다.
(배열함수는 ctrl + shift + enter를 실행한다)

(붙임1) 비트코인 패턴 만들기 (221106) (M열 중복없는 랭킹).xlsx
0.43MB

2. 사전설명

1) RANK 함수 설명

랭크함수에 대해 알아보자.
랭크함수는 정렬된 숫자에서 큰 수에 1을 부여하고,
두번째 숫자에 2를 부여하는 형태로 실행할 수 있다.

  • 함수 형태 : RANK(찾는 셀 : 범위)

예를 들어보자.
B열의 11, 22, 33에 대해,
C열에서 랭크함수를 실행하면,
11 → 3
22 → 2
33 → 1이 각각 부여된다.

그림1-1. RANK 함수 설명

2) 중복이 있는 경우 랭크함수

중복이 있는 경우 랭크함수를 적용하면 어떻게 될까?
<그림1-2>에서 확인하였듯이,
동일 숫자(11)가 2개 있는 경우, 각각에 3이 부여된다.

동점인 경우, 우열을 가리고 싶으면 어떻게 해야할까?
필자의 궁금증은 여기에서 시작되었다.
즉, 첫번째 11(C3열)에는 3을 부여하고,
두번째 11(C4열)에는 4를 부여하는 방법은 무엇을까?

그림1-2. 동점이 있는 경우 랭크함수 적용한 경우

3. 동점인 경우, 우열 가리기

동점 혹은 중복이 된 경우,
처음 등장하는 숫자에 대해 더 높은 랭크를 부여하는 방법을 알아본다.

  • M열에서 적용함수를 확인할 수 있다.
  • 함수형태 : RANK(찾는 셀, 범위) + COUNTIF(기준값 : 찾는셀, 찾는셀) - 1

함수 형태가 상당히 복잡하다. 아래에서 분석해 보자

① RANK(찾는 셀, 범위)

<그림1-2>에서 확인하였듯이 C열에 각각 랭크가 부여된다.

② COUNTIF(기준값 : 찾는셀, 찾는셀)

이 글의 핵심이다.
<그림2-1>에서 확인하였듯이,
중복이 되면,
C3에는 1이 부여되고, C4에는 2가 부여된다.
즉, C3에는 중복이 없으므로, 1개이 반환되고,
C4의 11은 C3에 1개가 나왔으므로, 2개 반환된다.

그림2-1. COUNTIF 함수의 중복된 경우, +1이 추가된다.

③ -1을 하는 이유

<그림1-2>와 <그림2-1>를 종합해 보면
아래 <그림2-2>의 C열처럼 랭크함수가 4,5,3,2로 출력된다.
랭크함수에서 카운팅값 + COUNTIF함수 결과값이 더해져서,
두번 더해지는 내용을 감안하면, -1로 중복된 부분을 빼준다.

그림2-2. RANK함수와 COUNTIF함수를 조합한 결과

④ 중복을 제외한 랭크 (동점 처리)

동점자(혹은 중복)를 처리하는 함수이다.
먼저 언급되는 숫자에 우선순위(C3)을 부여한다.

그림2-3. 동점자(혹은 중복) 중 먼저 나온 값에 우선순위를 부여하는 내용

4. 마치며

동점자(혹은 중복) 중 먼저 나온 값에 대해,
우선순위(랭크)를 부여하는 내용을 알아보았다.

향후 패턴의 중복 빈도에 대한 우선순위 부여는,
각 패턴별 승률을 계산하기 위해 필요하다.

다음 글에서는 多빈도 → 少빈도에 관해
오름차순으로 정렬하는 방법에 대해 알아보자.
(첨부의 P열)

반응형