728x90
반응형

전체 글 234

(파이썬) TypeError: unsupported operand type(s) for /: 'str' and 'int'

1. 들어가며 파이썬에서는 문자형은 문자형, 인자형은 인자형끼리 문장이 이루어진다. 문자형(str) 및 인자형(in)을 더하거나 빼면 아래의 에러가 발생한다. 2. 오류 예시 a = "100" print(a/4) (expect result) Traceback (most recent call last): File "C:\Users\User\Desktop\pythonProject\str vs int.py", line 3, in print(a/4) TypeError: unsupported operand type(s) for /: 'str' and 'int' 3. 오류 해결 문자형으로 선언된 a를 인자형으로 변경한다. ※ 문자형으로 선언되었다는 것은 숫자 100의 양 옆으로 쌍 따옴표(" ")가 붙었다는 내용이..

(주식 자동 매매) 키움증권 OpenAPI 예수금/주문가능금액 조회 (opw00001)

1. 들어가며 이전에는 키움증권 OpenAPI를 통해 키움서버에 로그인 하는 방법을 알아보았다. 이번 글에서는 로그인 후 키움증권 계좌의 예수금/주문가능금액을 구현하는 코드를 알아보자 ※ 아래 계좌는 모의투자 계좌임을 미리 말씀드린다. 예수금 : 주식거래를 위해 증권사의 계좌에 입금한 금액을 말함 주문가능금액 : 계좌에 입금한 금액 중 구매한 주식금액을 제외하고 남은 금액(=투자가능금액) 2. KOA StudioSA에서 구현 KOA StudioSA에서는 아래의 그림과 같이 TR 요청을 통해, 예수금 및 주문가능금액을 얻는다. ① 키움 서버에 요청하는 TR번호 : opw00001(예수금상세현황요청) ② opw00001(TR요청)을 위해 얻어오는 결과물(예수금, 주식가능금액) ③ TR을 키움 서버에 요청하는..

(주식 자동 매매) 키움증권 OpenAPI 로그인

1. 들어가며키움증권에서 제공하는 OpenAPI를 통해 키움서버에 접근하기 위해서는, 파이썬을 통해 OpenAPI에 접속하여 로그인할 수 있어야 한다. 당초 로그인 후 예수금 받기까지 진행하려고 했으나, 그렇게 되면, 로그인을 위한 코드를 제대로 알 수 없기에 순수하게 로그인 코드를 설명한다. ※ 이 글 이후부터는 로그인 관련 내용은 별도 설명을 하지 아니할 예정이다.2. 코드 설명 - 1줄 : sys는 파이썬의 변수 혹은 함수를 다룬다. - 2줄 : PyQt5.QAxContainer은 QtWidget를 호출하기 위해 임포트함 - 3줄 : PyQt5.QtWidgets는 동시성 처리을 위해 임포트함 - 4줄 : PyQt5.QtCore는 14줄~15줄의 로그인 이벤트 루프 및 실행할 때 필요하다. - 6줄 ..

(파이썬) 함수 정의 및 활용

1. 들어가며 파이썬에서 함수, 메소드, 클래스, 인스턴스는 무엇이며 어떤 역할을 하는가? 코딩에 재미를 느끼는 요즘 부쩍 궁금해지는 고민이다. 함수 : 특정기능의 실현을 위해 정의해 놓은 경우를 말함(def로 시작) 메소드 : 클래스 안에 함수가 정의된 경우를 말함(def로 시작) 클래스 : 함수(메소드)들의 모음 인스턴스 : 클래스를 특정변수에 담는 경우를 말함 2. 함수 예시 아래 에서, ①~③번의 클래스, 함수, 메소드, 인스턴스의 예시이다. ①번의 aaa함수가 정의 → 결과값은 3 ②번의 ccc클래스 내 ddd메소드가 정의됨 → 결과값은 7 * ②번처럼 클래스를 선언하고 실행하기 위해 "ccc.ddd()"로 실행하기에는 클래스 선언하는 것이 아깝다. (① 혹은 ③번처럼 실행하는 것이 효율적) ③..

(파이썬) 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 함수 설명 ㅇ 개념 : 순회 가능한 객체를 인자로 받고, 각 자료형의 각각의 요소를 나눈 후 리스트로 반환하는 함수 한마디..

(주식 자동 매매) 키움증권 OpenAPI/KOAStudio 설명

1. 들어가며 파이썬으로 주식 자동매매를 실행하기 위해 키움에서 제공하는 OpenAPI 프로그램 설치를 통해 "주식정보 서버"에 접속할 수 있다. * OenAPI 설치하는 방법은 아래의 링크를 참고하면 된다. 링크 : https://www.kiwoom.com/h/customer/download/VOpenApiInfoView 2. 프로그램 간략 설명 KOAStudio : OpenAPI가 제공하는 함수와 이벤트 사용방법을 확인할 수 있는 프로그램 OpenAPI : 사용자가 키움증권 서버에 접근하여 현재가 조회/주문 등을 할 수 있는 프로그램 → 즉 KOAStudio는 모의투자에 접속하여 함수를 테스트해 볼 수 있는 프로그램이고 OpenAPI는 모의투자/실제 투자든 상관없이, 키움증권 서버에서 거래할 수 있는..

(파이썬) SyntaxError: 'await' outside async function 오류

1. 들어가며 비동기 모듈인 asyncio를 파이참에서 실행하려고 할 때, 아래와 같은 에러 발생 : SyntaxError: 'await' outside async function 2. 해결 방법 14번째 줄의 await는 async 비동기 함수 내(12번째 줄)에서 써야 한다 12번째 줄을 변경 : (당초) def myfnc2() (변경) async myfnc2() 오류 원인 : await 명령어는 async 함수 내에서 유효하게 작동한다. 문제 해결 : await 명령어가 있는 구문의 함수(def) 앞에는 async를 붙여준다. 3. 결론 파이참에서 특정 줄이 에러가 났다고 해서, 해당 줄만 보고 있으면 해결이 안되는 듯 하다. 함수 선언, 문장 끝에 콜론(:)을 넣었는지 등 꼼꼼한 확인이 필요하다는..

(파이썬) 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에너지솔루션(..

(파이썬) 주식 자동매매를 위한 사전준비 (필요 모듈)

1. 들어가며 키움증권 openapi를 통해 국내주식 자동거래 시스템을 구축하고 한다. 이를 위해 설치 혹은 가져오기(import)가 필요한 파이썬의 라이브러리를 소개한다. 2. 설치 필요/모듈 가져오기(import) 라이브러리 아래의 11가지를 설치한 후, 소스코드를 작성하는 게 좋아 보인다. 1) anaconda 32bit 설치 → 키움 openapi는 32bit에서 실행하도록 되어 있음 (32비트가 설정되어야 QAxContainer 에러가 발생하지 아니함) * 아나콘다 64bit를 설치한 경우, 32비트가 적용된 가상환경을 설정하여 진행 필요 2) pycharm 설치 → 코드작성 및 실행 화면 출력을 위해 설치 3) pandas 최신 버전 설치 - 1.4버전 이상으로 설치 권..

(파이썬) 주식 multiprocessing.Process 적용하여 다중 병렬 처리하기

1. 들어가며 1) 파이썬으로 주식코드를 만들고 3가지 정보를 받으려고, 파이참에서 실행(shift + f10)했는데, 1가지 정보만 받아왔다. 2) 이유는, 파이썬의 GIL(Global Interpreter Lock) 때문이며, 파이썬 인터프리터는 한 스레드에서 하나의 코드를 실행시킬 수 있도록 해주기 때문이다. - 예를 들어, 즉, a함수가 1분마다 실행되고 있다면, 이 경우 b,c 함수는 미실행된다 * a함수는 1분마다 1분봉 받기, b는 5초마다 현재가 받기, c는 5초마다 매수가 받기 함수 2. 접근 방법 ㅇ 파이썬의 GIL을 우회하는 방법(병렬 처리)으로 검색을 해보니, 라이브러리 중 asyncio, multithreading, multiprocessing 등 3가지를 알아보았다. - asyn..

728x90
반응형