MBY_LAB custom_top_html:no
default debug random = 0 / type = READ / detected = READ
2020-07-29 08:01:17

재미있는 퀀트 개발일지4

단축키

Prev이전 문서

Next다음 문서

크게 작게 댓글로 가기 위로 아래로

단축키

Prev이전 문서

Next다음 문서

크게 작게 댓글로 가기 위로 아래로

퀀트개발일지-배경.png

  이번 글은 지난 시간 예고했던, 1) 주가가 과연 이동평균선으로 회귀할까? 에 대한 이야기와, 2) 간단한 이동평균선 매매전략을 만들어 유효성 검증까지 이야기 나누어 보도록 하겠습니다.

실험모델 만들기

제가 생각한 실험 모델은, 종가 마감을 기준으로 한 단순 이동평균선을 기준으로, 고정된 구간내에 주가가 포함되어 있는지에 따라 Score(점수) 변수를 선언하고, True = Score[1]+1, False = 0 값을 누적하는 것으로 누적 점수를 산출하였습니다.

표본으로 사용한 종목은 비트코인이며 24시간 시장이 움직인 다는 것을 근거로 분기 (4개월)의 거래 내역이 누적된 120일 (30일*4) 이동평균선을 사용하였습니다.

실험에서 사용하는 모델은 파인스크립트로 작성 되었으며, 코드는 Github에 public으로 올려두었습니다.

https://github.com/mbylabofficial/mbylabofficial

파헤치기

위 모델에서

var check = 0.

check := (close[1] == basis[1]) or (close[1] == upper[1]) or (close[1] == lower[1]) or (close[1] <= upper[1] and close[1] >= lower[1]) ? check[1] + 1 : 0

이 코드를 좀 풀이해보자면 Check라는 클래스는 이평선과 같거나, 이평선을 기준으로 특정 범위내에 존재하게 될 경우 +1점을 누적시키고 그게 아니라면 0점 처리합니다. (여기서 na를 사용하시면, 점수 누적계산이 되지 않습니다.)

이렇게 만든 Check라는 클래스는

땡글1.png

실험 모델 출력 (1)

위의 화면 하단에 표시된 실선으로 표현됩니다. 이 점수를 통해 확인할 수 있는 것은 충분히 주가는, 이 이동평균선이 나타내는 “특정 범위" 내에 회귀 할 의지가 충분하다는 것 입니다. 최대 80점을 초과하는 이 점수 모델은 기준이 되는 이동평균선의 기간을 조절 하는 것으로 좀 더 신뢰 있는 이동평균선의 기간을 특정 해 볼 수 있으며, 몇가지 기간을 조율한 결과는 아래와 같습니다.

떙글2.png

25 SMA Return score

땡글3.png

9 SMA Return score

사실 이 모델을 만들고 출력 하기 전에는 단기 이동평균선 일수록 당연히 주가가 높은 회귀율을 보여주겠지? 라는 생각을 갖었는데, 위의 결과는 전혀 다른 모습을 보여주고 있습니다.

제가 회귀율이라고 표현한 변수는 1) 실험결과에서 Return Score가 얼마나 높은가? 2) 얼마나 자주 이러한 현상이 반복되는가? 로 정의 하였습니다.

이번에는 위의 Return Score를 두가지 범위로 쪼개어 이를 비교해 보어 실효성을 검토해보겠습니다.

우선, 80점 이상의 점수를 획득한 경우(Retrurn Score가 80점이 라는 것은 Return Score가 0점에 가기 직전 까지 80번의 회귀 모습을 보여주었다는 것 입니다.)

score_g = input(80)//score about how strength price return.

var cal_per_g = 0.

cal_per_g := check >= score_g ? cal_per_g[1]+1 : 0

Cal_per_g (Calcualte_percent_Good)로 명명하였으며, 수식은 위에 나와 있듯이 점수가 80점을 넘었다면, cal_per_g는 1점이 누적되게 됩니다.

이와 반대로, Cal_per_b는 Return Score가 20점 미만인 경우 점수가 누적되게 만들었으며, 이 둘을 비교하는 것이 제가 하는 실험의 최종 결과입니다.

f_cal_score = score_g / (score_g + score_b) *100

Final_Calculate_Score의 수식은 위와 같으며, 이 결과는 80%라는 수치를 보여줍니다.

결과의 해석은 다음과 같습니다.

주가의 분포는 이동평균선에 회귀 하려는 성질을 갖고 있으며, 80%의 확률로 높은 회귀강세를 보인다.

물론, 이 글에서 사용된 표본은 비트코인 하나이며, 타 종목에 대한 비교 분석은 하지 않았기 때문에 이론이나 근거로 정의 할 순 없지만, 적어도 비트코인의 주가는 이동평균선으로 회귀한다 라는 결론을 도출 할 수 있겠습니다.

다음 시간에는 이 논리를 바탕으로, 이동평균선을 활용한 매매 로직을 만들어 백테스트 결과 까지 이야기 해보도록 하겠습니다.

감사합니다.!:)

 

2,861

MBY_LAB님의 서명

MBY_LAB

마켓 프라이스를 데이터 알고리즘을 통해 디지털 자산 트레이딩 전략 정보를 제공하는 MBY_LAB입니다.

실시간 트레이딩 시그널 봇, 마켓 프라이스 데이터 통계 제공.

 

MBY_LAB Channel : https://t.me/official_mbylab

Medium : https://medium.com/@mby_lab

Quant service : https://drive.google.com/drive/folders/1DXY_eeUz7QkCjWqXDaCBVbF1msjObmp6?usp=sharing

 

대표 : 정 순용

한경닷컴 컬럼리스트, 인베스팅 닷컴 코리아 애널리스트, 블록체인 미디어 노더, 티코노미 컬럼리스트

암호화폐 거래소 상장심사 담당, 프로젝트 백서 제작 등 암호화폐 시장 경력 4년차.

 

댓글 0

MBY_LAB

재미있는 퀀트 이야기

  1. 재미있는 퀀트 개발일지5

      퀀트 개발일지 5번째 시간입니다. 5번째 글까지 도입부에 해당하고 이번 글 부터 본문에 해당 하겠네요. ...
    Date2020.08.04 ByMBY_LAB Reply1 Views1284 Votes1 file
    Read More
  2. 재미있는 퀀트 개발일지4

      이번 글은 지난 시간 예고했던, 1) 주가가 과연 이동평균선으로 회귀할까? 에 대한 이야기와, 2) 간단한 ...
    Date2020.07.29 ByMBY_LAB Reply0 Views2184 Votes3 file
    Read More
  3. 재미있는 퀀트 개발일지 3

    시작하기 전에…제 게시글의 말투나 어조는 그때그때 달라질 수 있음을… 너그럽게 이해해주시면 감사하겠습...
    Date2020.07.27 ByMBY_LAB Reply0 Views2031 Votes2 file
    Read More
  4. 재미있는 퀀트 개발일지2

        이번 글에서는 직전 글에서 이야기하던, “매수/매도 트리거 발생 시, 시장가격에 매수하는 것과 지정가...
    Date2020.07.25 ByMBY_LAB Reply0 Views2059 Votes1 file
    Read More
  5. 재미있는 퀀트 개발일지 1

      이번 글에서는 앞서 예고한 바와 같이 시스템 트레이딩 로직에 따른 매수/매도 중 발생하는 매수 / 매도 ...
    Date2020.07.23 ByMBY_LAB Reply0 Views2117 Votes2 file
    Read More
  6. 안녕하세요! MBY_LAB입니다.

    안녕하세요. 마켓 프라이스 데이터를 통해 디지털 자산 알고리즘 트레이딩 서비스를 하는 MBY_LAB입니다. ...
    Date2020.07.23 ByMBY_LAB Reply0 Views2058 Votes2 file
    Read More
목록
Board Pagination Prev 1 Next
/ 1
default debug random = 0 / type = READ / detected = READ