728x90
반응형

분류 전체보기 234

(파이썬) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (2) 패턴 빈도 계산

1. 들어가며 1편(패턴 찾기, 엑셀 이용)에 이어 패턴 관련 내용을 설명한다. 이 글에서는 패턴만들기 및 익절/손절 타점 잡는 내용을 주로 다룰 것이다. 패턴을 이용하여 매수/매도 타점 확인 및 익절 타이밍 잡기 https://springcoming.tistory.com/32 (파이썬) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (1) 엑셀 이용 1. 들어가며 주식 차트를 계속 보고 있으면, 느낌 때문일까? 반복되는 패턴이 눈에 보인다. 그 패턴에서만 매매를 하면 좋을텐데, 사람의 마음이 어디 한결 같으랴... 알고리즘 패턴 찾기 글을 총 springcoming.tistory.com 2. 패턴을 찾은 후 매수/매도 타이밍 판단 1) 패턴에 대한 익절/손절을 위한 진입 판단 근거 빈도수를 구해서 무엇을 ..

(파이썬) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (1) 엑셀 이용

1. 들어가며 주식 차트를 계속 보고 있으면, 느낌 때문일까? 반복되는 패턴이 눈에 보인다. 그 패턴에서만 매매를 하면 좋을텐데, 사람의 마음이 어디 한결 같으랴... 알고리즘 패턴 찾기 글을 총 3회에 걸쳐 올리려고 한다. 1편에서는 1분봉 데이터를 이용하여 엑셀 파일 편집하기 2편에서는 1분봉 데이터를 엑셀에서 패턴 만들기 3편에서는 파이썬의 1분봉 데이터의 패턴에 해당하면, 매수/매도를 할 수 있도록 코드를 짜보고자 한다. 왜 하필 1분봉 데이터로 판단할까? 개인적으로 키움증권에서 얻어올 수 있는 정보 중 변화가 가장 심하고, 1분봉 안에는 투자자의 심리가 담겨있다고 생각한다. 1분봉 데이터를 분석하여, 익절과 손절을 위한 매수/매도 타점을 찾고자 한다. 알고리즘이라고 부를 수는 없겠지만, 필자같은..

(주식 자동 매매) 키움증권 OpenAPI - SendOrder함수를 이용하여 매수/매도하기

1. 들어가며 이번 시간에는 키움증권 OpenAPI를 활용하여, 주식의 매수/매도하는 방법을 알아보고자 한다. "매수는 기술이지만, 매도는 예술이다" 라는 주식 명언이 있듯이 주식 자동매매로 수익을 내려면 매수/매도하는 방법을 파이썬에서 구현할 수 있어야 한다. 급하게 코드를 작성해서 매수/매도를 위해 오류없이 코드 작성하는게 생각보다 시간이 많이 걸렸고, 장 종료시간(18:00)은 다가오고... 캡쳐를 제대로 찍지 못한 점에 대해, 미리 양해의 말씀을 드린다. 이 글에서는 매매를 위한 함수인 SendOrder을 통해 주식의 매수/매도의 과정을 설명하고 카카오(035720) 매수와 신일전자(002700) 매수/매도의 과정을 알아볼 것이다. 2. 사전 준비 1) SendOrder 함수 검색 및 실행방법 찾..

(파이썬) pandas와 os모듈을 활용하여 데이터를 엑셀로 보내기

1. 들어가며 키움증권에서 수신받은 데이터를 엑셀 파일에 저장해야 할 때가 있다. 주가의 흐름, 패턴 등을 파악할 때 엑셀은 발군의 기능을 보인다. 이 글에서는 pandas와 os모듈을 활용하여 데이터를 엑셀로 저장하는 방법을 알아볼 것이다. → 나중에는 1분봉을 엑셀의 각 시트에 저장하는 내용을 소개할 예정이다. pandas 모듈 : 데이터를 행과 열 형태로 정리해 주는 모듈 (pandas 1.4.2 버전 이상으로 업데이트 필요) os 모듈 : 파이썬에 내장된 모듈이며, 윈도우 운영체제에서 제공되는 기능을 파이썬에서 활용하도록 함 2. 코드 구현 아래는 데이터프레임 형태로 저장된 3가지 데이터(4줄~6줄)이다. 1줄 : 데이터프레임 형태(4줄~6줄)의 자료 활용을 위해 pandas 모듈을 임포트함 2줄..

(주식 자동매매) 키움증권 영웅문4에서 1분봉 엑셀로 받는 방법

1. 들어가며 키움증권의 영웅문4은 사용자에게 각종 데이터를 제공한다. 사용자는 종목차트, 보조지표, 주식 현재가 등 주식 매매를 위해 필요한 정보를 얻을 수 있다. 이번 시간에는 영웅문4에서 1분봉을 엑셀로 다운받는 방법을 알아보자. 왜 종목의 1분봉이 필요할까? 특정종목의 패턴을 찾고자 한다. (향후 설명) 특정 패턴이 나타났을 때, 주가가 어떻게 움직이는지 혹은 익절/손절 라인이 어디인지 설정하기 위해서이다. 그렇게 하려면, 로데이터가 많이 필요하다. 2. 사전 준비 키움증권의 영웅문4에 접속/로그인을 한다. 영웅문의 좌측 상단의 검색란에 주식종합차트를 의미하는 화면번호 "0601"을 입력한다. 3. 1분봉 받는 방법 1) 종목코드 입력하기 삼성전자 005930을 검색창에 입력하고 나서, 차트의 하..

(주식 자동 매매) 키움증권 OpenAPI 매수한 4종목의 매수가격, 매수량 받아오기(opt10085)

1. 들어가며 지난 시간에는 키움증권 OpenAPI를 통해 현재가를 전역변수에 담아 출력해 보았다. 이번 시간에는 매수한 4종목의 매수가격, 매수량을 받아오는 코드에 대해 알아보자. 매수가격 및 매수량은 익절/손절을 구하기 위해 반드시 구현할 필요가 있다. * 4종목 : 삼성전자(005930), 경동나비엔(009450), 아프리카TV(067160), 토니모리(214420) (익절) 현재가격 > 매수가격 + 2,000원이면, 현재가(시장가)로 매도 (손절) 현재가격 < 매수가격 - 3,000원이면, 현재가(시장가)로 매도 2. 사전준비 1) 화면번호 찾기 어제 모의계좌를 통해 4종목을 매수하였다. 매수한 4종목의 매수가격 및 매수량을 알아보기 위해 영웅문4에 접속하여 어떤 카테고리에서 제공하는지 열심히 찾..

(주식 자동 매매) 키움증권 OpenAPI 종목의 현재가를 전역변수에 담기(opt10001)

1. 들어가며 지난 번에는 4종목의 현재가를 pandas모듈의 데이터프레임에 담아 출력해 보았다. 이번에는 4종목의 현재가를 변수에 담아 향후 거래할 때, 현재가 > 매수가이면, 칼같이 매도하는 코드를 알아보자 - 아래 예시의 익절/손절을 구하기 위해서는 매수가격도 구현해야 한다.ㅠㅠ * 4종목 : 삼성전자(005930), 경동나비엔(009450), 아프리카TV(067160), 토니모리(214420) (익절) 현재가격 > 매수가격+ 2,000원이면, 시장가격으로 매도 예정 (손절) 현재가격 < 매수가격 - 3,000원이면, 시장가격으로 매도 예정 2. 사전 준비 KOA StudioSA에서 받아오는 정보는 아래와 같다. (KOA StudioSA 관련 내용은 아래에서 확인 가능한 점을 고려하여, 여기서는 생..

(주식 자동 매매) 키움증권 OpenAPI 4종목 현재가 조회(opt10001)

1. 들어가며 지난 번에는 삼성전자(005930)의 현재가를 받아보았다. 이번에는 4종목의 현재가를 pandas모듈의 데이터프레임에 담아보자 * 4종목 : 삼성전자(005930), 경동나비엔(009450), 아프리카TV(067160), 토니모리(214420) 그런데, 왜 하필 4종목의 현재가만 구현하는 것일까? 필자의 관심사는 해외선물 자동매매거래이다. * 4종목 : 해외선물의 가스(NG), 골드(GC), 나스닥(NQ), 원유(CL) 해외선물의 시세조회 및 거래를 위한 OpenAPI 사용을 위해서는, OpenAPI 한달 이용료가 $170달러이다. 환율 1,423원('22.9.23 기준)으로 계산해 보면, 우리 돈 241,910원, 즉 240천원을 매달 키움 측에 지불해야 한다. 아직 코딩 초창기인 나에게..

(주식 자동 매매) 키움증권 OpenAPI 현재가 조회(opt10001)

1. 들어가며 이전에는 예수금/주문가능금액 조회(opw00001)을 알아보았다. 이번 시간에는 키움증권 OpenAPI를 통해 삼성전자(005930)의 현재가 조회를 알아본다. 2. 사전 준비 파이썬을 통해 키움증권 OpenAPI에 접근하는 코드를 짜기 전에, KOA StudioSA에 접속하여, 어떤 정보를 입력하고, 어떤 정보가 출력되는지 확인해 보자. TR목록에서 현재가로 검색하면 opt10001 TR번호(①)로 "현재가(③)"를 찾을 수 있다. 입력(INPUT, ②)은 종목코드(⑤) 1개만 입력하면 된다. 출력(OUTPUT, ③)으로 종목코드와 현재가를 출력할 것이다. 화면 중간의 코드로 쓰이는 함수(④)는 SetInputValue, CommRqData이다. * ④의 SetInputValue, Com..

(파이썬) threading와 time 모듈로 특정 시간마다 반복 실행

1. 들어가기 주식자동매매 프로그램으로 거래를 하다보면, 일정 시간마다 반복되는 함수를 구현할 필요가 있다. 내가 원하는 패턴에서 매수(진입)하여, 익절/손절 라인에 도달하면 칼같이 매도(청산)하고, 마지막으로 주식이 횡보하면, 일정시간이 흐른 뒤 시장가로 매도(청산)하려고 한다. 특정 시간의 매수/매도를 위해서는 함수 반복 및 시간 측정이 필요하다. 이 글에서는 파이썬이 제공하는 threading 모듈과 time 모듈을 이용할 예정이다. threading 모듈은 스레드를 기반으로 병렬 처리하며, timer을 이용하여, 일정시간(interval) 동안 함수를 반복 실행 time 모듈은 시간과 관련된 함수이며, 이글에서는 현재시간을 구할 것이다. 2. 반복되는 모듈 비교 ㅇ while 반복문 : 개인적으로..

728x90
반응형