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

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

봄이오네 2022. 12. 9. 08:01
반응형
목 차
1. 들어가며
2. 사전설명
  1) row 함수
  2) if를 통한 row 함수 활용
3. 최대값 위치 셀
4. 마치며

1. 들어가며

지난 글에서는 진입 후 20분 내 최대값 찾는 방법을 알아보았다.

엑셀의 고가(high) 20개에서 max(범위)를 이용하여 가장 큰 high를 구했다.

 

이번 글에서는 가장 큰 high 값의 위치(행 번호)를 알아볼 것이다.

마땅한 익절/손절 라인을 찾기 힘들 때,

패턴들의 익절(가장 큰 값)의 행 위치와 손절(가장 작은 값)의 행위치를 각각 비교하여,

익절이 먼저 나오면 win

손절이 먼저 나오면 lose로 정해본다.

→ 즉, 패턴의 익절/손절점을 정하지 못하였을 때,

     임의로 승패 및 그 승률을 알아보고자 한다.

 

첨부한 파일의 Z열(최대값 위치)를 찾는 방법을 알아볼 것이다.

(붙임1) 비트코인 패턴 만들기 (221106) (Z열 최대값 위치).xlsx
0.42MB


2. 사전설명

1) row 함수

  • 함수 형태 : row(셀 위치)
  • 함수 기능 : 현재 셀의 위치를 반환한다. ex) row( E3 ) → 3이 반환된다.

 

 

(엑셀) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (4) 패턴별 승률을 엑셀로 계산해보기 (카카오

목 차 1. 들어가며 2. 사전준비 (엑셀 함수 설명) 1) MAX(범위), ,MIN(범위) 2) MATCH(특정값, 범위, 0) 3) IF 함수를 활용하여, 2개의 행(row)에 대해 비교하여, 승/패를 부여한다 4) countifs를 활용하여, 조건에

springcoming.tistory.com

 

2) if를 통한 row 함수 활용

① 함수 형태 : if ( row( E 3) > row ( F4 ), "win", "lose") → lose가 출력된다.

② lose가 출력된 사유

row( E3 ) → 3이 반환되고, row ( F4 ) → 4가 반환된다.

if ( row( E 3) > row ( F4 ), "win", "lose")

if ( 3 > 4, "win", "lose") → lose


3. 최대값 위치 셀

그림. 최대값 셀을 찾기 위해 ROW함수를 활용한다.

 

Z7 셀의 함수(②)를 확인하자.

상당히 길다. 천천히 살펴보자.

(첨부한 파일에서 Z7 셀을 확인하자)

 

  • 함수 형태 : ROW(INDEX(OFFSET(INDEX($E$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,,20,), MATCH(MAX(OFFSET(INDEX($E$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,,20,)),  OFFSET(INDEX($E$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1),1,,20,),0)))

 

 

 

① ROW 함수의 활용 형태

ROW( 셀 형태 )에서 "셀 형태"가 들어가야 한다.

(셀 형태는 E13, F4 와 같은 셀 주소를 말한다)

 

②  INDEX($E$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1) 분석

  • INDEX($E$7 : $i$1513 : 범위 설정
  • MATCH($W7, $i$7 : $i$1513, 0) : w7과 일치하는 i열의 행은 12이다. → 12가 반환된다.
  • 1)                                                : $E$7 : $i$1513에서 1번째 열(E열)이 반환된다.

즉, INDEX($E$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1) → E12 셀(21286.5)가 반환된다.

 

③ ROW 함수 1차 정리

함수를 다시 한번 정리해보자.

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

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

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

 

→ 녹색 부분(②)인 INDEX($E$7:$I$1513,MATCH($W7,$I$7:$I$1513,0),1)는 확인하였듯이

     E12 셀로 전환된다.

 

④ ROW 함수 2차 정리

ROW(INDEX(OFFSET(E12,1,,20,),  MATCH(MAX(OFFSET(E12,1,,20,)), OFFSET(E12,1,,20,),0)))

 

OFFSET(E12,1,,20,)는 E12에서 아래로 1칸 이동(E13)하고,

E13~E20을 가르킨다.

즉, OFFSET(E12,1,,20,) → E13 : E32으로 반환된다.

 

⑤ ROW 함수 3차 정리

ROW(INDEX(E13:E32, MATCH(MAX(E13:E32), E13:E32,0)))

→ ROW(INDEX(E13:E32, MATCH(E31, E13:E32,0)))

→ ROW(E31)

→ 31이 반환된다.


4. 마치며

글이 너무 장황해진거 같다.

ROW 함수 형태에 익숙해 지는 계기가 되었다.

 

다음 글에서는 "최대값-진입값" 을 통해

진입시, 수익이 얼마가 날지 계산해 보자. (AA열)

반응형