업비트자동매매 프로그램 - eobbiteujadongmaemae peulogeulaem

업비트자동매매 프로그램 - eobbiteujadongmaemae peulogeulaem

안녕하세요? 제이온입니다.

해당 카테고리에서는 업비트를 활용한 자동 매매 프로그램 개발 일지를 작성하려고 합니다. 오늘은 첫 번째 글로, 개발 방향과 간단한 Open API 등록 방법을 알아 보겠습니다.

개발 동기 및 목표

이전에는 키움 증권을 이용한 자동 매매 프로그램 개발 일지를 작성했었는데, 개발 도중 우아한테크코스 교육을 받으면서 중단을 했었습니다. 그리고 현 시점에서 다시 해보려고 하니까 파이썬이 잘 기억이 나지도 않고, 여태까지 열심히 공부한 Spring을 사용하여 증권 프로그램을 개발하는 것이 맞다고 판단하였습니다. 자동 매매 관련 api를 조사하다 보니, 업비트 문서가 잘 나와 있고 Java 예제 코드도 제공해 주고 있어서 이를 이용하기로 하였습니다.

1차적인 목표는 자동 매매보다는 매매가 가능한 GUI 프로그램입니다. 백엔드는 Java를 활용한 Spring을 선택할 것이지만, 아직 프론트엔드 쪽은 결정하지 못했습니다. 일단은 JavaFx, C#, 일렉트론 중에서 고려 중입니다.

매매가 가능한 GUI가 개발된다면, 그 이후부터는 자동 매매 프로그램으로 발전시킬 듯합니다. 다양한 이론이 있을텐데 그러한 개념을 익히고 나서 제 프로그램에 적용하려고 합니다.

업비트 Open API 등록하기

먼저, 이 링크를 클릭하여 업비트 Open API 관련 사이트로 접속합니다.

업비트자동매매 프로그램 - eobbiteujadongmaemae peulogeulaem

여기서 왼쪽 버튼인 'Open API 사용하기'를 클릭하고, 카카오톡 로그인을 수행합니다.

업비트자동매매 프로그램 - eobbiteujadongmaemae peulogeulaem

그러면 위와 같이 Open API 관리 페이지로 이동합니다. 여기서 원하는 기능을 체크하여 Open API Key를 발급받을 수 있습니다. 이 Key는 Access Key와 Secret Key 두 개가 존재하는데, 모두 발급받고 나서 잘 기록해 두어야 합니다. 모든 항목을 체크해 주시고, 자신의 IP도 적어 줍니다. IP는 네이버에 '내 아이피'라고 치시면 뜨는 Public IP를 적으시면 됩니다.

업비트자동매매 프로그램 - eobbiteujadongmaemae peulogeulaem

카카오페이 인증을 마치면 이렇게 두 가지 Key가 발급됩니다. 우선은 이 값들을 적당히 메모장에 기록해 둡시다.

개발 환경 세팅

간단하게만 제 개발 환경을 소개하고 넘어가겠습니다. 저는 스프링 부트 2.5.0 버전, Java 11과 gradle을 사용할 것이며, 아래는 build.gradle 정보입니다.

plugins {
	id 'org.springframework.boot' version '2.5.0'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
}

group = 'com.jayon'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
	mavenCentral()
}

dependencies {
	// 스프링 부트
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4'

	// jwt
	implementation 'io.jsonwebtoken:jjwt:0.9.1'
	implementation 'com.auth0:java-jwt:3.16.0'

	// 롬복(lombok)
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
}

test {
	useJUnitPlatform()
}

기본적인 스프링 부트 의존성과 자바 11로 인해 바인딩 에러를 방지하기 위한 javax 의존성을 사용하고 있습니다. 그리고 jwt 의존성은 추후 설명하도록 하고, 마지막으로 롬복을 사용하고 있습니다.

정리

오늘은 가볍게 업비트 자동 매매 프로그램 개발을 위한 세팅만 하였습니다. 다음 시간부터는 본격적으로 소스 코드를 작성해 보겠습니다.

Github 저장소 주소

아래 링크에서 개발을 진행하여 버전 관리를 수행하고 있습니다.

GitHub - pjy1368/coin-trading-used-upbit-api

Contribute to pjy1368/coin-trading-used-upbit-api development by creating an account on GitHub.

github.com

업비트자동매매 프로그램 - eobbiteujadongmaemae peulogeulaem

파이썬을 이용한 비트코인 자동매매 (개정판) 00장 들어가기 전에 00-1 주요 변경 사항 00-2 저작권 및 공개 01장 파이썬 문법 (1) 01-1 파이썬 시작하기 01-2 변수와 문자열 01-3 파이썬 자료구조 02장 파이썬 문법(2) 02-1 조건문 02-2 반복문 02-3 함수 02-4 모듈 03장 클래스와 PyQt 03-1 클래스 (1) 03-2 클래스 (2) 03-3 PyCharm 03-4 PyQt 기초 03-5 PyQt 윈도우 꾸미기 03-6 PyQt Qt Designer 03-7 PyQt 시그널 슬롯 04장 웹스크래핑과 Pandas 04-1 웹 스크래핑 (1) 04-2 웹 스크래핑 (2) 04-3 Pandas Series 04-4 Pandas DataFrame 05장 상승장 알리미 05-1 pybithumb 05-2 상승장 알리미 (1) 05-3 상승장 알리미 (2) 05-4 상승장 알리미 (스레드 버전) 06장 변동성 돌파 전략 구현 06-1 빗썸 Private API 06-2 변동성 돌파 전략 구현 06-3 변동성 돌파 + 상승장 투자 전략 구현 07장 비트코인 백테스팅 07-1 백테스팅을 위한 데이터 준비하기 07-2 변동성 돌파 전략 백테스팅 07-3 변동성 돌파 + 상승장 투자 전략 백테스팅 08장 가상화폐 거래소 08-1 업비트(Upbit) 08-2 코빗(Korbit) 08-3 바이낸스(Binance) 09장 웹소켓을 이용한 실시간 시세 처리 09-1 웹소켓 소개 09-2 asyncio 기초 09-3 프로세스와 스레드 기초 09-4 빗썸 파이썬 웹소켓 09-5 코빗 파이선 웹소켓 09-6 업비트 파이썬 웹소켓 10장 나만의 HTS 만들기 10-1 실시간 현재가 차트 (UI) 10-2 실시간 현재가 차트 (파이썬) 10-3 실시간 호가창 (UI) 10-4 실시간 호가창 (파이썬) 10-5 실시간 개요창 (UI) 10-6 실시간 개요창 (파이썬) 10-7 통합 화면 11 ---------- 개정판 이후 집필 내용 ---------- 11 11장 바이낸스 거래소 01) 가입하기 02) 입금하기 03) API 사용신청 04) 시장 조회 05) 현재가 조회 06) 과거 데이터 조회 07) 호가 조회 08) 계좌 잔고 조회 09) 현물 거래 12장 바이낸스 거래소 (선물) 01) 선물 거래 준비하기 02) 선물 거래 03) API를 이용한 바이낸스 선물 거래-1 04) API를 이용한 바이낸스 선물 거래-2 05) 바이낸스 TP/SL 13장 변동성 돌파 전략 (바이낸스 선물) 01) 현재가와 시간 출력 02) 변동성 돌파 목표가 계산 03) 포지션 진입과 정리 14장 python-binance 01) 모듈 설치 및 티커조회 02) 현재가 조회 03) 과거 데이터 조회 04) 호가 조회 05) 잔고 조회 06) 현물 거래 07) 선물 거래 08) 바이낸스 웹소켓 15장 코인원 00) template 01) 코인원 가입 및 API 발급 16장 바이비트(Bybit) 01) 바이비트 가입 02) 바이비트 입/출금 03) 바이비트 API 신청 04) 심볼 조회 05) 잔고 조회 06) 현물 주문 07) 선물 주문 08) 과거 데이터 조회 10) 양방향 변동성 돌파 전략 11) 손익과 수수료 17장 MEXC 거래소 00) template 01) MEXC 가입 및 입출금 02) MEXC API 신청 03) 티커 조회 04) 현재가 조회 05) 과거 데이터 조회 06) 호가 조회 07) 잔고 조회 08) 현물 거래 18장 BTCEX 거래소 01) BTCEX 거래소 가입 02) 인증 및 API 신청 19장 비트겟 거래소 01) 비트겟 거래소 가입 02) API 신청 03) 심볼 조회 04) 현재가 조회 05) 잔고 조회 06) 현물 주문 07) 선물 주문 08) 과거 데이터 조회 20장 Fairdesk 거래소 00) template 01) Fairdesk 거래소 가입 02) API 신청 03) 마켓 조회 및 잔고 조회 04) 현재가 및 호가조회 05) 과거 데이터 조회 06) 격리, 교차, 레버리지, 수수료 07) 주문 08) 웹소켓 21장 쿠코인(KuCoin) 거래소 00) template 01) 쿠코인 거래소 가입 22장 파이넥스(Pionex) 거래소 00) template 01) 파이넥스 거래소 가입 31장 보조지표 01) 이동평균 02) 지수이동평균 (EMA) 03) 상대강도지수 (RSI) 04) 볼린저밴드 05) MACD 31장 비트코인 물타기 매매 01) 물타기 매매 02) 업비트 비트코인 무한매수 프로그램 32장 거미줄 매매 00) template 01) 거미줄 매매 소개 02) 관련 API 익히기 (바이빗-CCXT) 35. 암호화폐 재정거래 봇 01) 재정거래란? 02) 호가창과 매매 40장 24시간 동작하는 자동매매 서버 구축 01) iwinv 가입 02) 클라우드 PC 신청 03) 접속 및 초기설정 99장 부록 10-1 업비트 가입 및 API 신청