backtesting_performance

package
v0.0.0-...-1513131 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

algorithms_iterations_summary_details.go

algorithms_iterations_summary_details.go

algorithms_iterations_summary_details.go

algorithms_iterations_summary_details.go

Index

Constants

This section is empty.

Variables

View Source
var AlgorithmIterationsSummaryDetailsPool = utils.NewObjectPool[AlgorithmIterationsSummaryDetails]()
View Source
var IterationSummaryCalculatorPool = utils.NewObjectPool[IterationSummaryCalculator]()
View Source
var IterationSummaryDetailsPool = utils.NewObjectPool[IterationSummaryDetails]()
View Source
var IterationSummaryDetailsPoolDLLNodePool = utils.NewObjectPool[utils.DoublyLinkedNode[*IterationSummaryDetails]]()
View Source
var IterationSummaryDetailsPoolDLLPool = utils.NewObjectPool[utils.DoublyLinkedList[*IterationSummaryDetails]]()

Functions

func DumpValidatorRecorder

func DumpValidatorRecorder()

Types

type AlgorithmIterationsSummaryDetails

type AlgorithmIterationsSummaryDetails struct {
	AlgorithmIden                *algorithm.AlgorithmIdentifier
	MaxIteration                 int
	IndecisivePositions          int
	DecisivePositions            int
	IterationToSummaryDetailsDLL *utils.DoublyLinkedList[*IterationSummaryDetails]
}

func NewAlgorithmIterationsSummaryDetails

func NewAlgorithmIterationsSummaryDetails() *AlgorithmIterationsSummaryDetails

func (*AlgorithmIterationsSummaryDetails) CleanUp

func (aisd *AlgorithmIterationsSummaryDetails) CleanUp()

type AlgorithmSummaryTradingPositionDetails

type AlgorithmSummaryTradingPositionDetails struct {
	AlgorithmIden     *algorithm.AlgorithmIdentifier
	OpenPositions     *utils.DoublyLinkedList[*SummaryTradingPosition]
	OpenBuyPositions  *utils.DoublyLinkedList[*SummaryTradingPosition]
	OpenSellPositions *utils.DoublyLinkedList[*SummaryTradingPosition]
	ClosedPositions   *utils.DoublyLinkedList[*ClosedSummaryTradingPosition]
	// contains filtered or unexported fields
}

AlgorithmSummaryTradingPositionDetails holds open and closed trading positions for an algorithm.

func (*AlgorithmSummaryTradingPositionDetails) Cleanup

Cleanup releases all resources associated with the AlgorithmSummaryTradingPositionDetails instance.

func (*AlgorithmSummaryTradingPositionDetails) GetAlgorithmsIterationSummaryDetail

func (*AlgorithmSummaryTradingPositionDetails) RecordPerformance

func (astp *AlgorithmSummaryTradingPositionDetails) RecordPerformance(ctx context.Context, signal model.StockAction, dataPoint *model.DataPoint)

RecordPerformance records the performance of an algorithm by handling new positions and updating open positions.

type AlgorithmsIterationsSummaryDetails

type AlgorithmsIterationsSummaryDetails interface {
	AddAlgorithmIterationSummaryDetails(iterationSummaryDetails *AlgorithmIterationsSummaryDetails)
	ApplyConstraints()
	GetAllAlgorithmsName(ctx context.Context) []algorithm.AlgorithmName
	PrintAndSave(ctx context.Context)
	CleanUp()
}

func NewAlgorithmsIterationsSummaryDllAsyncDetails

func NewAlgorithmsIterationsSummaryDllAsyncDetails(pc model.PerformanceConstraints, adaptorType string, generator algoutil.AlgoGenerator) AlgorithmsIterationsSummaryDetails

type AlgorithmsIterationsSummaryDllAsyncDetailsImpl

type AlgorithmsIterationsSummaryDllAsyncDetailsImpl struct {
	Pc model.PerformanceConstraints

	AlgorithmIterationsSummaryDll *utils.DoublyLinkedList[*AlgorithmIterationsSummaryDetails]

	AlgorithmIterationsSummary map[string]*AlgorithmIterationsSummaryDetails

	ProcessedAlgorithmNames []algorithm.AlgorithmName
	ProcessedAlgorithmCount int
	TotalConsidered         int
	FiltrationTrigger       int
	// contains filtered or unexported fields
}

func (*AlgorithmsIterationsSummaryDllAsyncDetailsImpl) AddAlgorithmIterationSummaryDetails

func (ais *AlgorithmsIterationsSummaryDllAsyncDetailsImpl) AddAlgorithmIterationSummaryDetails(iterationSummaryDetails *AlgorithmIterationsSummaryDetails)

func (*AlgorithmsIterationsSummaryDllAsyncDetailsImpl) ApplyConstraints

func (ais *AlgorithmsIterationsSummaryDllAsyncDetailsImpl) ApplyConstraints()

func (*AlgorithmsIterationsSummaryDllAsyncDetailsImpl) CleanUp

func (*AlgorithmsIterationsSummaryDllAsyncDetailsImpl) GetAllAlgorithmsName

func (*AlgorithmsIterationsSummaryDllAsyncDetailsImpl) PrintAndSave

type AlgorithmsIterationsSummaryProcessorImpl

type AlgorithmsIterationsSummaryProcessorImpl struct {
	Pc model.PerformanceConstraints

	AlgorithmIterationsSummaryDll *utils.DoublyLinkedList[*AlgorithmIterationsSummaryDetails]

	ProcessedAlgorithmNames []algorithm.AlgorithmName
	ProcessedAlgorithmCount int
	TotalConsidered         int
	// contains filtered or unexported fields
}

func (*AlgorithmsIterationsSummaryProcessorImpl) CleanUp

func (*AlgorithmsIterationsSummaryProcessorImpl) FinishProcessing

func (ais *AlgorithmsIterationsSummaryProcessorImpl) FinishProcessing()

func (*AlgorithmsIterationsSummaryProcessorImpl) ProcessAlgorithmIterationSummaryDetails

func (ais *AlgorithmsIterationsSummaryProcessorImpl) ProcessAlgorithmIterationSummaryDetails()

type ApplyConstraintsResult

type ApplyConstraintsResult int
const (
	FAIL_APPLY_CONSTRAINTS ApplyConstraintsResult = iota + 1
	PASS_APPLY_CONSTRAINTS
	PROCESSED_APPLY_CONSTRAINTS
)

type ClosedSummaryTradingPosition

type ClosedSummaryTradingPosition struct {
	EntryPoint       *model.DataPoint
	ExitPoint        *model.DataPoint
	Signal           model.StockAction
	TotalIterations  int
	Profit           float64
	ProfitPercentage float64
}

func (*ClosedSummaryTradingPosition) CleanUp

func (cst *ClosedSummaryTradingPosition) CleanUp()

type IterationSummaryCalculator

type IterationSummaryCalculator struct {
	// contains filtered or unexported fields
}

func NewIterationSummaryCalculator

func NewIterationSummaryCalculator() *IterationSummaryCalculator

NewIterationSummaryCalculator creates a new IterationSummaryCalculator.

func (*IterationSummaryCalculator) Add

Add function adds or updates an IterationSummaryDetails at a specific position.TotalIterations.

func (*IterationSummaryCalculator) CleanUp

func (isc *IterationSummaryCalculator) CleanUp()

func (*IterationSummaryCalculator) Data

Data returns a linked list of non-null IterationSummaryDetails, updating cumulative metrics, averages, and rates.

func (*IterationSummaryCalculator) MaxIteration

func (isc *IterationSummaryCalculator) MaxIteration() int

MaxIteration returns the maximum iteration number that has data.

type IterationSummaryDetails

type IterationSummaryDetails struct {
	IterationNumber         int
	Trades                  int
	Wins                    int
	Loses                   int
	TotalProfitPercentage   float64
	AverageProfitPercentage float64
	MaxProfitPercentage     float64
	MinProfitPercentage     float64
	WinRate                 float64
	LossRate                float64
}

func NewIterationSummaryDetails

func NewIterationSummaryDetails(in int) *IterationSummaryDetails

func (*IterationSummaryDetails) CleanUp

func (isd *IterationSummaryDetails) CleanUp()

type PerformanceManager

type PerformanceManager interface {
	RecordPerformance(ctx context.Context, algoName string, signal *model.TradingSignal, dataPoint model.DataPoint)
	GetAlgorithmsIterationSummaryDetails(pc model.PerformanceConstraints) AlgorithmsIterationsSummaryDetails
}

func NewPerformanceSummaryManager

func NewPerformanceSummaryManager(algorithmsIterationsSummaryDetails AlgorithmsIterationsSummaryDetails, pc model.PerformanceConstraints) PerformanceManager

NewPerformanceSummaryManager creates and returns a new PerformanceSummaryManagerImpl.

type PerformanceSummaryManagerImpl

type PerformanceSummaryManagerImpl struct {
	// contains filtered or unexported fields
}

func (*PerformanceSummaryManagerImpl) GetAlgorithmsIterationSummaryDetails

func (*PerformanceSummaryManagerImpl) RecordPerformance

func (pm *PerformanceSummaryManagerImpl) RecordPerformance(ctx context.Context, algoName string, signal *model.TradingSignal, dataPoint model.DataPoint)

RecordPerformance records the performance of an algorithm by handling new positions and updating open positions.

type SummaryTradingPosition

type SummaryTradingPosition struct {
	EntryPoint      *model.DataPoint
	Signal          model.StockAction
	IterationNumber int
}

func (*SummaryTradingPosition) CleanUp

func (stp *SummaryTradingPosition) CleanUp()

Jump to

Keyboard shortcuts

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