Skip to content

Releases: msaltnet/smtm

v1.7.1

26 Oct 09:50

Choose a tag to compare

Refactoring and renewal documents and images

Full Changelog: v1.6.3...v1.7.1

v1.7.0

26 Oct 07:35

Choose a tag to compare

Refactoring and renewal documents and images

Full Changelog: v1.6.3...v1.7.0

v1.6.3

17 Mar 15:36

Choose a tag to compare

fix setup config long description

v1.6.2

17 Mar 15:22

Choose a tag to compare

fix setup config for package deploy

v1.6.1

02 Mar 14:46

Choose a tag to compare

v1.6.1

  • Fix README image link

v1.6.0

02 Mar 14:37

Choose a tag to compare

v1.6.0

Telegram Controller multilingual support (English)

v1.6.0 (한국어)

TelegramController 다국어 지원(영어)

v1.5.0

19 May 05:06

Choose a tag to compare

v1.5.0

alert_callback 인터페이스 추가

코어 모듈에서 컨트롤러에 알림을 보내는 용도로 사용될 수 있는 alert_callback이 추가되었습니다. 거래를 하지 않고, 알림만 보내거나, Analyzer에서 데이터 처리시 오류에 대해서 알림을 보내는 등의 용도로 사용할 수 있습니다. 예제로는 StrategySas 전략이 추가 되었습니다.

StrategyHey 전략 추가

거래 정보를 분석해서 알림만 보내는 전략으로 StrategyHey 전략이 추가되었습니다. StrategySas 전략을 상속 받아서 이동 평균선이 깨질 때 또는 변동성 돌파 이벤트가 발생하였을 때, alert_callback을 통해 알림을 전달하는 앱을 구현하였습니다. 횡보장에서 단기 트레이딩시에 유용하게 사용할 수 있습니다.

그 외 리팩터링

  • pytest를 적용하고, 단위테스트와 통합테스트를 tests로 모았습니다. pytest를 사용하게 되면서 테스트 결과 화면도 아래와 같이 깔끔하게 변경되었습니다.

image

Full Changelog: v1.4.0...v1.5.0

V1.4.0

15 Dec 14:17

Choose a tag to compare

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자리 수로 변경할 때 발생하는 부동 소수점 문제를 수정하였습니다.

v1.3.0

21 Aug 15:20

Choose a tag to compare

v1.3.0

Candle Interval을 변경해서 시뮬레이션, 거래 진행 할 수 있도록 구조 개선

v1.3.0 (English)

Improve architecture to change candel interval for both simulation and real-trading

Release V1.2.0

21 May 10:41

Choose a tag to compare

v1.2.0

Simulation 속도 개선 (약 3배이상 향상)

  • interval이 1초 미만일 때, threading.Timer를 사용하지 않고 바로 핸들러 호출하도록 수정
  • d9e9b2b
    CI를 Travis -> github action으로 변경
  • 50faecd
    전략 이름 대신 코드를 사용
  • 5ea8027

기능 추가

  • 이동 평균선을 이용한 기본 전략에 간단한 ML을 추가한 StrategySmaMl 전략 추가

버그 수정

  • 텔레그램 컨트롤러에서 전략 선택 문자 비교 버그 수정

v1.2.0 (English)

Enhance simulation performance (about 3x more speedup)

  • when interval is under 1sec, call handler directly instead of using threading.Timer
  • d9e9b2b
    Change CI Travis -> github action
  • 50faecd
    Use strategy code instead of names
  • 5ea8027

New Features

Fixed Bugs

  • fix a bug for telegram controller strategy selector