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

(바이비트 비트코인 자동매매API) 알고리즘 패턴 찾기 (14) 범위 내 최소값 찾기 (엑셀 offset, min 함수 활용)

봄이오네 2022. 12. 11. 08:04
반응형
목 차
1. 들어가며
2. 사전설명
  1) 엑셀 offset 함수
  2) 엑셀 min 함수
  3) 고민했던 부분 (min 및 offset 반환값)
3. min / offset 함수 조합
  1) offset 함수 조합 분석 (AB7 셀의 함수)
  2) min 함수로 정리
4. 마치며

1. 들어가며

지난 글에서는 범위 내 고가(high) 중 최대값(highest), 셀 주소 등을 알아보았다.

 * 범위 : 진입 후 20분간의 1분봉 모음(1분봉 20개)

 

이번 글에서는 범위 내 저가(low) 중 최소값(lowest)를 알아보자.

여기서도 말하는 범위는 진입 후 20분간의 1분봉 모음을 말한다.

 * 예를 들어, 13:01분 시가(open)에 진입하면, 13:20분까지 1분봉 20개이다.

 

익절/손절 타점을 설정하는 것이

한계가 있기 때문에,

long 기준, 패턴별로 최소값을 알아보는 것이며,

최소값은 향후 청산 타점(손절)이 될 수도 있다.

 

첨부 파일의 AB열 (최소값 찾기)에 대해 알아본다.

(붙임1) 비트코인 패턴 만들기 (AB열 최소값 찾기).xlsx
0.42MB


2. 사전설명

1) 엑셀 offset 함수

  • 함수 형태 : offset (기준값, 행 이동, 열 이동, 행 범위, 열 범위)
  • 함수 기능 : 기준 값을 중심으로, 행/열 이동 후, 행/열 범위를 선택

2) 엑셀 min 함수

  • 함수 형태 : min (범위)
  • 함수 기능 : 범위 내 최소값을 찾는다.
  • 함수 활용 : min ( offset (기준값1) : offset (기준값2) )의 형태를 활용하여, 기준값1~기준값2 범위내 최소값을 찾는다.

3) 고민했던 부분 (min 및 offset 반환값)

min 함수를 활용해 보면 알겠지만,

min 안의 범위는 셀 주소로 들어간다.

ex) min(b3 : b5)

 

그림1. min 함수의 범위는 셀 형태로 활용


3. min / offset 함수 조합

그림2. w열(오름차순)을 기준으로 i열에서 동일 패턴을 찾고나서, offset 함수로 이동하여 min 값을 찾는다.

1) offset 함수 조합 분석 (AB7 셀의 함수)

함수형태 : MIN(OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,) :

                         OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),20,))

 

OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,)

INDEX / MATCH 함수를 조합한 형태이다.

아래와 같이 쪼개서 생각해 보자.

 

INDEX($F$7:$I$1513, → F7~ i1513 범위내에서

MATCH($W10,$I$7:$I$1513,0) → w7 기준으로, i7~i1513 일치하는 셀은 12행 → " 12 " 가 반환된다.

,1) → F ~ i 열 중 1번째인 F가 반환된다.

즉, INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1) → F12 셀의 21,286이 반환된다.

 

함수를 다시 분석해 보면,

OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,)

OFFSET(                F12                                                                 ,1,) F13 셀의21,286이 반환된다. (아래로 1칸 이동)

 

OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),20,))

INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1) → F12 셀의 21,286이 반환된다.

 

OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),20,))

OFFSET(                F12                                                                 ,20,)  F32 셀의21,300이 반환된다. (아래로 20칸 이동)

 

2) min 함수로 정리

MIN(OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,) :

        OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),20,))

 

위에서 확인하였듯이

OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,) 

F13 셀의21,286이 반환된다. (아래로 1칸 이동)

 

OFFSET(INDEX($F$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),20,)

 F32 셀의21,300이 반환된다. (아래로 20칸 이동)

 

즉, 정리를 하면 min(f13 : f32)가 되고,

< 그림2 > 에서 확인하였듯이, F18 셀 값인 21,282달러로 최소값(lowest)가 반환된다.


4. 마치며

사실 이 부분에서 굉장히 막혔다.

offset 함수는 결과값을 반환하는데,

min 함수는 셀 주소를 활용한다는 점에서

min / offset 함수를 조합할 수 있을까? 걱정도 들었다.

 

물론 검색을 하긴 했지만,

min (offset~)으로 범위 지정을 해도 값을 찾는다는 것이다.

min (offset(기준값1) : offset(기준값2) )

 

다음 글에서는 최소값의 주소값(위치)를 알아보자.

반응형