본문 바로가기
무모한 도전-주식 인공지능 만들기

Position Sizing을 위한 작업 -8-

by 인터넷떠돌이 2020. 5. 26.
반응형

안녕하세요?

 

일단 지난번 포스팅까지 어떻게 해서 작업을 이어가는데 성공했지만, 일단 하면서 제가 account risk니 position size하는 개념을 처음 접하다 보니, 가장 심각한 휴먼 에러를 이래저래 많이 일으키고 있습니다. 아무튼 계속해서 실험노트에 해당하는 이 포스팅을 올리는 것으로 기록은 기록으로 남기고, 언젠가 시간이 나면, 지식정리 창고에 정리를 하고자 합니다.

 

먼저 위 스크린샷에서 보이는 것처럼 제대로 position size가 작동을 하는지 안 하는지 알아보기 위해서, 일단 print함수를 써서 결과를 출력해 보려고 했지만, 무언가 에러가 나와서 실패 했습니다.

 

알고보니, 제대로 변수들을 넣지 않아서 제대로 된 계산이 이루어 지지 않아서 에러가 발생한 것 이었습니다. 이제 이 방법을 해결하기 위해서, 제대로 변수들을 넣어 주도록 합니다.

 

그리고 나서 다음으로 어떻게 할 수 있는 것이 있느냐 하면, 일단 self를 붙여 놓은 stoploss를 넣어주어서 변수를 채워 주도록 합니다.

 

 

제대로 자본금에 반영이 되는 것을 확인할 수 있기는 있었습니다. 이제 이를 바탕으로 해서 다음으로는 매수를 할 경우에 제대로 position size가 반영이 되는지 알아볼 차례입니다.

 

일단 위 스크린샷에서 볼 수 있는 것처럼 우선 print함수를 사용하는 것으로 데이터 프레임을 어떻게 해서 가지고 오도록 해 봅니다.

 

그런데 상황이 별로 좋지 않게도, 위 스크린샷에서 볼 수 있는 것처럼 일단 position size의 숫자가 너무 이상하게 작은 숫자가 나오는 것을 확인할 수 있었습니다.

 

이제서야 알 수 있었는 것이........... 일단 위 스크린샷에서 볼 수 있는 것처럼 stopLoss가 손절매를 위한 '가격'이 아니라는 것 입니다. 매수한 가격에서 얼마정도 떨어지는 지를 지정한 다음. 이 매수가격에서 이 수치만큼 빼 주어야 한다는 것 입니다.

 

이렇게 해서 뭐라고 해야 할까요? 일단 봐줄만한 숫자로 바뀌기는 했습니다만, 이렇게 소수점 이하로 계산이 되어서는 제대로 된 갯수를 구하기는 어렵다는 생각이 듭니다.

 

그래서 round라고 해서 반올림을 해주는 함수를 동원하도록 하고, 그 다음으로는 int함수를 동원해서 정수로 바꾸어 주도록 합니다. 이렇게 해서 한번 작업을 해 보면..........

 

이제서야 볼만한 position size로 바뀌어 져 있는 것을 볼 수 있었습니다. 일단 다음 포스팅에서 이게 어떻게 된 일인지 상세하게 설명을 드리겠습니다. 이게 순전히 제가 position size를 구하는 공식을 제대로 이해하지 못해서 발생한 현상이라고 할 수 있습니다.

반응형