Files
gocryptotrader/backtester/plugins/strategies/example/README.md
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

3.0 KiB

GoCryptoTrader Backtester: Example package

Build Status Software License GoDoc Coverage Status Go Report Card

This example 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 our GoCryptoTrader Kanban board.

Join our slack to discuss all things related to GoCryptoTrader! GoCryptoTrader Slack

Example 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 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 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:

./backtester -strategypluginpath="path/to/strategy/example.so"

To run this specific example strategy, use:

./backtester --strategypluginpath="./plugins/strategies/example/example.so"

Upon startup, the GoCryptoTrader Backtester will load the strategy and run it for all events.

Donations

If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:

bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc