반응형

프로젝트/비트코인 자동매매 43

급등주 찾기 쿼리 - PostgreSQL 버전

예전에 업비트 급등주 찾기 프로그램을 공유 드린적이 있었는데요. 급등주를 찾는 쿼리가 오라클 데이터베이스로 되어 있어 PostgreSQL 쿼리를 문의하시는 분이 많았습니다. 오라클과 PostgreSQL은 문법이 조금 다르기 때문에 쿼리를 조금 변형해야 하는데요. 이번 시간에는 급등주 찾기 쿼리를 PostgreSQL로 작성해 보는 시간을 가져 보도록 하겠습니다. 목차 - 클릭하면 이동합니다. 업비트 급등주 찾기 쿼리 - PostgreSQL 급등주 찾기 쿼리 CREATE OR REPLACE VIEW FIND_SHOOT_1MIN AS SELECT A.CODE, A.DATETIME AS ST_DATETIME, B.DATETIME AS EN_DATETIME, A.MIN_PRICE AS ST_PRICE, B.MAX..

비트코인 자동매매 프로그램 자주 발생하는 오류 및 대처 방법

처음 Tech&Fin 블로그를 시작했을 때보다 비교적 많은 분들이 블로그를 찾아주시고 올려드린 비트코인 자동매매 프로그램을 설치하여 사용중인 것 같습니다. 사용하시는 분이 많아질 수록 예상치 못한 오류가 발생하는 케이스도 많아지고 있는데요. 이번 시간에는 지금까지 댓글로 문의를 받았던 오류들을 해결하면서 알게된 내용을 공유드리는 시간을 가져 보려고 합니다. 목차 - 클릭하면 이동합니다. 일반적인 오류 해결 방법 어떤 프로그램이나 마찬가지겠지만 오류가 발생하는 원인은 한 가지가 아니라 매우 다양합니다. 또한 같은 메세지를 내 뱉는 오류라 할 지라도 오류의 원인은 다를 수 있습니다. 그렇기 때문에 오류를 해결하는 방법이 한 가지일 수는 없으며 매우 다양한 케이스가 존재할 수 있습니다. 이럴 때 오류를 해결할..

업비트 웹소켓 데이터 PostgreSQL DB에 저장하기 - 파이썬 비트코인 자동매매

지난 포스팅까지 PostgreSQL 데이터베이스 서버를 리눅스 서버에 설치하고 기본적인 세팅 및 외부에서 접속할 수 있도록 설정을 하는 방법에 대해서 살펴 보았습니다. 이번 시간에는 업비트 웹소켓 데이터를 PostgreSQL DB에 저장하기 위해 테이블 및 인덱스를 생성하고 파이썬 프로그램을 이용해서 웹소켓 데이터를 저장하는 방법에 대해서 살펴 보겠습니다. 아직 PostgreSQL 설치를 하지 않으신 분들은 아래 포스팅을 순차적으로 참고 부탁 드립니다. 2022.02.07 - [코딩스토리/리눅스] - 오라클 리눅스 8 - PostgreSQL 13 데이터베이스 설치하기 오라클 리눅스 8 - PostgreSQL 13 데이터베이스 설치하기 이번 시간에는 앞으로 Tech&Fin에서 다루는 비트코인 자동매매 프로..

업비트 공지사항 크롤링하여 텔레그램으로 메세지 알림받기

예전에는 업비트에서 프로젝트 공시를 공지사항에 올리면 해당 종목이 급등하는 일명 공시펌핑이 있던 시절이 있었습니다. 하지만 여러가지 사유로 시장을 흐린다는 판단하에 현재는 업비트에서는 프로젝트 공시를 하고 있지는 않습니다. 하지만 일반 공지사항 중에서도 입출금 일시 중지와 같은 펌핑의 재료로 쓰일 수 있는 공지들이 있는데요. 이러한 공지들은 빠르게 확인하고 대처하는 것이 가장 중요합니다. 이번 시간에는 업비트 공지사항의 글을 5초 간격으로 크롤링하여 새로운 글이 올라오면 텔레그램 메시지로 알림을 받는 프로그램을 만들어 보겠습니다. 목차 - 클릭하면 이동합니다. 업비트 공지사항 크롤링 업비트 공지사항 크롤링 주소 업비트 웹사이트를 보면 고객센터 아래에 위와 같은 공지사항 메뉴가 있습니다. 여러가지 게시판이..

급등주 찾기 - 업비트 파이썬 비트코인 자동매매 프로그램

업비트의 경우 일명 9시 경주마라고 불리고 있는 변동률이 초기화 되는 오전 9시에 이유없이 갑자기 급상승하는 종목들이 있는데요. 이런 종목 외에도 호재 공지가 뜨거나 해외 거래소의 급상승으로 인해 갑자기 급상승하는 종목들을 발견할 수 있습니다. 업비트 API를 이용하여 급등하는 종목을 찾으려면 분봉 데이터를 종목별로 가져와야 하기 때문에 100여개가 넘는 종목에 대해서 캔들 데이터를 조회하여 급등 종목을 찾으려면 빨라야 20~30초 정도가 소요 됩니다. 급등하는 종목에서 20~30초는 많게는 50~100%까지의 상승도 이루어 낼수 있는 시간이 될 수 있기 때문에 20~30초의 딜레이는 급등주 종목을 찾아서 매수하기에는 다소 애매한 시간이 될 수 있습니다. 하지만 얼마전에 살펴본 웹소켓을 이용하여 현재가 ..

비트코인 자동매매 프로그램 환경변수 파일로 빼기 - 보안 강화

비트코인 자동매매 프로그램을 만들다보면 업비트 API 액세스 키 및 시크릿 키 그리고 텔레그램 키 등 여러가지 보안 정보들을 사용해야 합니다. 지금까지는 제일 간편한 방법으로 각종 Key를 공통모듈에 넣고 저장하여 사용하였는데요. 이런 경우 코드를 공유할 때 해당 부분을 제거하는 것을 깜빡하는 경우 자신의 Key가 그대로 노출되어 자산이 위험에 빠질 수 있습니다. 이번 시간에는 각종 Key를 공통 코드가 아닌 특정 파일로 빼서 보관하고 필요한 시점에 파일을 읽어 Key를 조회하는 방법으로 공통 모듈을 변경해 보도록 하겠습니다. 목차 - 클릭하면 이동합니다. 보안 정보 파일로 관리하기 폴더 및 파일 생성하기 trade_bot 폴더 아래에 env 폴더를 하나 생성하고 env.txt 파일을 생성합니다. {'a..

파이썬 업비트 웹소켓 접속방법 - 비트코인 자동매매 프로그램

업비트에서 코인 정보를 받아오는 방법은 크게 두 가지 방법으로 나눌 수 있는데요. 먼저 API를 개별 호출하여 정보를 얻어오는 방법과 웹소켓을 이용해서 실시간 데이터를 구독하는 방법이 있습니다. 지금까지 Tech&Fin에서 다루었던 프로그램들에서는 첫 번째 방법인 API를 개별 호출하는 방법을 사용했었는데요. 이번 시간에는 API 개별 호출 방법과 웹소켓을 이용하는 방법은 어떤점이 다른지 살펴보고 웹소켓을 이용해서 실시간 체결 데이터를 받아오는 방법에 대해서 알아 보도록 하겠습니다. 목차 - 클릭하면 이동합니다. 웹소켓에 대한 생각 API 개별 호출과 웹소켓 구독의 차이점 기술적인 이야기는 뒤로하고 API를 개별 호출하는 것과 웹소켓을 구독하는 것은 목적의 차이가 크다고 생각합니다. API를 개별 호출하..

리눅스 서버에서 비트코인 자동매매 프로그램 스케쥴 등록하여 실행하기

지난 시간에 비트코인 자동매매 프로그램을 리눅스 서버에서 실행하는 방법에 대해서 살펴 보았는데요. 리눅스에서 프로그램을 수행한다 하더라도 예기치 않은 오류 또는 API를 제공하는 업체(업비트, 빗썸, 바이낸스 등)의 점검 또는 오류/과부하로 인해 프로그램이 중단되는 경우가 상당히 자주 발생하게 됩니다. 프로그램에 문제가 있어 발생하는 오류라면 프로그램의 수정이 있어야 하겠지만 그런 경우가 아니라면 프로그램 수정 없이 단순히 실행만 다시 해주면 되는데요. 이를 자동화 시키면 프로그램을 거의 99% 영구적으로 수행할 수 있게 됩니다. 그래서 이번 시간에는 비트코인 자동매매 프로그램을 스케쥴에 등록하여 중단되더라도 다시 실행하는 방법을 통해 프로그램을 연속적으로 실행할 수 있는 방법에 대해서 살펴 보도록 하겠..

리눅스 서버에서 비트코인 자동매매 프로그램 실행하기

윈도우 환경에서 파이썬으로 만든 비트코인 자동매매 프로그램을 실행하면 오류나 업비트 서버 점검 등으로 인해 오류가 발생하는 경우 프로그램이 종료 되어 수동으로 다시 실행해 주어야 하는 경우가 꽤 자주 발생하게 됩니다. 윈도우 환경에서도 스케쥴러에 등록하는 방법이 있긴 하지만 스케쥴러를 등록하는 것이 복잡하기도 하지만 실행이 완벽하게 되지 않아 사용하기 불편한 점이 많습니다. 또한 가정용 PC의 경우에는 일반적인 업무 용도로도 사용하기도 하며 윈도우의 잦은 업데이트로 재부팅이 자주 필요하기 때문에 프로그램을 끊었다 다시 돌려야 하는 경우가 많이 발생합니다. 이런 불편함은 프로그램을 리눅스 서버에서 수행하게 되면 어느정도 해소가 가능한데 오늘은 리눅스에서 파이썬 프로그램을 실행하는 방법에 대해서 살펴 보겠습..

트레일링 스탑 자동 매도 프로그램(수정본) - 파이썬 업비트 비트코인 자동매매

과거 포스팅에서 올려드린 트레일링 스탑을 활용한 자동 매도 프로그램에서 매수 후 바로 매도가 되어 버리는 현상이 발생한다는 댓글을 달아주신 분이 계셔서 프로그램을 분석해 본 결과 업비트 API의 치명적인 오류가 발견되었습니다. 문제는 업비트 API를 이용해서 보유 코인 리스트(get_accounts)를 할 때 발생하는 것으로 확인 되었으며 현상은 매수 직후에 매수가격이 올바르지 않게 조회되는 현상입니다. 예를들어 도지코인을 300원에 매수했음에도 불구하고 매수 직후에 조회된 잔고 자료에는 평균매수가격이 400원이나 200원 등으로 높거나 낮게 조회되어 수익 후 매도 로직이나 손절 로직을 타게 되는 현상입니다. 그리고 몇 초후에 다시 조회하면 올바르게 300원으로 조회가 됩니다. 오류 현상은 매수 직후에만..

반응형