반응형

전체보기 114

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

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

비트코인 자동 매수 프로그램(수정본) - 파이썬 업비트 비트코인 자동매매

이전에 업비트 API 및 파이썬을 이용해서 보조지표를 활용하여 원하는 조건에 맞을 시 코인을 자동으로 매수하는 프로그램을 작성해 보았는데요. ① 보조지표를 가져오는 로직에서 속도가 저하되는 문제와 ② 중복 매수를 방지하기 위해 매수 후 매수 제외 종목으로 등록하는 부분이 추후 매도를 하게 되더라도 다시 매수되지 않는 문제에 대해서 몇몇 분들께서 댓글을 달아 주셨습니다. 또한 프로젝트를 진행하면서 공통 모듈이 여러 번 수정되어 과거 포스팅의 로직이 정상적으로 작동하지 않는 분들도 계시는 것 같아 이번에 자동 매수 프로그램을 수정하면서 전체 코드를 다시 정리해서 업로드 하려고 합니다. 목차 - 클릭하면 이동합니다. 매수 타이밍 보조 지표를 활용한 매수 타이밍 판단 로직 기본적인 매수 타이밍을 판단하는 로직은..

파이썬 코딩 - 파일 읽기 - readline()

지난 시간에 파이썬에서 디렉토리를 생성하여 파일을 생성하는 방법에 대해서 살펴 보았는데요. 이번 포스팅에서는 생성된 파일을 열고 내용을 읽어들이는 방법에 대해서 살펴 보려고 합니다. 파이썬에서 디렉토리를 생성하고 파일을 생성하는 부분은 아래 포스팅을 참고 부탁 드립니다. 2021.11.16 - [코딩스토리/파이썬] - 파이썬 코딩 - 파일 및 디렉터리 생성 및 파일에 내용 쓰기 - write() 파이썬 코딩 - 파일 및 디렉터리 생성 및 파일에 내용 쓰기 - write() 비트코인 자동매매 프로그램을 만들다 보니 매수 제외 종목과 같은 특정 정보를 기억했다가 프로그램이 반복 수행되면서 계속 읽어서 사용해야 하는 경우가 발생하게 되었는데요. 예를 들면 조 technfin.tistory.com 목차 - 클릭..

비트코인 도미넌스로 가상화폐 시장 흐름 파악하기

근래들어 여러 코인 관련 포털 사이트에서 비트코인 도미넌스라는 말을 자주 들을 수 있는데요. 이번 시간에는 비트코인 도미넌스가 무엇인지에 대해 살펴보고 전체적인 가상화폐의 시장 흐름을 파악하여 매매에 도움을 받을 수 있는 부분에 대해서 살펴 보겠습니다. 현재 Tech&Fin에서는 파이썬과 업비트API를 이용하여 비트코인 자동매매 프로그램을 만드는 과정을 진행중에 있는데요. 파이썬과 업비트API를 잘 모르시더라도 설치부터 코드를 복사/붙여넣기하면 본인만의 자동매매 프로그램을 만들어 돌려볼 수 있습니다. 오늘 알아볼 비트코인 도미넌스를 이용해 전체적인 가상화폐 시장 흐름을 파악하고 그에 맞는 전략으로 자동매매 프로그램을 구현한다면 수익성이 조금 더 나은 프로그램을 만들 수 있지 않을까 생각됩니다. 비트코인 ..

파이썬 코딩 - 파일 및 디렉터리 생성 및 파일에 내용 쓰기 - write()

비트코인 자동매매 프로그램을 만들다 보니 매수 제외 종목과 같은 특정 정보를 기억했다가 프로그램이 반복 수행되면서 계속 읽어서 사용해야 하는 경우가 발생하게 되었는데요. 예를 들면 조건에 맞아 자동으로 매수한 경우 로직이 반복되면 계속해서 반복 매수가 되기 때문에 매수 제외 종목에 등록하여 반복 매수가 되지 않도록 하고 해당 종목이 매도된 경우에는 다시 매수 제외 종목 리스트에서 빼서 조건에 맞는 경우 다시 매수가 될 수 있도록 해야 합니다. 구현할 수 있는 방법은 여러가지가 있을 수 있겠지만 지난 포스팅에서 다룬 메세지 발송 기능과 같이 매수 제외 종목 리스트를 관리하는 방법으로 가능할 수 있습니다. 하지만 해당 방법은 메모리에만 관리되기 때문에 프로그램이 종료되었다 다시 시작되는 경우 기존 매수 제외..

보유코인 모니터링 및 알림 메세지 발송하기 - 파이썬 업비트 비트코인 자동매매

얼마전에 파이썬 코딩 중 날짜 형식과 문자형식을 변환하고 시간차이를 계산하는 방법에 대해서 살펴 보았는데요. 이번 시간에는 해당 내용을 이용하여 간단히 모니터링 프로그램을 만들어 보겠습니다. 파이썬에서 날짜형 및 문자형간의 변환 및 시간차이를 계산하는 방법은 아래 포스팅을 참고하시면 됩니다. 2021.11.12 - [코딩스토리/파이썬] - 파이썬 코딩 - 날짜형 문자형 변환 및 시간차이 계산하기 - strftime, strptime 파이썬 코딩 - 날짜형 문자형 변환 및 시간차이 계산하기 - strftime, strptime 지난 포스팅에서 파이썬을 이용하여 라인 메신저로 메세지를 보내는 것에 대해서 살펴 보았는데요. 조만간 해당 내용을 이용해서 보유 종목을 모니터링 하면서 전체 자산의 상승/하락률에 대..

파이썬 코딩 - 날짜형 문자형 변환 및 시간차이 계산하기 - strftime, strptime

지난 포스팅에서 파이썬을 이용하여 라인 메신저로 메세지를 보내는 것에 대해서 살펴 보았는데요. 조만간 해당 내용을 이용해서 보유 종목을 모니터링 하면서 전체 자산의 상승/하락률에 대해 알림을 보내는 모니터링 프로그램을 만들어 보려고 합니다. 하지만 보유 조건을 만족하는 경우 메세지를 보내도록 프로그램을 하면 반복해서 계속 동일한 메세지를 보내기 때문에 한번 메세지를 보내면 일정 시간동안은 보내지 않도록 해야 합니다. 구현하는 방법에는 여러가지 방법이 있겠지만 저희는 메세지를 보낸 시간을 기록하여 일정 시간동안 메세지를 다시 보내지 않도록 하는 기능을 구현해 볼 예정입니다. 그렇게 하기 위해서는 날짜 형태를 문자 형태로 또는 반대로 변환해야 하는 경우가 생기게 되는데요. 그래서 이번 포스팅에서는 날짜/시간..

원하는 보조지표만 한번에 조회하기 - 파이썬 업비트 비트코인 자동매매

예전에 각종 보조지표들을 한번에 조회하는 방법에 대해서 살펴 보았는데요. 보조지표를 구하기 위해서는 캔들 데이터가 필요하고 캔들 데이터는 업비트 API를 호출해야 하기 때문에 여러 보조 지표를 구하기 위해 반복해서 API를 호출하는 것을 피하기 위해 캔들을 조회하기 위한 API는 한 번만 호출하고 여러 보조 지표를 한번에 구하는 로직을 구현했었습니다. 하지만 해당 로직 역시 불필요한 보조지표까지 모두 계산을 하기 때문에 속도 측면에서 불리한 점을 발견하게 되어 이번 시간에는 원하는 보조지표만 한번의 API 호출로 계산하여 속도를 개선한 로직을 살펴 보려고 합니다. 과거에 포스팅한 보조지표 한번에 조회하는 방법은 아래 포스팅에서 확인하실 수 있습니다. 2021.08.10 - [프로젝트/비트코인 자동매매] ..

파이썬 코딩 - 리스트/딕셔너리 정렬하기 - sorted()함수

비트코인 자동매매 프로그램을 만들다 보면 리스트 및 딕셔너리 형태를 상당히 많이 사용하게 되는데요. 리스트와 딕셔너리는 정렬을 해서 사용해야 하는 경우가 많이 발생 합니다. 예를 들어 지난 포스팅에서 다루었던 CCI 지표를 구하는 과정에서 업비트 API를 이용해 가져온 캔들 데이터는 기본적으로 최근 시간 순으로 정렬되어 있으며 별도로 API내에서 정렬 후 받아오는 기능이 없어 받아온 캔들 데이터를 오래된 시간순으로 정렬해야 올바른 CCI 지표 값을 구할 수 있습니다. 이번 시간에는 위와 같은 경우에 사용할 수 있는 sorted() 함수에 대해서 살펴 보려고 합니다. CCI 지표를 구하는 방법에 대한 포스팅은 아래 링크를 클릭하면 확인할 수 있습니다. 2021.11.09 - [프로젝트/비트코인 자동매매] ..

파이썬 코딩 - 딕셔너리 만들기/추가/수정/삭제/초기화 하는 방법

파이썬으로 프로젝트를 하다보면 딕셔너리를 아주 많이 사용하게 되는데요. 딕셔너리를 다루는 다루는 것은 파이썬에서 아주 중요합니다. 이번 시간에는 딕셔너리에 값을 추가하거나 빼는 방법 그리고 딕셔너리의 값을 초기화 하는 방법에 대해서 살펴 보려고 합니다. 목차 - 클릭하면 이동합니다. 파이썬 딕셔너리 파이썬에서 딕셔너리는 Key와 Value를 쌍으로 가지고 있는 자료 형태입니다. Key에 Value를 저장해 두고 필요할 때 해당 Key의 값을 가져와서 사용할 수 있습니다. 딕셔너리 만들고 값 가져오기 ① 딕셔너리 만들기 : 중괄호({})를 이용하여 Key와 Value를 콜론(:)으로 구분하여 생성 ② 값 가져오기 : 딕셔너리명['Key'] # 딕셔너리 만들기 dict = {'item': 'KRW-BTC',..

반응형