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

(바이비트 비트코인 자동매매API) 알고리즘 패턴 찾기 (9) 진입점 찾기 (엑셀 OFFSET, INDEX, MATCH 함수)

봄이오네 2022. 12. 6. 08:04
반응형
목 차
1. 들어가며
2. 사전설명
1) 진입점 찾기 가정
2) OFFSET 함수 설명
3. 진입점 설명
1) 패턴 구분
2) INDEX, MATCH 함수 조합
3) OFFSET 함수 정리를 통한 진입 가격 찾기
4. 마치며

1. 들어가며

지난 글에서는 중복함수 끝에 숫자를 붙여서,
패턴을 각각 구별할 수 있는 고유패턴으로 만들었다.

아래처럼 패턴은 "0.50.00.0"일지라도,
=1, =2 등을 붙여서, 각각 구분해준 것이다.
0.50.00.0=1 → 패턴1
0.50.00.0=2 → 패턴2

이번 글에서는 고유패턴의 비교를 통해,
진입점을 알아보자!

첨부한 엑셀에서는 X열(진입점 찾기)에 해당한다.

(붙임1) 비트코인 패턴 만들기 (221106) (w열 다빈도순 패턴출력).xlsx
0.43MB


2. 사전설명

여기서는 진입점과 OFFSET 함수를 설명할 예정이다.

1) 진입점 찾기 가정
진입점은 동일패턴이 나왔을 때,
다음 1분봉의 시가에서 진입한다고 가정한다.

2) OFFSET 함수 설명

  • 함수 기능 : 시작점에서 지정한 만큼 셀 또는 범위를 반환한다.
  • 함수 형태 : OFFSET ( 기준점, 행이동, 열이동, 행범위, 열범위)

① 행이동 : 기준점에서 아래로 이동할 경우 1, 위로 이동할 경우 -1
(기준점 포함하지 않음)
② 열이동 : 기준점에서 오른쪽으로 이동할 경우 1, 왼쪽으로 이동할 경우 -1
(기준점 포함하지 않음)
③ 행범위 : 이동후의 값을 포함하여, 행범위 설정
④ 열범위 : 이동후의 값을 포함하여, 열범위 설정

<그림2>에서 offset 함수를 확인해 보자.
E10셀은 SUM(OFFSET(B2, 2, 3, 2, )) 로 나타낸다.
(기준점) (행이동) (열이동) (행범위) (열범위)

기준점은 B2로 설정하였다.
행이동 : B2 기준으로 2칸 아래로 이동하여 → B4로 이동
열이동 : B2 기준으로 3열 오른쪽으로 이동하여 → E2로 이동
→ 결과적으로 OFFSET(B2, 2, 3,...)이면 E4값으로 이동하여 있다.

여기서 추가로 보면,
행범위 2로 설정하면, E4~E5의 범위를 설정한다.
열범위는 설정하지 않을 때는, 컴마(,)만 찍어둔다.

결론은, SUM(OFFSET(B2, 2, 3, 2,))은 SUM(E4:E5)를 나타낸다.

그림1. offset 함수를 보여주기 위해, sum함수를 활용한다.


만약, MAX(OFFSET(B2, 2, 3, 2,))으로 설정하면, 반환되는 값은?
즉, MAX(E4:E5)에서 최대값은 E5의 3이 반환된다.


3. 진입점 설명

그림2. X7셀(21,286달러)은 D13셀의 값을 가져온다.

 

1) 패턴을 구분한다.

진입하는 가격은 동일한 패턴이 나왔을 때,
<그림1>에서 그 다음의 1분봉(D14)의 시가(open)에서 진입한다.

④의 패턴을 확인해 보면, (④의 바로 옆인 12행인 OHLC를 말한다)
시가 21286, 고가 21286.5, 저가 21286, 종가 21286이다.
* ④패턴(H12) : (고가-시간) & (저가-시가) & (종가-시가)은 0.50.00.0으로,
중복패턴 중 첫번째로 나온 패턴이므로 " 0.50.00.0=1 "로 고유패턴을 부여한다.
(i열은 시간별 패턴 정렬)
⑤패턴(W7) : V열의 중복패턴에 고유번호를 부여한다.
(w열은 오름차순 패턴 정렬)

2) INDEX, MATCH 함수 조합

INDEX(범위, MATCH(기준값, 범위, 일치여부), 1번째 열)의 형태로 값을 찾는다.

  • 함수 조합 : INDEX($D$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1)

함수를 분석해보자.
① INDEX($D$7:$I$1513 : D열~I열의 범위 설정
② MATCH($W7,$I$7:$I$1513,0) : i7~i1513 범위에서 W7의 행을 반환 → 12행 반환
③ ,1) : $D$7:$I$1513에서 첫번째 열(D열)을 반환한다. → D열 반환

▶ INDEX($D$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1) → D12 셀이 반환된다.

3) OFFSET 함수를 활용하여 진입가격 찾기

위에서 확인하였듯이,
OFFSET(INDEX($D$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,)은 D12를 나타내므로

OFFSET(INDEX($D$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1), 1,)은
OFFSET(D12, 1,)로 나타난다.
즉, D12를 기준으로 아래로 한칸 내려가라는 것이다. → D13이 반환된다. (진입값)
* 좌우 이동은 없으므로 컴마(,)만 찍어준다.


4. 마치며

INDEX, MATCH, OFFSET 함수를 통해
패턴이 같을때, 진입점을 알아보았다.
INDEX, MATCH, OFFSET 함수에 대한 제대로된 이해가 필요할 것 같다.

향후 글에서 설명할 내용은
INDEX, MATCH 함수의 조합을 통해
동일한 값을 찾은 후,
OFFSET로 이동하여 값을 반환받을 것이기 때문이다.

다음 시간에는 범위 내의 최대값/최소값 등을 알아보자.

반응형