package
0.0.0-20250311023717-5c21e974eed8
Repository: https://github.com/thrasher-corp/gocryptotrader.git
Documentation: pkg.go.dev

# README

GoCryptoTrader Backtester: Engine package

Build Status Software License GoDoc Coverage Status Go Report Card

This engine 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

Engine package overview

The engine package is the most important package of the GoCryptoTrader backtester. It is the engine which combines all elements. It is responsible for the following functionality

  • Loading settings from a provided config file
  • Retrieving data
  • Loading the data into assessable chunks
  • Analysing the data via the handleEvent function
  • Looping through all data
  • Outputting results into a report

A flow of the application is as follows: workflow

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 guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Code must adhere to our coding style.
  • Pull requests need to be based on and opened against the master branch.

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

# Functions

NewBacktester returns a new BackTest instance.
NewBacktesterFromConfigs creates a new backtester based on config settings.
NewTaskManager creates a run manager to allow the backtester to manage multiple strategies.
SetupRPCServer sets up the gRPC server.
StartRPCServer starts a gRPC server with TLS auth.

# Variables

ErrLiveDataTimeout returns when an event has not been processed within the timeframe.

# Structs

BackTest is the main holder of all backtesting functionality.
GRPCServer struct.
TaskManager contains all strategy tasks.
TaskMetaData contains details about a run such as when it was loaded.
TaskSummary holds details of a BackTest rather than passing entire contents around.

# Interfaces

Handler is all the functionality required in order to run a backtester with live data.