mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-16 15:09:57 +00:00
* Adds custom strategy * docs and structure * docs * rn * Documents plugins, adds custom strat config * mini fixes. Fleshes strategy test * docgen * Updates plugins to allow for multiple strategies to be loaded * docs * docs regen * fix doc accuracy * why did I add the word custom?
71 lines
3.8 KiB
Markdown
71 lines
3.8 KiB
Markdown
# GoCryptoTrader Backtester: Plugins package
|
|
|
|
<img src="/backtester/common/backtester.png?raw=true" width="350px" height="350px" hspace="70">
|
|
|
|
|
|
[](https://github.com/thrasher-corp/gocryptotrader/actions/workflows/tests.yml)
|
|
[](https://github.com/thrasher-corp/gocryptotrader/blob/master/LICENSE)
|
|
[](https://godoc.org/github.com/thrasher-corp/gocryptotrader/backtester/plugins)
|
|
[](http://codecov.io/github/thrasher-corp/gocryptotrader?branch=master)
|
|
[](https://goreportcard.com/report/github.com/thrasher-corp/gocryptotrader)
|
|
|
|
|
|
This plugins package is part of the GoCryptoTrader codebase.
|
|
|
|
## This is still in active development
|
|
|
|
You can track ideas, planned features and what's in progress on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader).
|
|
|
|
Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://join.slack.com/t/gocryptotrader/shared_invite/enQtNTQ5NDAxMjA2Mjc5LTc5ZDE1ZTNiOGM3ZGMyMmY1NTAxYWZhODE0MWM5N2JlZDk1NDU0YTViYzk4NTk3OTRiMDQzNGQ1YTc4YmRlMTk)
|
|
|
|
## Plugins package overview
|
|
|
|
Golang Plugins are supported by the GoCryptoTrader Backtester. At present, only custom strategies are supported.
|
|
|
|
Please read the Golang documentation on [plugins](https://golang.org/pkg/plugin/) for more information.
|
|
|
|
## Building Golang Plugins
|
|
|
|
### Windows
|
|
Plugin support is not yet available for Windows. However, you can still build via WSL. See below for instructions on a basic setup for WSL. Once completed, follow the instructions for Linux.
|
|
#### WSL Setup
|
|
The following is a basic setup for WSL: [here](https://pureinfotech.com/install-wsl-windows-11/)
|
|
|
|
### Linux, macOS & WSL
|
|
A plugin is a Go main package with exported functions and variables that has been built with:
|
|
|
|
```bash
|
|
go build -buildmode=plugin
|
|
```
|
|
|
|
This outputs a file named `plugins.so` which can be loaded by the backtester. At present, only custom strategies can be loaded. See [here](/strategies/example/README.md) for more information on building custom strategies via plugins.
|
|
|
|
You must ensure that the plugin is built with the same version of code as the GoCryptoTrader Backtester. Otherwise the plugin will refuse to load.
|
|
|
|
|
|
|
|
#### Installing Golang in WSL
|
|
See the following for instructions on installing Golang in WSL: [here](https://ao.ms/how-to-install-golang-on-wsl-wsl2/)
|
|
|
|
|
|
### Please click GoDocs chevron above to view current GoDoc information for this package
|
|
|
|
## Contribution
|
|
|
|
Please feel free to submit any pull requests or suggest any desired features to be added.
|
|
|
|
When submitting a PR, please abide by our coding guidelines:
|
|
|
|
+ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)).
|
|
+ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines.
|
|
+ Code must adhere to our [coding style](https://github.com/thrasher-corp/gocryptotrader/blob/master/doc/coding_style.md).
|
|
+ Pull requests need to be based on and opened against the `master` branch.
|
|
|
|
## Donations
|
|
|
|
<img src="https://github.com/thrasher-corp/gocryptotrader/blob/master/web/src/assets/donate.png?raw=true" hspace="70">
|
|
|
|
If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:
|
|
|
|
***bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc***
|