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
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바