Closed Junghyun99 closed 1 day ago
이 클래스는 각 차수별로 매수/매도가를 계산하는 역할만 담당하도록 합니다.
만약 매수/매도가를 계산하는 로직이 복잡하다면, BuySellPriceCalculator와 같은 클래스를 별도로 생성하여 매수/매도 가격 계산을 독립적으로 수행하도록 할 수 있습니다.
함수 분리 제안
현재 차수와 퍼센트를 인수로 받아 매수/매도가를 계산하는 함수입니다.
이 함수를 BuySellPriceCalculator와 같은 독립 클래스에 두면 더욱 유연한 계산이 가능합니다.
TradeLogger는 로깅에만 집중하도록 하며, 각각의 로그 파일을 기록하는 역할로만 한정합니다.
예를 들어, 매수/매도와 관련된 트랜잭션을 로깅하는 함수와 에러를 로깅하는 함수를 분리할 수 있습니다.
log_transaction와 log_error 함수로 나누어 필요에 따라 각각의 로그를 호출합니다.
DummyBrokerAPI는 더미 API 역할을 수행하고 있는데, 이를 통해 거래 상태를 임의로 반환하도록 하는 부분을 분리합니다.
거래 상태를 확인하는 함수와 실제 거래를 실행하는 함수를 분리하여 TradeStatusChecker와 같은 클래스에 상태 체크 로직을 담을 수 있습니다.
함수 분리 제안
거래 번호를 받아 상태를 확인하는 로직을 분리하여, TradeStatusChecker 클래스에서 상태 체크를 담당하도록 합니다.
매수/매도 요청을 각각 독립적으로 호출하는 함수를 TradeExecutor 또는 DummyBrokerAPI 내에서 수행하도록 합니다.
StockTrader는 현재 스택 관리, API 호출, 매수/매도 여부 판단 등 여러 책임을 가지고 있습니다. 이를 각각의 역할에 따라 분리할 수 있습니다.
트레이딩 관리: StockTrader 클래스는 각 종목의 거래를 관리하는 역할에만 집중하도록 하고, 다른 역할들은 외부로 분리합니다.
함수 분리 제안
매수 또는 매도 여부를 판단하는 로직을 별도 함수로 분리하고, 조건을 확인하는 클래스(예: TradeDecision)로 옮길 수 있습니다.
거래 요청 및 API 호출하는 부분을 TradeExecutor 클래스로 이동시켜, 실제 거래 실행과 관련된 로직만 다룹니다.
TradeExecutor는 거래 요청 후 거래 상태를 확인하며, 거래가 완료될 때까지 반복합니다.
StockTrader에서 스택을 관리하는 역할을 StackManager라는 클래스로 분리하여 스택에 거래 정보를 추가하거나 제거하는 기능을 맡깁니다.
스택에 데이터 추가/제거 등의 함수(예: add_trade_to_stack, remove_trade_from_stack)를 StackManager에 구현하여 트레이딩 로직과 분리합니다.