ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. likeBNF 개발일지 (1)
    Quant/likeBNF 2019. 6. 22. 19:53
    728x90

    1. Github에 저장소 생성 (링크)

    2. kr.investing으로 가서 개발에 사용할 주식 종목 선정, 앞서 SK Hynix Inc(이하 하이닉스)로 했기 때문에 개발용 데이터 역시 하이닉스를 지정하였음.

      차트 링크는 다음과 같음 (링크)

    3. 차트는 Trading View라는 차트를 사용하고 있음. 거기서 25일 이동평균선을 확인하기 위해 다음과 같이 설정합니다.

    먼저 봉 기준을 1일로 변경합니다. 그리고 [지표]로 들어갑니다.

    [지표]에 들어가면 다음과 같이 여러가지 보조지표를 검색할 수 있는 창이 나옵니다. ma라고 검색 후 'Moving Average'를 선택합니다. 이게 바로 이동평균선 입니다.

    차트에 이동평균선이 추가되었을 겁니다. 하지만 해당 값은 25일이 아닐겁니다. 기본으로 9일 이동평균선이 되어있을 겁니다. 이 이동평균선을 더블클릭하면 위와같은 설정창이 나오는데, 거기서 Length를 25로 바꾸면 비로소 25일 이동평균선이 나타납니다.


    4. 3번 사항에서 구지 25일 이동평균선을 차트에 보여줘야하나 생각하실 수 있겠지만, 앞으로 나오는 데이터들을 실제 차트로 가서 분석한다던가, 내가 계산한 25일 이동평균선이 잘 계산된 것인가를 확인하기 위한 용도로 사용하면됩니다.


    5. 차트로 돌아와서 크롬 개발자 도구의 [Network]탭 에서 캔들을 요청하는 부분을 찾아봅니다. 그러면 다음과 같은 요청과 응답을 찾을 수 있습니다.


    요청 주소는 https://tvc4.forexpros.com/227407a1d8a6d5ef9f47bc2f1f9d6c9e/1561192882/18/18/88/history?symbol=43430&resolution=D&from=1530088885&to=1561192945 로 요청을 하고 있고, c, h, l, o, s, t, v, vo를 키로 가지는 객체를 응답했습니다.


    테스트삼아 요청 URL을 변조해보았습니다.

    변경전 : https://tvc4.forexpros.com/227407a1d8a6d5ef9f47bc2f1f9d6c9e/1561192882/18/18/88/history

    변경후 : https://tvc4.forexpros.com/227407a1d8a6d5ef9f47bc2f1f9d6cae/1/1/1/1/history

    물론 뒤에 있는 query는 변경하지 않고 보냈습니다. 그렇게 해도 응답은 정상적으로 이루어졌습니다.


    추측컨데, 앞쪽에 있는 227407a1d8a6d5ef9f47bc2f1f9d6c9e는 과다한 요청을 막기위해 세션 형태로 요청 수를 카운트하기 위한 것은 아닐까 싶습니다. (물론 response 헤더에 카운트를 보여준다던가 하는 것은 없습니다.)

    1561192882 이부분은 당연히 타임스탬프로 현재 시간을 나타낸 것으로 보이고, 그 뒤에 있는 18 18 88 이부분은 어떤의미인지는 잘 모르겠습니다.


    가장 중요한 쿼리 부분은 다음과 같습니다.

    symbol=43430&resolution=D&from=1530088885&to=1561192945

    symbol은 하이닉스의 index값으로 추측된다. 그 이유는 하이닉스의 종목코드는 000660이기 때문이다.

    하지만 확실히 요청하는 부분에서 사용하는 코드값은 43430이었다. 또한 해당 값은 하이닉스 종목으로 들어가는 링크에서 확인할 수 있었다. (KOSPI 50을 대상으로 크롤링해오려고, https://kr.investing.com/indices/kospi-50-components 로 요청을 해봤는데 302 Moved Temporary 로 리다이렉트 되어서 가져오지 못했음. 그제 확인했을 때는 됐는데, 지금 안되는건 장이 안열렸을 때는 안되는건지.. 유지보수 중이라 그런건지 불분명함. 어차피 개별 종목에 대해 완성하고나면 여러가지에 대해 요청하는 것은 어렵지 않으므로 넘어감.)

    추후 이 데이터들을 크롤링하여 요청에 활용하면 될듯

    resolution=D 는 1일봉을 요청한다는 의미이고, from=1530088885&to=1561192945 는 1530088885 부터 1561192945 까지의 데이터를 요청한다는 의미이다. 1530088885 는 2018년 6월 27일 수요일 오후 5:41:25 GMT+09:00 이고, 1561192945은  2019년 6월 22일 토요일 오후 5:42:25 GMT+09:00 이다. 즉, 18년 6월 27일부터 19년 6월 22일까지의 데이터를 요청하고, 그 응답으로 받아온 것이다. FROM 부분을 조작하여 더 이전 데이터부터 가져오도록 할 수 있다.


    응답으로 온 c, h, l, o, s, t, v, vo는 각각 다음과 같은 의미를 가진다.

    c : close, 종가

    h : high, 고가

    l : low, 저가

    o : open, 시가

    s : status, 상태 (ok 이기 때문에 성공적으로 요청에 응답했다는 의미로 추측됨.)

    t : timestamp, 시간

    v : volume, 거래량

    vo : ?? 뭔지 모름 값도 다 0으로 되어있음.




Designed by Tistory.