44 lines
1.6 KiB
Go
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" }
|