728x90
반응형

2. 해외선물/2-1. 해외선물 자동매매 연구 24

(키움증권 해외선물 자동매매 파이썬) (3) 실시간 데이터 받아오기

목 차 1. 들어가며 2. 사전설명 1) 실시간 데이터 받는 원리 2) realtype 및 fid 값의 개념 3. 코드설명 4. 전체코드 5. 마치며 1. 들어가며지난 글에서는 키움증권 OpenAPI-W를 통해 해외선물의 "실시간 데이터 받아오는 원리"에 대해 알아보았다. 코드를 어떻게 짜야될지 막막할 때는 WKOA Studio에 종목코드 등을 입력하고 "조회"를 누르면, 수신받는 데이터의 태형(type)이나 결과물(현재가, 체결량 등) 등을 확인할 수 있어서 좋은 것 같다. 이번 글에서는 "실시간 데이터 받기"에 관한 코드를 작성해보자. "非실시간 데이터 받기"에 익숙해졌다면, 비교적 쉽게 접근가능할 것이라 생각된다. 천천히 살펴보자. 2. 사전설명1) 실시간 데이터 받는 원리은 실시간 데..

(키움증권 해외선물 자동매매 파이썬) (1) 실시간 데이터 받아오는 원리

목 차 1. 들어가며 2. 사전설명 1) 개발가이드에서 실시간 데이터 받아오는 방법 ① 국내주식 OpenAPI 활용 ② 해외선물 OpenAPI-W 활용 2) WKOA Studio에서 실시간 데이터 받는 방법 확인 3. WKOA Studio를 통해 실시간 데이터 받는 방법 1) TR 목록을 통해 데이터를 input 할 수 있도록 하자. 2) WKOA Studio의 실시간 목록 화면 3) WKOA Studio에서 실시간 데이터 받는 화면 4. 실시간 데이터 받는 원리 5. 마치며 1. 들어가며국내주식으로 자동매매(OpenAPI)를 할 때 실시간 데이터를 수신받는 코드를 실행해 보았다. 다만, 완성되지 않는 봉은 필자에게 의미가 없다고 생각했다. 그래서 실시간 데이터가 아닌, 받아온 데이터를 알고리즘으로 "확..

(키움증권 해외선물 자동매매 파이썬) 22. 진입/청산 알고리즘 구상하기(完)

목 차 1. 들어가며 2. 사전설명 3. 엑셀로 수익/손실 검증하기 4. 마치며 1. 들어가며 지난 글에서는 매매내역을 엑셀로 내보내는 코드를 알아보았다. 사용자 취향에 따라 엑셀이든, csv이든 매매내역을 보관하고 싶다면, 한번 정도는 시도해 볼만한 "매매내역의 엑셀 보내기"의 내용이었을 것이다. 이번 글에서는 진입/청산 알고리즘을 구상하는 방법에 대해 설명해 보고자 한다. 이번 글(22번)을 마지막으로 1번 글부터 진행하였던, 해외선물 자동매매 코드에 대한 설명을 마무리하려고 한다. 앞에서도 언급하였지만 해선 자동매매에 대한 글은 꾸준히 쓸 것이다. 이렇게 앞의 내용을 이어가면서 글을 쓰는 것을 마무리 할 것이라는 뜻이다. 주식, 해외선물, 암호화폐 등 사람들 간의 거래에 의해 가격이 결정되는 구조에..

(키움증권 해외선물 자동매매 파이썬) 21. 매매내역을 엑셀로 기록하기

목 차 1. 들어가며 2. 사전설명 3. 코드설명 4. 전체코드 5. 마치며 1. 들어가며 지난 글에서는 해외선물 매매의 오버나잇(overnight) 피하기에 대해 알아보았다. 이또한 투자성향에 따라 다르겠지만, 오버나잇은 왠만하면 안하는 방향으로 생각하고 있다. 이유는? 아침에 일어나 수익/손실을 확인했는데, "손실"로 하루를 시작하면 그날 하루가 정말 안 좋게 진행되는 경우가 많았기 때문이다. 이번 글에서는 매매내역을 엑셀의 로그 기록하기에 대해 알아볼 것이다. 이 내용 또한 예전에 설명한 적이 있다. 파이참의 결과값을 엑셀로 보내기에 해당하는 글은 링크(https://springcoming.tistory.com/30)에서 확인할 수 있다. 사실 자동매매 코드를 작성하는 것은 알고리즘에 따른 진입을 ..

(키움증권 해외선물 자동매매 파이썬) 20. 오버나잇(overnight) 피하는 방법 (매매 종료시간 설정)

목 차 1. 들어가며 2. 사전설명 1) 청산후 대기(time.sleep)하는 방법 2) 청산후 시스템 종료(shutdown)하는 방법 3. 전체코드 4. 전체코드 5. 마치며 1. 들어가며 지난 글에서는 "진입후 매매시간 및 청산후 대기시간" 설정에 대해 알아보았다. 개인의 투자성향에 따라 달리 설정하거나, 아예 미설정할 수 있는 내용이다. 사용자가 잘 판단하여 본인의 프로그램에 적용하자. 필자의 경우도 "진입후 매매시간"을 1시간 설정을 바꿀 의향이 있다. 1시간은 너무 길어서 "시장의 변동성"에 유연하게 대응하지 못할 것 같기 때문이다. 매매시간을 수정할지는 차차 고민해볼 문제이다. 이번 글에서는 매매정지를 위해 자동매매 시스템을 멈추는 방법을 알아보자. 필자의 경우 오버나잇(overnight)을 ..

(키움증권 해외선물 자동매매 파이썬) 19. 매매시간 및 대기시간 설정

목 차 1. 들어가며 2. 사전설명 1) 진입후 매매시간 설정 필요성 2) 청산후 대기시간 설정 필요성 3. 코드설명 4. 전체코드 5. 마치며 1. 들어가며 지난 글에서는 진입/청산 시도횟수를 구하는 방법을 알아보았다. 개인의 취향이겠지만, 자동매매 과정에서 파이참(pycharm) 화면에 아무것도 출력되지 않는다면, 매매가 제대로 이루어지고 있는지 고민이 많을 것이다. 자동매매 시스템에 익숙해질 때까지는 화면에 시도횟수를 출력하는 것도 좋아보인다. 이번 글에서는 시간을 설정/제한하는 방법을 알아보자. 2. 사전설명 1) 진입후 매매시간 설정 필요성 long이든 short이든 진입을 해서 수익/손실로 설정한 값에 도달하면 청산을 하는 경우로 설정한다. 그런데, 진입 후 횡보장일 때 어떻게 할 것인가? 대..

(키움증권 해외선물 자동매매 파이썬) 18. 진입/청산 시도횟수 체크하기

목 차 1. 들어가며 2. 사전설명 3. 코드설명 4. 전체코드 5. 마치며 1. 들어가며 지난 글에서는 시간대별 다른 코드 적용을 위한 "시간 구분"에 대해 알아보았다. 현재시간을 구하고, while을 이용하여 일정시간 반복 및 if, elif, else를 통해 시간구분을 할 수 있을 것이다. 이번 글에서는 진입/청산 시도횟수 체크하기에 대해 알아볼 것이다. 진입/청산 시도횟수 체크하는 것이 필요한 이유는 무엇일까? 자동매매 시스템을 구축하였다고는 해도, 제대로 돌아가는건지 의문이 들 때가 많다. 파이썬이라는 낯선 언어, 키움증권API를 통해 키움서버에 접속하여 데이터를 요청하고 받아오는 행위가 제대로 이루어지고 있는지 확인하고 싶을 때가 많다. 이러한 이유로 "진입/청산 시도횟수" 체크 및 출력을 통..

(키움증권 해외선물 자동매매 파이썬) 17. 시간별 다른 코드 적용하기

목 차 1. 들어가며 2. 사전설명 1) 현재시간 출력 2) 일정시간 코드 실행 3) 시간 구분하는 방법 3. 코드설명 1) 현재시간 출력하기 2) 시간 구분하기 4. 전체코드 5. 마치며 1. 들어가며 지난 글에서는 "현재시간" 출력하는 방법을 알아보았다. 파이썬의 datetime 라이브러리를 활용하였고, 생각보다 코드가 간단하다는 것을 느꼈다. 이번 글에서는 시간별 다른 코드 적용하는 방법을 알아볼 것이다. 제목이 부담스러울 정도로 거창하긴 한데, "시간대별 다른 코드 적용"하는 코드도 간단하니, 부담없이 알아보도록 하자. 2. 사전설명 시간별로 다른 코드(알고리즘)을 적용하기 위해 우리가 알아야 할 3가지는 첫번째 현재시간 출력이며, 두번째는 일정시간마다 코드 실행, 마지막으로 "다른 시간"을 구분..

(키움증권 해외선물 자동매매 파이썬) 16. 현재시간 출력하기

목 차 1. 들어가며 2. 사전설명 3. 코드설명 4. 전체코드 5. 마치며 1. 들어가며 지난 글에서는 해외선물 거래를 위해 필요한 보조지표를 얻는 방법을 알아보았다. 보조지표는 어디까지나 매매를 위한 보조수단일뿐 지나치게 맹신하지 않아야 한다. 이유는? 시장은 항상 변하기 때문이다. 이번 글에서는 해외선물 자동매매를 위해 필요한 "시간 관리"에 대해 알아볼 것이다. 시간 관리가 필요한 이유는 무엇일까? 서머타임(3월중순 ~ 11월초) 기준으로 아침7시~익일 6시까지 23시간 시장이 열려있다. 이 중 거래량이 폭발적으로 증가하는 미국장이 개장하는 22:30~05:00까지의 알고리즘과 05:00~22:30분까지의 적용할 알고리즘이 동일할 수는 없을 것이다. 왜냐하면, 거래량과 선물가격의 변화량에서 압도적..

(키움증권 해외선물 자동매매 파이썬) 15. 보조지표 구하기 (볼린저밴드, MACD, 스토캐스틱)

목 차 1. 들어가며 2. 코드설명 1) 볼린저밴드 2) MACD 3) 스토캐스틱 3. 전체코드 4. 마치며 1. 들어가며 지난 글에서는 RSI 지표의 코드 작성에 대해 알아보았다. 필자는 개인적으로 rsi 보조지표를 선호하는 편이다. 그래서 구체적으로 작성했던 것 같다. 이번 글에서는 예전에 설명했던 보조지표들에 대해 간략히 설명할 예정이다. 코드의 상세한 설명은 링크를 걸어둔다. 사실, 보조지표의 설명을 다시 해야하나... 상당히 고민했다. 지난 글의 rsi처럼 새로운 내용이 추가되는 게 아닌데, 중복된 설명은 글을 쓰는 필자도 그렇고, 글을 읽는 사용자도 집중력이 떨어질 수 밖에 없을 것 같다. 그래서, 중복된 내용은 링크를 걸고, 보조지표를 실시하는 "코드"를 공유(4. 전체코드)하는 차원에서 이..

728x90
반응형