Files
gocryptotrader/cmd/documentation/backtester_templates/backtester_plugins_strategies_example_readme.tmpl
Adrian Gallagher ba92ba3254 docs: Add CODING_GUIDELINES.md and other adjustments (#1988)
* docs: Create new CODING_GUIDELINES doc

Rids excess contribution instructions from other packages
Adds AGENTS.md file for the AI overlords
Rids unused templates
Updates ADD_NEW_EXCHANGE.md with minor fixes

* docs: Fix linter issues and minor adjustments based on Copilot feedback

* docs: Update coding guidelines for API parameters and testing practices

* docs: Remove redundant GoDoc references

Adds copilot-instructions.md

* docs: Update CODING_GUIDELINES with export recommendations and test commentary

* docs: Fix formatting inconsistencies in ADD_NEW_EXCHANGE.md links

* docs: Update struct naming conventions for request and response types

* docs: Improve clarity and consistency in ADD_NEW_EXCHANGE.md and CODING_GUIDELINES.md

* refactor: Simplify error handling in QueryOrder method
2025-08-08 12:10:53 +10:00

34 lines
1.4 KiB
Cheetah

{{define "backtester plugins strategies example" -}}
{{template "backtester-header" .}}
## {{.CapitalName}} package overview
This is a custom strategy for the GoCryptoTrader Backtester. It is a simple example of a strategy that trades a pair of assets and is used to highlight how strategies can be loaded from external sources.
### Designing a strategy
- File must contain `main` package.
- Custom strategy plugins must adhere to the strategy.Handler interface. See the [strategy.Handler interface documentation](./backtester/eventhandlers/strategies/README.md) for more information.
- Must contain function `func GetStrategies() []strategy.Handler` to return a slice of implemented `strategy.Handler`.
- If only using one custom strategy, can simply `return []strategy.Handler{&customStrategy{}}`.
### Building
See [here](./backtester/plugins/README.md) for details on how to build the plugin file.
### Running
Plugins can only be loaded via Linux, macOS and WSL. Windows itself is not supported.
To run this strategy you will need to use the following flags when running the GoCryptoTrader Backtester:
```bash
./backtester -strategypluginpath="path/to/strategy/example.so"
```
To run this specific example strategy, use:
```bash
./backtester --strategypluginpath="./plugins/strategies/example/example.so"
```
Upon startup, the GoCryptoTrader Backtester will load the strategy and run it for all events.
{{template "donations" .}}
{{end}}