Files

44 lines
1.6 KiB
Go

package model
import (
"encoding/json"
"time"
)
type HistoricalBar struct {
Date string `json:"date"`
Open string `json:"open"`
High string `json:"high"`
Low string `json:"low"`
Close string `json:"close"`
}
type BacktestInput struct {
DataOrigin string `json:"data_origin"`
SourceVersion int64 `json:"source_version"`
DataReceivedAt *time.Time `json:"data_received_at"`
StrategyVersionID string `json:"strategy_version_id"`
DatasetName string `json:"dataset_name"`
Symbol string `json:"symbol"`
InitialCash string `json:"initial_cash"`
Bars []HistoricalBar `json:"bars"`
}
type ResearchInput struct {
BacktestInput
Parameters StrategyParameters `json:"parameters"`
}
type BacktestRun struct {
Symbol string `json:"symbol"`
ID string `db:"id" json:"id"`
StrategyVersionID string `db:"strategy_version_id" json:"strategy_version_id"`
Status string `db:"status" json:"status"`
Input json.RawMessage `db:"input" json:"input,omitempty"`
InputHash string `db:"input_hash" json:"input_hash"`
Result json.RawMessage `db:"result" json:"result"`
Failure string `db:"failure" json:"failure"`
LeaseID *string `db:"lease_id" json:"-"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
FinishedAt *time.Time `db:"finished_at" json:"finished_at"`
}
func (BacktestRun) TableName() string { return "veyra_backtest_run" }