데이터프레임
-
프로그램 구현 목표두 번보다도 많은 횟수의 데이터를 요청해보자요청한 데이터 개수만큼만 결과값을 전달받아보자 두 번보다도 많은 횟수의 데이터를 요청해보자현재까지 구현한 코드는 단순하게 2,856개의 데이터를 두 번 요청하는 기능밖에 수행하지 못한다. 왜냐하면 동일한 작업을 계속해서 처리하도록 하는 기능이 구현되어 있지 않기 때문이다. 이해가 가지 않는다면, 3번을 요청해야만 회신받을 수 있는 데이터 개수인 6,000개를 요청해보면 된다. 아래의 결과값만 봐도 어렵지 않게 이해할 수 있는데, 정확히 5712개의 데이터만 반환되고 있다. 이는 10,000개를 요청하나 13,000개를 요청하나 똑같은 결과값만을 반환해줄 뿐이다.□ 6,000개를 요청했을 때의 결과값더보기더보기self.object:CpCybos ..
대신증권 CYBOS PLUS 프로그램 구현 (11) - 일봉 차트 조회 : 연속 조회 사용하기 ②프로그램 구현 목표두 번보다도 많은 횟수의 데이터를 요청해보자요청한 데이터 개수만큼만 결과값을 전달받아보자 두 번보다도 많은 횟수의 데이터를 요청해보자현재까지 구현한 코드는 단순하게 2,856개의 데이터를 두 번 요청하는 기능밖에 수행하지 못한다. 왜냐하면 동일한 작업을 계속해서 처리하도록 하는 기능이 구현되어 있지 않기 때문이다. 이해가 가지 않는다면, 3번을 요청해야만 회신받을 수 있는 데이터 개수인 6,000개를 요청해보면 된다. 아래의 결과값만 봐도 어렵지 않게 이해할 수 있는데, 정확히 5712개의 데이터만 반환되고 있다. 이는 10,000개를 요청하나 13,000개를 요청하나 똑같은 결과값만을 반환해줄 뿐이다.□ 6,000개를 요청했을 때의 결과값더보기더보기self.object:CpCybos ..
2024.09.06 -
가끔 데이터프레임 내에서 특정 값이 존재하는 행의 인덱스 번호를 얻어와야 할 때가 있다. 왜냐하면 데이터프레임의 특정 값에 접근하기 위해서는 인덱스 번호가 무엇보다도 가장 기본적으로 사용되는 방법이기도 하며, 무엇보다도 가장 간단한 접근 방법이기 때문이다. 예를 들어, 아래와 같은 데이터프레임이 있다고 가정해보자.codeopenhighlowclosepre_closevix00010010001300 00030013001350 우리가 이 때 종목코드가 000100인 데이터가 데이터프레임의 몇 번째 행에 입력되어 있는지를 알아야 000100 종목코드가 입력되어 있는 행의 다른 데이터(시가, 고가, 저가 등)에도 접근할 수 있다. 특정 칼럼의 특정 값이 위치한 인덱스 번호 얻어오기이해를 돕기 위해, 위..
데이터프레임 인덱스 값 얻어오기가끔 데이터프레임 내에서 특정 값이 존재하는 행의 인덱스 번호를 얻어와야 할 때가 있다. 왜냐하면 데이터프레임의 특정 값에 접근하기 위해서는 인덱스 번호가 무엇보다도 가장 기본적으로 사용되는 방법이기도 하며, 무엇보다도 가장 간단한 접근 방법이기 때문이다. 예를 들어, 아래와 같은 데이터프레임이 있다고 가정해보자.codeopenhighlowclosepre_closevix00010010001300 00030013001350 우리가 이 때 종목코드가 000100인 데이터가 데이터프레임의 몇 번째 행에 입력되어 있는지를 알아야 000100 종목코드가 입력되어 있는 행의 다른 데이터(시가, 고가, 저가 등)에도 접근할 수 있다. 특정 칼럼의 특정 값이 위치한 인덱스 번호 얻어오기이해를 돕기 위해, 위..
2021.07.22 -
데이터프레임은 크게 칼럼(열)과 인덱스(행)으로 구분되어 있으며, 각 위치에 접근하는 방법으로 iloc과 loc을 가장 흔히 사용한다. 아래와 같은 데이터프레임이 있다고 가정해보도록 하자. 아래와 같은 데이터프레임을 제작하는 방법으로는 가장 크게 두 가지 방법이 있다. 첫 번째 방법은 딕셔너리를 통해 데이터프레임을 제작하는 것이고, 두 번째 방법은 하나의 행을 제작한 후에 기존에 있는 데이터프레임에 합치는 것이다. index 칼럼 1(열 1) 칼럼 2(열 2) 칼럼 3(열 3) 칼럼 4(열 4) 칼럼 5(열 5) 칼럼 6(열 6) 1(행 1) a b c d e f 2(행 2) g h i j k l 3(행 3) m n o p q r 4(행 4) s t u v w x 데이터프레임 제작하기 - (1) 딕셔너리..
데이터프레임 만들기데이터프레임은 크게 칼럼(열)과 인덱스(행)으로 구분되어 있으며, 각 위치에 접근하는 방법으로 iloc과 loc을 가장 흔히 사용한다. 아래와 같은 데이터프레임이 있다고 가정해보도록 하자. 아래와 같은 데이터프레임을 제작하는 방법으로는 가장 크게 두 가지 방법이 있다. 첫 번째 방법은 딕셔너리를 통해 데이터프레임을 제작하는 것이고, 두 번째 방법은 하나의 행을 제작한 후에 기존에 있는 데이터프레임에 합치는 것이다. index 칼럼 1(열 1) 칼럼 2(열 2) 칼럼 3(열 3) 칼럼 4(열 4) 칼럼 5(열 5) 칼럼 6(열 6) 1(행 1) a b c d e f 2(행 2) g h i j k l 3(행 3) m n o p q r 4(행 4) s t u v w x 데이터프레임 제작하기 - (1) 딕셔너리..
2021.07.19 -
지난 게시글에서 while문을 통해 백테스팅을 진행하는 일자가 우리가 입력했던 종료일자(end_date)와 같아지는 순간 진행을 멈추도록 하는 코드를 구축했다. 이번 게시글에서는 while문 아래에서 하루 하루 돌면서 그 날의 종목의 차트 데이터를 불러오고 그를 바탕으로 매수 조건에 충족하는지를 살펴보는 코드를 구축할 예정이다. 실제 거래와 백테스팅 간의 괴리 사실 우리가 구현하고자 하는 거래 전략을 검증(백테스팅) 해보는 방법은 크게 두 가지가 있다. 머리로 가볍게 생각해낼 수 있는 전략들을 직접 차트를 보면서 어렵지 않게 분석할 수 있지만 그 수치들을 일일이 직접 계산하고 엑셀 등과 같은 데이터 관리 프로그램에 저장해야 한다는 단점이 있는 방법과 머리로 생각해낸 전략을 오랜 시간 정상적으로 동작하는 ..
백테스팅 구축 (4) - 일자별 차트 데이터 불러오기지난 게시글에서 while문을 통해 백테스팅을 진행하는 일자가 우리가 입력했던 종료일자(end_date)와 같아지는 순간 진행을 멈추도록 하는 코드를 구축했다. 이번 게시글에서는 while문 아래에서 하루 하루 돌면서 그 날의 종목의 차트 데이터를 불러오고 그를 바탕으로 매수 조건에 충족하는지를 살펴보는 코드를 구축할 예정이다. 실제 거래와 백테스팅 간의 괴리 사실 우리가 구현하고자 하는 거래 전략을 검증(백테스팅) 해보는 방법은 크게 두 가지가 있다. 머리로 가볍게 생각해낼 수 있는 전략들을 직접 차트를 보면서 어렵지 않게 분석할 수 있지만 그 수치들을 일일이 직접 계산하고 엑셀 등과 같은 데이터 관리 프로그램에 저장해야 한다는 단점이 있는 방법과 머리로 생각해낸 전략을 오랜 시간 정상적으로 동작하는 ..
2021.07.04 -
지난 게시글에서 서버에 데이터를 요청하고 그 결과값을 받아오는 부분까지 코드를 제작했고, 이번 포스팅에서는 추가로 조회할 데이터가 남아 있다면 그 데이터를 어떻게 받아올 것인지에 대한 코드를 제작해보도록 하자. 일단 지난 포스팅에서 결과물이 깔끔하게 나오긴 했지만 사실 글을 업로드한 후에 요청 횟수당 600회를 불러올 수 있다는 점과 OnReceiveTrData 내에도 이벤트 루프를 종료하는 코드를 제작해주어야 연속 조회가 가능하다는 점을 깜빡하고 그 내용을 함께 소개하지 못했다. 그래서 이번에는 한 번의 조회로 총 600개의 데이터를 가져오는 것을 먼저 구축한 후 남아 있는 데이터가 있다면 그 데이터도 불러오도록(이하 연속조회) 하는 구조를 구축하도록 하겠다. OnReceiveTrData : "나도 이..
키움증권 Open API 차트 데이터 불러오기 (3)지난 게시글에서 서버에 데이터를 요청하고 그 결과값을 받아오는 부분까지 코드를 제작했고, 이번 포스팅에서는 추가로 조회할 데이터가 남아 있다면 그 데이터를 어떻게 받아올 것인지에 대한 코드를 제작해보도록 하자. 일단 지난 포스팅에서 결과물이 깔끔하게 나오긴 했지만 사실 글을 업로드한 후에 요청 횟수당 600회를 불러올 수 있다는 점과 OnReceiveTrData 내에도 이벤트 루프를 종료하는 코드를 제작해주어야 연속 조회가 가능하다는 점을 깜빡하고 그 내용을 함께 소개하지 못했다. 그래서 이번에는 한 번의 조회로 총 600개의 데이터를 가져오는 것을 먼저 구축한 후 남아 있는 데이터가 있다면 그 데이터도 불러오도록(이하 연속조회) 하는 구조를 구축하도록 하겠다. OnReceiveTrData : "나도 이..
2021.05.31