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

(바이비트 비트코인 자동매매API) 알고리즘 패턴 찾기 (22) 패턴별 승률 구하기 (엑셀 countifs 활용)

봄이오네 2022. 12. 19. 08:01
반응형
목 차
1. 들어가며
2. 사전 설명
  1) 승/패 개념
  2) countif 함수 설명
3. 패턴별 승률 구하기
  1) countifs 함수로 분자 구하기
  2) countifs 함수로 분모 구하기
  3) 승률 구하기
  4) 청산값의 변경을 통한 승률 변화 확인하기
4. 마치며

1. 들어가며

지난 글에서는 오름차 순으로 정렬한 패턴들의 승/패를 알아보았다.

아래 첨부한 < 파일 >의 BD열(수익) 및 BF열(손절)의 숫자를 입력해보면,

AX열(long 승/패) 및 AY열(short 승/패)에서 승/패를 확인하였다.

 

이번 글에서는

AX열(long 승/패) 및 AY열(short 승/패)에서 승/패를 통한

win/lose의 확률을 구하는 방법을 설명할 예정이다.

 

이 글에는 필자가 설명하는 승률에 대한 개념, 적용 등을 설명한다.

 

아래 첨부한 파일의 BE열, BG열의 각각 승률 등을 설명한다.

(붙임1) 비트코인 패턴 만들기 (BE열, BG열, 패턴별 승률 구하기).xlsx
0.42MB


2. 사전 설명

1) 승/패 개념

위에서 설명하였듯이 BD열(수익) 및 BF열(손절)의 숫자을 통해

AX열(long 승/패) 및 AY열(short 승/패)에서 승/패를 부여하였다.

 

즉, 설정한 익절/손절 타점의 range 안(BD ~ BF열)에 있으면, 승으로 분류하고,

range 밖(BD ~ BF열)에 있으면, 패로 분류하였다.

 

2) countif 함수 설명

여기서는 countif 함수를 이용한다.

AX열(long 승/패) 및 AY열(short승/패)에서 승/패를 부여한 결과,

win / lose가 결정되었다.

 

① 엑셀의 countif 함수를 알아보자.

  • 함수 기능 : 범위 내 기준값의 갯수를 반환 (1개 충족)
  • 함수 형태 : countif (범위, 기준값)
  • 함수 예시 : countif (B3 : B5, "win") → B3~B5에서 win 문자 갯수를 반환한다.

 

② 엑셀의 countifs 함수는 다중조건으로 활용한다.

  • 함수 기능  : 범위 내 다중 조건을 충족하는 갯수를 반환 (1개 이상)
  • 함수 형태 : countifs (범위1 : 기준값1, 범위2 : 기준값2)

3. 패턴별 승률 구하기

countifs를 통한 함수 분석해보자.

BE7 셀에 입력된 내용은 아래와 같다.

 

함수형태 : COUNTIFS($AX$7:$AX$1106,$BE$4,$AU$7:$AU$1106,$BC7)

                  / COUNTIFS($AU$7:$AU$1106,$BC7)*100

 

그림1. BE셀 및 BG셀에서 각각 승률(win/lose)를 구한다.

 

1) countifs 함수로 분자 구하기

COUNTIFS($AX$7:$AX$1106,$BE$4,$AU$7:$AU$1106,$BC7)

다중조건의 countifs 함수를 활용하였다.

 

 AX7 ~AX1106 범위 내에서 BE4 (win) 갯수를 세어라.

                                 +

② AU7 ~ AU1106 범위 내에서 BC7 (패턴 0.50.00.0)의 갯수를 구하라.

 

즉, ① + ②를 하면 65개가 나온다.

(패턴 0.50.00.0이면서 win인 것은 65개이다)

 

2) countifs 함수로 분모 구하기

COUNTIFS($AU$7:$AU$1106,$BC7)

au7 ~ au1106의 범위에서 bc7 패턴의 갯수는 203개이다.

 

3) 승률 구하기

승률은 그 패턴의 출현빈도 중 win 갯수를 구하면 된다.

즉, " win 갯수 ÷ 패턴출현 갯수 "로 나타낸다.

 

함수형태 : COUNTIFS($AX$7:$AX$1106,$BE$4,$AU$7:$AU$1106,$BC7)

                  / COUNTIFS($AU$7:$AU$1106,$BC7)*100

 

함수형태에서 위에서 설명한 대로

분자는 win갯수이며, 분모는 패턴출현 갯수이다.

정리하면, 65 ÷ 203 × 100 = 32.0%이다.

 

4) 청산값의 변경을 통한 승률 변화 확인하기

승률을 확인하고 싶다면,

BD셀,BF셀의 녹색 부분에 숫자를 기입하면,

승률의 변화를 확인할 수 있다.

 

< 그림1 >에서는 청산점을 20$로 표기하였을 때,

BE7의 승률은 32.0%였다.

 

<그림2-1 >에서 확인하였듯이,

청산점을 10$로 표기하였을 때, 

BE7 셀의 승률은 52.2%로 상승하고,

그림2-1. 청산점(수익)을 낮추면, 승률이 52.2%로 상승

 

< 그림2-2 >에서 확인하였듯이,

청산점을 30$로 표기하였다면,

BE7 셀의 승률은 18.2%로 하락한다.

그림2-2./ 청산점(수익)을 높이면, 승률이 18.2%로 하락


4. 마치며

각 패턴에 따른 승률을 알아보았다.

앞의 글에서도 설명하였듯이,

多빈도  패턴이라도 해서, 수익을 보장해 주지는 않는다.

 

중복패턴이 203번 출현한다고 했을 때,

api를 통해 수익이 나려면

수익/손절의 청산값을 설정해 주어야 하는데,

 

위의 <그림1> ~ <그림2>에서 확인하였듯이,

청산점을 10$만 올려도, 승률이 확~ 떨어진다.

long 기준, 진입값 대비 10$만 올려도 승률은 떨어진다.

 

예를 들어, 아래와 같이 청산값을 상승시키면,

괄호 안의 승률이 떨어지는 걸 확인할 수 있다.

 * 10$(52.2%) → 20$(32.0%) → 30%(18.2%)

 

물론, 상승장에서는 수익/손실점의 range를

좀 더 크게 잡을 수 있겠지만,

 

사용자가 투자한 날이 상승장/하락장이 될지는

아무도 모른다.

 

결론은

수익/익절을 위한 청산점은 본인이 판단하여야 한다는 것이다.

각 패턴별로 승/패를 통한 확률을 알아보았다.

 

다음 글에서는 파이썬 적용을 위한

형태를 알아보자.

반응형