diff --git a/README.md b/README.md index 229598b..7f94cc9 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,35 @@ # golden + `golden` is all in one trading engine built with Rust. -There are many public algorithmic trading platform like [QuantConnect](https://www.quantconnect.com/) and [JoinQuant](https://www.joinquant.com/) for individual trader for learning, researching, backtesting and live-trading. -However, we still private algorithmic trading platform for many reasons such as strategy privacy, system stability and other customed features. +There are many public algorithmic trading platforms like [QuantConnect](https://www.quantconnect.com/) and [JoinQuant](https://www.joinquant.com/) for individual traders to learn, research, backtest and live-trading. + However, we still private algorithmic trading platform for many reasons such as strategy privacy, system stability and other customed features. -One of the well-known private trading library is [Backtrader](https://github.com/mementum/backtrader), but the commmunity is not active recently. It hasn't updated since Apr 19, 2023. -I also build a [simple project](https://github.com/ryqdev/silver) based on [backtrader](https://github.com/mementum/backtrader) and [ib_insync](https://github.com/ultra1971/backtrader_ib_insync), but it still need a lot of work to do to achieve above goals. +One of the well-known private trading libraries is [Backtrader](https://github.com/mementum/backtrader) with Python, but the community is not active recently, since It hasn't been updated since Apr 19, 2023. I also built a [simple project](https://github.com/ryqdev/silver) based on [backtrader](https://github.com/mementum/backtrader) and [ib_insync](https://github.com/ultra1971/backtrader_ib_insync), but it still need a lot of work to do to meet real world trading requirements. Inspired by `backtrader`, `golden` aims to build all in one trading engine supporting backtesting, analyzing, paper-trading and live-trading. -## Why Rust -- As my first Rust practice project -- Modern programming language -- High performance -- Powerful compiler -- The trending + +## Why to use Rust + +- As my first Rust practice project: Wonderful chance for me to learn Rust and write algorithmic trading system from scratch. +- Modern programming language: Rust is the modern programming language with a powerful package manager (`cargo`) and toolchain. +- High performance: Well-written Rust programs can perform as well as C/C++. [1] + + + +## Quick glance + + + + + + ## Project feature list + - [x] Command Line Argument Parser - [ ] Set configuration with a local toml file - [ ] Set configuration with UI @@ -27,6 +38,7 @@ Inspired by `backtrader`, `golden` aims to build all in one trading engine suppo ### Backtest features list + - [x] Single data feed - [x] Single strategy - [x] Download CSV data from yahoo finance @@ -40,6 +52,7 @@ Inspired by `backtrader`, `golden` aims to build all in one trading engine suppo ### Visualization feature list + - [x] Create the basic layer - [x] Implement candlestick chart - [x] Implement line chart @@ -52,13 +65,19 @@ Inspired by `backtrader`, `golden` aims to build all in one trading engine suppo ### Paper trading & live trading feature list + - [x] Single live broker: IBKR - [x] Live trading with single broker - [ ] Risk module - [ ] Online monitor module +- [ ] Remote deployment +- [ ] Multi-strategy system design + + ## Demo + ```shell make backtest symbol=SPY ``` @@ -66,11 +85,13 @@ make backtest symbol=SPY TODO: add more ## Quick Install + ```shell cargo install golden ``` ## Commands + ```shell # download csv to data/ golden csv --symbol SPY @@ -80,4 +101,9 @@ golden backtest --symbol SPY # paper trading golden paper --broker ibkr -``` \ No newline at end of file +``` + + +## Reference + +[1] https://rustmagazine.github.io/rust_magazine_2021/chapter_12/rust-perf.html