compliance

package
v0.0.0-...-83dca6d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 23, 2022 License: MIT Imports: 5 Imported by: 0

README

GoCryptoTrader Backtester: Compliance package

Build Status Software License GoDoc Coverage Status Go Report Card

This compliance 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.

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

Compliance package overview

The compliance manager is used to store all events at each time interval. When debugging the backtester or wanting to audit backtesting results, you can inspect every single action that has occurred during the backtesting run

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

type Manager struct {
	Snapshots []Snapshot
}

Manager holds a snapshot of all orders at each timeperiod, allowing study of all changes across time

func (*Manager) AddSnapshot

func (m *Manager) AddSnapshot(orders []SnapshotOrder, t time.Time, offset int64, overwriteExisting bool) error

AddSnapshot creates a snapshot in time of the orders placed to allow for finer detail tracking and to protect against anything modifying order details elsewhere

func (*Manager) GetLatestSnapshot

func (m *Manager) GetLatestSnapshot() Snapshot

GetLatestSnapshot returns the snapshot of t - 1 interval

func (*Manager) GetSnapshotAtTime

func (m *Manager) GetSnapshotAtTime(t time.Time) (Snapshot, error)

GetSnapshotAtTime returns the snapshot of orders a t time

type Snapshot

type Snapshot struct {
	Orders    []SnapshotOrder `json:"orders"`
	Timestamp time.Time       `json:"timestamp"`
	Offset    int64           `json:"offset"`
}

Snapshot consists of the timestamp the snapshot is from, along with all orders made up until that time

type SnapshotOrder

type SnapshotOrder struct {
	ClosePrice          decimal.Decimal `json:"close-price"`
	VolumeAdjustedPrice decimal.Decimal `json:"volume-adjusted-price"`
	SlippageRate        decimal.Decimal `json:"slippage-rate"`
	CostBasis           decimal.Decimal `json:"cost-basis"`
	*order.Detail       `json:"order-detail"`
}

SnapshotOrder adds some additional data that's only relevant for backtesting to the order.Detail without adding to order.Detail

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL