Releases: msaltnet/smtm
v1.5.0
v1.5.0
alert_callback 인터페이스 추가
코어 모듈에서 컨트롤러에 알림을 보내는 용도로 사용될 수 있는 alert_callback
이 추가되었습니다. 거래를 하지 않고, 알림만 보내거나, Analyzer에서 데이터 처리시 오류에 대해서 알림을 보내는 등의 용도로 사용할 수 있습니다. 예제로는 StrategySas
전략이 추가 되었습니다.
StrategyHey 전략 추가
거래 정보를 분석해서 알림만 보내는 전략으로 StrategyHey 전략이 추가되었습니다. StrategySas
전략을 상속 받아서 이동 평균선이 깨질 때 또는 변동성 돌파 이벤트가 발생하였을 때, alert_callback
을 통해 알림을 전달하는 앱을 구현하였습니다. 횡보장에서 단기 트레이딩시에 유용하게 사용할 수 있습니다.
그 외 리팩터링
pytest
를 적용하고, 단위테스트와 통합테스트를tests
로 모았습니다.pytest
를 사용하게 되면서 테스트 결과 화면도 아래와 같이 깔끔하게 변경되었습니다.
Full Changelog: v1.4.0...v1.5.0
V1.4.0
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입니다.
DataProviderFactory를 추가하여 Telegram Controller에서 Data Provider를 동적으로 선택할 수 있도록 하였습니다. 기존에는 Trader와 Data Provider가 일치하였지만 Binance 데이터나 다른 데이터를 복합적으로 사용하는 Data Provider를 추가해서 전략을 운영할 수 있게 되었습니다. 환율정보, 주가정보, 암호화폐 지수를 사용한 다양한 전략을 만들어서 운영이 가능합니다.
그 외 수정 사항
모듈이 많아짐에 따라 관리를 위해서 controller, data, strategy, trader 폴더로 구분하였습니다.
0.0024와 같은 값을 소숫점 4자리 수로 변경할 때 발생하는 부동 소수점 문제를 수정하였습니다.
v1.3.0
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
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
- add StrategySmaMl
Fixed Bugs
- fix a bug for telegram controller strategy selector
Release v1.1.1
v1.1.1
StrategyFactory 추가 및 integration_tests를 패키지에서 제거
기능 추가
- 전략을 쉽게 추가/제거 할 수 있도록 StrategyFactory 추가. 전략을 추가할 때 StrategyFactory에만 추가해주면 됨
- 로그 파일을 log 폴더에 저장
버그 수정
- integration_tests가 별도의 패키지로 top_level에 추가되고 있는 문제 수정. smtm 패키지 설치시 smtm과 integration_tests 두 개의 패키지가 따로 설치되는 문제
v1.1.1 (English)
Add StrategyFactory and remove integration_tests from package
New Features
- Add StrategyFactory to add/remove a strategy easily.
- Add log directory to write log files
Fixed Bugs
- Remove integration_tests package in the top_level of packages.
v1.1.0
v1.1.0
Demo 모드와 RSI 전략 추가
기능 추가
- Analyzer
add_drawing_spot
그래프에 점 추가 가능 - Upbit에 DOGE, XRP 화폐 추가
- Simulation, MassSimulation 주기적으로 그래프 저장
- RSI index 추가
- RSI 전략 추가
- Telegram controller Demo 모드 추가
버그 수정
v1.1.0
Demo feature and RSI strategy
New Features
- Analyzer
add_drawing_spot
can add green spots to graph - Add DOGE, XRP for Upbit
- Can save periodic graph for Simulation, MassSimulation
- Add RSI index to Analyzer graph
- Add RSI Strategy
- Telegram controller demo mode with DemoTrader