* 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
3.0 KiB
GoCryptoTrader Backtester: Example package
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
mainpackage. - 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.Handlerto return a slice of implementedstrategy.Handler.- If only using one custom strategy, can simply
return []strategy.Handler{&customStrategy{}}.
- If only using one custom strategy, can simply
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