Skip to content

V1.4.0

Compare
Choose a tag to compare
@msaltnet msaltnet released this 15 Dec 14:17
· 31 commits to master since this release

v1.4.0

Analyzer 기능 추가

Analyzer를 통해서 선 그래프를 그릴 수 있는 add_line_callback를 추가되었습니다. Strategy에서 add_line_callback 콜백을 사용해서 선 그래프를 추가할 수 있으며, StrategySmaDualMl 전략에서 활용되고 있는 예제를 확인할 수 있습니다.

Binance Data Provider 추가와 Data Provider Interface 변경

Binance Data Provider가 추가되었습니다. 이제 Binance 캔들 정보를 사용해서 시뮬레이션을 할 수 있습니다. Config 모듈의 simulation_source 정보를 변경해서 시뮬레이션에 사용할 데이터를 선택 할 수 있습니다.

class Config:
    """시스템 전역 설정 모듈"""

    # 시뮬레이션에 사용할 거래소 데이터 simulation_source: upbit, binance
    simulation_source = "upbit"

Binance 캔들 정보와 Upbite 캔들 정보를 동시에 사용할 수 있도록 Data Provider의 반환 데이터 형식이 변경되었습니다. Data Provider는 복수개의 data를 하나의 리스트로 한 번에 전달할 수 있게 되었으며, 각각의 데이터는 추가된 type 항목을 통해서 구분할 수 있습니다. 변경된 Data Provider의 Data 형식은 다음과 같으며, Binance와 Upbit 데이터를 모두 제공하는 UpbitBinanceDataProvider가 추가되었습니다.

  [
      {
          "type": 데이터의 종류 e.g. 데이터 출처, 종류에 따른 구분으로 소비자가 데이터를 구분할 수 있게 함
          "market": 거래 시장 종류 BTC
          "date_time": 정보의 기준 시간
          "opening_price": 시작 거래 가격
          "high_price": 최고 거래 가격
          "low_price": 최저 거래 가격
          "closing_price": 마지막 거래 가격
          "acc_price": 단위 시간내 누적 거래 금액
          "acc_volume": 단위 시간내 누적 거래 양
      },
      {
          "type": 데이터의 종류 e.g. 데이터 출처, 종류에 따른 구분으로 소비자가 데이터를 구분할 수 있게 함
          "usd_krw": 환율
          "date_time": 정보의 기준 시간
      },
      {
          "type": 데이터의 종류 e.g. 데이터 출처, 종류에 따른 구분으로 소비자가 데이터를 구분할 수 있게 함
          "market": 거래 시장 종류 BTC
          "date_time": 정보의 기준 시간
          "opening_price": 시작 거래 가격
          "high_price": 최고 거래 가격
          "low_price": 최저 거래 가격
          "closing_price": 마지막 거래 가격
          "acc_price": 단위 시간내 누적 거래 금액
          "acc_volume": 단위 시간내 누적 거래 양
      }
  ]

Binance와 Upbit 두 거래소의 정보를 동시에 사용해서 시뮬레이션을 할 수 있는 SimulationDualDataProvider도 추가되었으며, Config에서 사용 여부를 선택 할 수 있습니다.

class Config:
    """시스템 전역 설정 모듈"""

    # SimulationDualDataProvider의 데이터를 사용할지 여부: normal, dual
    simulation_data_provider_type = "normal"

Upbit, Binance 두 거래소의 캔들 정보를 동시에 사용하는 예제 전략 StrategySmaDualMl이 추가되었습니다. SML 전략과 동일한 로직을 가지고 있으며 Binance 데이터로 add_line_callback를 사용해서 선 그래프를 추가하도록 하였습니다. 아래 붉은 색 선이 Binance 데이터의 closing price입니다.

68e7d3d8-9cce-4eb1-ae5c-166d591e1641

DataProviderFactory를 추가하여 Telegram Controller에서 Data Provider를 동적으로 선택할 수 있도록 하였습니다. 기존에는 Trader와 Data Provider가 일치하였지만 Binance 데이터나 다른 데이터를 복합적으로 사용하는 Data Provider를 추가해서 전략을 운영할 수 있게 되었습니다. 환율정보, 주가정보, 암호화폐 지수를 사용한 다양한 전략을 만들어서 운영이 가능합니다.

image

그 외 수정 사항

모듈이 많아짐에 따라 관리를 위해서 controller, data, strategy, trader 폴더로 구분하였습니다.

0.0024와 같은 값을 소숫점 4자리 수로 변경할 때 발생하는 부동 소수점 문제를 수정하였습니다.