728x90
반응형

1. 국내주식/1-1. 국내주식 연구일지 23

(엑셀) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (4) 패턴별 승률을 엑셀로 계산해보기 (카카오 035720)

목 차 1. 들어가며 2. 사전준비 (엑셀 함수 설명) 1) MAX(범위), ,MIN(범위) 2) MATCH(특정값, 범위, 0) 3) IF 함수를 활용하여, 2개의 행(row)에 대해 비교하여, 승/패를 부여한다 4) countifs를 활용하여, 조건에 맞는 내용의 갯수를 확인한다. 3. 엑셀 설명 1) 1분봉을 키움서버에서 다운 받을 후 필요없는 내용은 삭제한다. 2) 패턴을 조합하고, 패턴의 중복된 데이터를 없앤다. 3) 각 패턴에 따른 최대값/최소값의 행을 구하고, if를 통해 승/패를 계산한다. 4) 중복값을 없애고, 각 패턴의 출현 빈도는 countifs 함수로 계산한다. 4. 주의사항 5. 마치며 1. 들어가며 이전 글에서는 주식 1분봉 모음 추출한 패턴을 파이썬에 적용해 보았다. 장 종료로..

(주식 자동매매) 키움증권에서 받아온 1분봉을 오름차순으로 바꾸는 방법

1. 들어가며 이전 글에서는 키움증권 영웅문에서 1분봉을 받아오는 방법을 알아보았다. 키움서버는 최초 1분봉 조회 시 "내림차 순"으로 자료를 제공한다. 최근 자료를 기존 자료에 누적시키다보니 일어나는 현상으로 이해된다. 1분봉을 다운 받을 때, "이전 일자부터 보임"을 누르지 않고, 바로 "데이터를 엑셀로 저장"을 누르면, 다운 받은 엑셀파일에는 내림차 순으로 자료가 정렬되어, 오름차순으로 자료를 다시 한번 정리해 주어야 하는 번거로움이 있다. 이 글에서는 내림차 순으로 받은 자료를 오름차 순으로 변경하는 방법을 간략하게 설명하고자 한다. 2. 오름차순 자료의 정렬 의미 및 필요성 우선 내림차순/오름차순 용어를 정의해 보자 내림차순 : 10, 9, 8.... 3, 2, 1로 큰 숫자가 맨 처음 나오는 ..

(파이썬) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (3) 파이썬에 적용

1. 들어가며 지난 2번의 글에서 주식 패턴 만들기 및 만들어진 패턴으로 익절/손절 정하기 등을 알아보았다. 이번 시간에는 input함수와 for 반복문을 통해 패턴 및 익절/손절 타점을 파이썬에 적용하여 보자. input 함수 : 파이썬 내장함수이며, 사용자가 입력한 내용을 변수에 저장할 때 사용한다. for 반복문 : 파이썬 내장함수이며, 사용자가 일정한 패턴을 반복하고자 할 때 사용한다. ※ for 반복문은 아래를 참고 : https://springcoming.tistory.com/12?category=1025768 (파이썬) for문 활용 (1) - 기본 설명 1. 들어가며 for문은 반복적인 작업을 간략하고 효율적으로 실행할 수 있는 코드이다. 이 글에서는 키움증권 OpenAPI를 통해 파이썬 ..

(파이썬) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (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분봉 데이터를 분석하여, 익절과 손절을 위한 매수/매도 타점을 찾고자 한다. 알고리즘이라고 부를 수는 없겠지만, 필자같은..

(파이썬) 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을 검색창에 입력하고 나서, 차트의 하..

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

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

(파이썬) for문 활용 (2) - zip()함수

1. 들어가며 앞에서는 for문의 기본 구조를 설명하였다. 이번에는 for문과 zip함수를 활용하여, 향후 사용할 종목코드, 수익/손실을 비교할 수 있는 코드를 구현한다. * for문 기본구조 설명 : https://springcoming.tistory.com/12 (주식 자동매매) for문 활용 (1) - 기본 설명 1. 들어가며 for문은 반복적인 작업을 간략하고 효율적으로 실행할 수 있는 코드이다. 이 글에서는 키움증권 OpenAPI를 통해 파이썬 코드 작성할 때 사용되는 for문에 대해 알아본다. 2. for문 설명 1 springcoming.tistory.com 2. zip 함수 설명 ㅇ 개념 : 순회 가능한 객체를 인자로 받고, 각 자료형의 각각의 요소를 나눈 후 리스트로 반환하는 함수 한마디..

(파이썬) for문 활용 (1) - 기본 설명

1. 들어가며 for문은 반복적인 작업을 간략하고 효율적으로 실행할 수 있는 코드이다. 이 글에서는 키움증권 OpenAPI를 통해 파이썬 코드 작성할 때 사용되는 for문에 대해 알아본다. 2. for문 설명 1) for문 기초 1부터 10까지 출력하는 for문 코드는 아래와 같다. for i in range(1,11): print(i) 2) list를 활용한 for문 활용 list에 입력된 과일들을 순차적으로 for문으로 결과는 아래와 같다. lists = ["사과", "바나나", "파인애플"] for j in lists: print(f"내가 좋아하는 과일은 {j}이다") 3. for문을 활용하여 3종목의 1분봉 받기 - 3종목 : 삼성전자(005930), SK하이닉스(000660), LG에너지솔루션(..

728x90
반응형