Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ryqdev authored Jun 2, 2024
1 parent 19cd980 commit 2f6ea7e
Showing 1 changed file with 37 additions and 11 deletions.
48 changes: 37 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -52,25 +65,33 @@ 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
```

TODO: add more

## Quick Install

```shell
cargo install golden
```

## Commands

```shell
# download csv to data/
golden csv --symbol SPY
Expand All @@ -80,4 +101,9 @@ golden backtest --symbol SPY

# paper trading
golden paper --broker ibkr
```
```


## Reference

[1] https://rustmagazine.github.io/rust_magazine_2021/chapter_12/rust-perf.html

0 comments on commit 2f6ea7e

Please sign in to comment.