4. 투자전략 변경 및 EC2 배포

2025. 2. 10. 07:43·프로젝트/coin-trading

□ 투자전략의 문제점

chatGPT를 활용하여 투자전략을 수립하였으나, 과금등의 이유로 3.5버전으로 사용하니 투자판단이 모호하다고 생각됨

- api 호출 마다 10초간 5~6번을 호출하면 "buy", "sell"이 교차하면서 나오게됨(매매 수수료 발생)

 

□ 개선 투자 전략(변동성 돌파 전략)

  • 목표가 = 금일 시가 + (전일 고가 - 전일 저가) * 0.5
  • 매초 시세조회 api를 호출하여 목표가 도달 시 전액 매수
  • 매일 장 종료 시 전량 매도
  • 코인시장은 장 종료가 없으므로 오전 9시를 기준으로 실행
 public void startProgram() throws IOException, InterruptedException, NoSuchAlgorithmException {
        double todayTarget = checkTarget(); // 당일 목표가
        boolean op_mode = false; // 시작하는 날 매수하지않기
        boolean hold = false; // 이미 매수한 상태라면 매수시도 하지않기(true = 매수, false = 매도)

        while (true) {
            LocalTime now = LocalTime.now(); // 현재시간
            double current = current(); // 현재가
            // 목표가 지정 9시 00분 20 ~ 30초 사이
            if (now.getHour() == 9 && now.getMinute() == 0 && (20 < now.getSecond() && 30 > now.getSecond())) {
                todayTarget = checkTarget(); // 목표가 갱신
                op_mode = true;
            }

            // 매수 로직
            if (op_mode && !hold && current >= todayTarget) {
                // 매수 api
                orderCoins("buy");
                hold = true;
            }

            // 매도 로직
            if (op_mode && hold && now.getHour() == 8 && now.getMinute() == 59 && (50 <= now.getSecond() && 59 >= now.getSecond())) {
                // 매도 api
                orderCoins("sell");
                hold = false;
                op_mode = false;
                Thread.sleep(10000);
            }

            Thread.sleep(1000);
        }
    }

 

□ EC2 배포하기

  • 업비트api사용을 위한 EC2 IP등록
  • 무중단 배포 진행
nohup java -jar {jar파일} &

 

□ 추가적으로 고려할 사항

  • while문이 아닌 redis적용 고려
  • 일정 손실이 발생 할 경우 매도 로직 실행(손절)
  • 메시지큐를 통한 매수, 매도 시 알림 발생

'프로젝트 > coin-trading' 카테고리의 다른 글

6. 비동기 처리(AtomicBoolean, Future<?>)  (0) 2025.02.25
5. EC2 프로그램 동작중... 앞으로의 개선방향  (0) 2025.02.18
3. chatGPT 연동하기(투자 판단)  (0) 2025.02.08
2. 업비트 매매 API 적용  (0) 2025.02.07
1. 업비트 API 적용해보기  (1) 2025.02.05
'프로젝트/coin-trading' 카테고리의 다른 글
  • 6. 비동기 처리(AtomicBoolean, Future<?>)
  • 5. EC2 프로그램 동작중... 앞으로의 개선방향
  • 3. chatGPT 연동하기(투자 판단)
  • 2. 업비트 매매 API 적용
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 이론공부 N
        • 자격증 N
        • 개념
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java 생성자
    java 세수의합
    java 유클리드 호제법
    java
    java super
    java기초
    프로그래머스 java 기초트레이닝
    데이터 타입
    java arrays.copyofrnage()
    java 제어자
    개발로드맵
    프로그래머스 java 기초 트레이닝
    데이터 크기
    Java this
    java enhance switch
    자료구조
    java 메서드
    java 멤버
    java 에라토스테네스의 체
    java two-pointer
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
4. 투자전략 변경 및 EC2 배포
상단으로

티스토리툴바