728x90
반응형

분류 전체보기 235

(파이썬) threading와 time 모듈로 특정 시간마다 반복 실행 (2) 클래스 내에서 실행하고 일정시간 경과 후 종료하기

목 차 1. 들어가며 2. 필요성 3. threading 등 개념 설명 1) threading.Timer 모듈 2) time 모듈 활용 4. 클래스 내에서 threading.Timer 실행하기/종료하기 5. 전체코드 및 결과 6. 마치며 1. 들어가며 지난 글에서는 파이썬 내장모듈인 threading 모듈과 time 모듈을 이용하여 특정시간마다 함수가 반복 실행되는 내용을 설명하였다. (파이썬) threading와 time 모듈로 특정 시간마다 반복 실행 1. 들어가기 주식자동매매 프로그램으로 거래를 하다보면, 일정 시간마다 반복되는 함수를 구현할 필요가 있다. 내가 원하는 패턴에서 매수(진입)하여, 익절/손절 라인에 도달하면 칼같이 매도( springcoming.tistory.com 이번 글에서는 클래..

(파이썬) TypeError: list indices must be integers or slices, not str 오류 해결

목 차 1. 들어가며 2. 에러발생 원인 3. 해결 방법 4. 마치며 1. 들어가며 바이비트 API를 통해 주문을 넣고 취소를 하는 과정에서 아래와 같은 오류메시지가 나왔다. TypeError: list indices must be integers or slices, not str 타입에러 : 리스트 인덱스는 정수나 슬라이스 형, 문자형이 아님 → 리스트형을 문자형으로 추출할 때 발생하는 오류이다. (리스트는 정수/슬라이스 형으로 추출해야 함) 2. 에러발생 원인 1) 데이터 확인 바이비트 서버에서 받아온 데이터는 리스트형과 딕셔너리형으로 섞여 있다. {'data': [{'user_id': 0000000, 'symbol': 'BTCUSD', 'side': 'Sell', 'order_type': 'Limi..

(파이썬) for문 활용 (4) eval 모듈을 활용하여 문자형(str)을 list형으로 타입 전환하기

목 차 1. 들어가며 2. 사전준비 3. eval 모듈 설명 1) eval 모듈 기능 2) eval 예시 ① 숫자 1과 문자형1을 비교 ② 리스트 zzz를 for문/if문을 통해 출력한 결과 ③ eval 모듈의 사용례 4. 활용처 1) 코드 사례 2) 코드 설명 5. 마치며 1. 들어가며 지난 글에서는 for문을 활용하여 특정 단어 뒤에 숫자를 붙여서 출력하는 방법을 알아보았다. (예시) pattern0, pattern1, pattern2, ...... , pattern10 이번 글에서는 for문으로 받은 단어를 리스트 타입(type)로 바꾸는 방법을 알아보자. 임의의 2종목의 패턴을 활용하여 for문을 돌릴 때 특정 종목의 패턴이 적용되면, 수익과 손실 타점 설정하는 방법이 있다. → 쉽게 이야기하면,..

(파이썬) for문 활용 (3) - 단어 뒤에 숫자 붙여서 출력하기

목 차 1. 들어가며 2. 필요성 3. 사전준비 ① 단어 + 숫자 → 에러 발생 (패턴이 정의되지 않음) ② "단어" + 숫자 → 에러 발생 (문자와 숫자는 연결해서 출력 안됨) ③ "단어" + "숫자" → 출력 성공 (문자형과 문자형을 연결하였기 때문에 출력 성공) 4. for문을 통해 특정단어의 끝에 붙은 숫자 증가시키기 ① "단어" + "문자형 변수(i)" → "단어i"로 출력 (실패) ② "단어" + 변수 str(i) → 당초 의도한 대로 출력 (성공) 5. 마치며 1. 들어가며 주식 자동 매매 시스템을 구축하기 위해서 많이 쓰이는 모듈 중 하나가 for문일 것이다. for문은 한정된 범위에서 사용자가 정한 범위(range)에서 데이터를 얻어올 때 주로 쓰인다. 이 글에서는 for문을 통해 특정단..

(엑셀) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (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분봉 모음 추출한 패턴을 파이썬에 적용해 보았다. 장 종료로..

(파이썬) TypeError: 'float' object cannot be interpreted as an integer 오류 해결

1. 들어가며 바이비트 API를 통해 1분봉을 받으려고 for문을 돌리는 과정에서 float 관련 에러가 났다. float형(실수)은 integer형(정수)으로 해석될 수 없다??? 2. 오류가 발생한 과정 1) 바이비트의 시간 제공 바이비트는 UNIX 시간을 활용한다. 2022년 10월 12일 01시 41분 50초를 1665506510로 제공한다. * UNIX 시간이란? 1970년 1월1일을 기준으로 경과한 시간을 말함 2) time 모듈 사용 time()은 현재시간을 말하며, time()-60은 1분전을 나타내고, time()-120은 2분전을 말한다. from pybit.inverse_perpetual import HTTP from time import time # 현재시간 : time() / un..

(파이썬) TypeError: missing 1 required positional argument: 'self'

목차 1. 들어가며 2. 코드 내용 3-1. 사례별 분석(1차) - 개별 사례 설명 3-2. 사례별 분석(2차) - print문으로 찍어보기 4. 마치며 1. 들어가며 파이썬으로 코딩을 하다보면 자주 접하게 되는 오류가 TypeError: aaa() missing 1 required positional argument: 'self' 이다. → aaa()로 되어 있는 괄호에 1개의 인자가 필요하다는 뜻이다. 동 내용이 필요한 이유는, 주식 자동 매매를 하기 위해서는, 클래스 내 1번 함수를 실행하고, 1번 함수에 2번 함수를 실행하게 해두었는데, 위와 같은 오류가 발생한다. → 즉, 1번·2번 함수가 각각 실행되어 있고, 1번 함수를 실행하면, 그 후속으로 2번 함수 실행 코드를 작성하다가 나온 오류 2...

(주식 자동 매매) 키움증권 OpenAPI - 거래명세원 받기(opt10002)

1. 들어가며 단타를 하는 일부 주식 고수들은 시간대 별로 기관/외인의 거래량을 본다고 한다. 키움에서 거래원(거래량이 많은 기관/외인)을 보는 화면 번호는 0129이다. 아래의 거래원을 구현할 수 있는 코드를 구현해 보고자 한다. ('22.9.30 기준) 2. 사전 준비 KOA StudioSA에 로그인하면, 아래와 같이 TR요청 목록에서 정보를 얻을 수 있다. ① KOA StudioSA의 TR목록 탭을 선택 ② opt10002에서는 input은 1가지(종목코드)를 ④에 입력 ③ 사용할 함수 2개 : SetInputValue 함수(서버에 입력), CommRqData 함수(서버에 요청) ④ 종목코드 입력 ⑤ 종목코드, 종목명, 주요 거래원 등을 출력 ※ TR요청의 파이썬 코드 만드는 방법 1) SetInp..

(파이썬) ValueError: All arrays must be of the same length

1. 들어가며 키움증권 OpenAPI를 활용하여 주식거래원(opt10002)을 알아보기 위해 데이터프레임에서 데이터를 만든 후, 파이썬에서 출력을 하려고 하는데, 아래 오류가 발생한다. 오류의 주요 내용은 ValueError: All arrays must be of the same length 이다. "배열의 길이는 모두 같아야 한다"는 내용이다. 단순히 문자 갯수를 말하는 것인가? 이해가 안되는 문장이다. 자칫 잘못 알아들으면, 데이터프레임 안의 문자는 "문자 갯수"가 같아야 한다는 말로 오해할 수도 있을거 같다. 2. 오류 원인 오류 내용은 ValueError: All arrays must be of the same length 이다. "배열의 길이는 모두 같아야 한다"는 내용이다. 쉽게 이야기하면,..

(비트코인 자동 매매) 바이비트 API - bybit.key 만들기

1. 들어가며 지난 글에서는 API Key와 API Secret 생성하는 방법을 알아보았다. 이번 글에서는 위 2개 파일을 저장한 파일(bybit.key)을 만들고, 이를 통해 바이비트 API에 접속/로그인 하는 방법을 알아보자. 2. bybit.key 파일 만드는 방법 API Key와 API Secret을 아래와 같이 생성하였다고 가정해 보자. API Key : aaaaa API Secret : bbbbb 위 2개 내용을 txt 파일에 넣어주면 된다. 1) 텍스트 문서 생성 윈도우 바탕화면에서 마우스 오른쪽을 1회 클릭하여 텍스트 문서를 선택한다. 2) 텍스트 문서를 열어 키번호/비밀번호를 넣는다. 첫번째 줄에는 API Key를 넣어주고, 두번째 줄에는 API Secret를 넣어준다. 여기서 핵심은 아..

728x90
반응형