개발/Java

비트코인 자동매매 프로그램 (Java)

binary? 2024. 3. 29. 14:15

비트코인 자동매매 프로그램 (Java)

친구와 팀 프로젝트로 비트코인 자동매매 프로그램을 만들었다.

친구와 둘다 자바 개발자로서 성장하기 위해서 자바를 선택했다.

비트코인 자동매매 프로그램을 검색하면 대다수가 파이썬으로 만들었다.

자바보다 파이썬으로 만드는 것이 몇배는 쉬워보였다.

조금 어려움이 있었긴 하였으나 프로젝트를 완수하였다.

아래는 '비트코인 자동매매 프로그램' 프로젝트 설명이다.

시간이 되면 자바로 비트코인 자동매매 프로그램 만드는 법을 포스팅할 것이다.

최근에는 AI가 자동매매하는 전략을 만들까하는데 할게 너무 많다..

프로젝트명

비트코인 자동매매 프로그램

프로젝트 설명

내가 설정한 기준으로 비트코인을 자동으로 매수 및 매도를 해주는 프로그램이다.

  1. 매매할 코인을 선택한다.
  2. 매수할 수량을 선택한다.
  3. 매수와 매도 조건을 선택한다.
  4. "자동매매 시작" 버튼을 클릭한다.

 

추가 기능

  1. 백테스팅 기능
  • 백테스팅: 과거 데이터를 기반으로 트레이딩 전략이 어떤 성과를 냈는지 테스트하여 실행 가능성을 살펴보는 것
  • 코인과 백테스팅 기간 설정 후 "백테스팅 시작" 버튼을 클릭하면 아래 사진처럼 기간별 수익률을 확인할 수 있다.
 

 

 

  1. 변동성돌파 전략 백테스팅 기능
  • 변동성 돌파: 일일 단위로 일정 수준 이상의 범위를 뛰어넘는 강한 상승세를 돌파 신호로 상승하는 추세를 따라가며 일 단위로 빠르게 수익을 실현하는 단기매매 전략
  • 코인을 선택 후 "변동성돌파 백테스팅" 버튼을 클릭하면 아래 사진처럼 기간별 수익률을 확인할 수 있다.

 

  1. 진수의 백테스팅 기능
  • 나만의 투자방법으로 백테스팅 기능 추가
  • 일봉기준으로 매수시점을 잡았고, 이후 수익률을 확인할 수 있다.
  • 아래 사진은 리플코인을 기준으로 매수시점으로부터 약 3개월만에 31프로의 수익률을 확인할 수 있다.
 

 

 

※ 매수, 매도 기능은 지금 당장 실제로 투자할 것이 아니기 때문에 주석 처리하여 동작하지 않습니다.

※ AWS도 프리티어를 이용하고 있어서 인스턴스는 종료해놓은 상태입니다.

기술

개선할 부분

  • 자바 백엔드 개발자로 성장하기 위해서 스프링부트와 위의 기술들을 접목하여 프로그램을 만들었습니다.
  • (진행중)처음에 설계한 대로 어느정도 완성하였지만, 실제로 수익을 많이 낼 수 있는 프로그램을 만들기 위해서는 투자에 대한 공부를 하여 좀 더 좋은 수익을 낼 수 있는 기능을 추가할 것입니다.
  • (완료)JPA를 처음 사용하는 거라 CRUD를 적용하는 것이 어려웠습니다. findByAll 등의 내장된 함수와 NativeQuery를 사용하였지만 queryDSL을 추가로 공부할 예정입니다.
  • (완료)실무에서 백엔드와 프론트엔드간의 원활한 협업을 위해 사용하는 Swagger UI 기능을 추가하여 공부할 예정입니다.
  • AWS와 비슷하며 요즘 핫하여 많이 들어본 Docker도 사용해보며 공부할 예정입니다.
  • 기간과 결과에 중점적으로 프로젝트를 완수하다 보니 코드에 미비한 점이 많아, 리팩토링을 통하여 코드의 간결화를 진행할 예정입니다.