Documentation
¶
Index ¶
- Variables
- type Analyzer
- func (a *Analyzer) ATR(period int) []float64
- func (a *Analyzer) BollingerBands(period int, stdDev float64) ([]float64, []float64, []float64)
- func (a *Analyzer) EMA(period int) []float64
- func (a *Analyzer) MACD(fast, slow, signal int) ([]float64, []float64, []float64)
- func (a *Analyzer) RSI(period int) []float64
- func (a *Analyzer) SMA(period int) []float64
- func (a *Analyzer) StochRSI(rsiPeriod, stochPeriod, smoothK, smoothD int) ([]float64, []float64)
- func (a *Analyzer) WMA(period int) []float64
- type BacktestResult
- type Backtester
- func (b *Backtester) Backtest(strategy Strategy, candles gota.CandleSeries) *BacktestResult
- func (b *Backtester) PrintResults(result *BacktestResult)
- func (b *Backtester) SetCommission(commission float64)
- func (b *Backtester) SetPositionSize(size float64) error
- func (b *Backtester) SetSlippage(slippage float64)
- type CSVExporter
- type Candle
- type Colors
- type IndicatorConfig
- type IndicatorType
- type Strategy
- type Trade
- type TradeSignal
- type TradeType
- type Visualizer
- func (v *Visualizer) AddATR(period int, c color.Color)
- func (v *Visualizer) AddBollingerBands(period int, stdDev float64, upperColor, middleColor, lowerColor color.Color)
- func (v *Visualizer) AddEMA(period int, c color.Color)
- func (v *Visualizer) AddIndicator(config IndicatorConfig)
- func (v *Visualizer) AddMACD(fast, slow, signal int, macdColor, signalColor, histColor color.Color)
- func (v *Visualizer) AddRSI(period int, c color.Color)
- func (v *Visualizer) AddSMA(period int, c color.Color)
- func (v *Visualizer) AddStochRSI(rsiPeriod, stochPeriod, smoothK, smoothD int, kColor, dColor color.Color)
- func (v *Visualizer) Render() (image.Image, error)
- func (v *Visualizer) RenderToFile(filename string) error
- func (v *Visualizer) RenderToWriter(w io.Writer) error
Constants ¶
This section is empty.
Variables ¶
var ( RED = color.RGBA{255, 80, 80, 255} GREEN = color.RGBA{0, 200, 100, 255} BLUE = color.RGBA{100, 100, 255, 255} YELLOW = color.RGBA{255, 200, 50, 255} PURPLE = color.RGBA{200, 100, 255, 255} CYAN = color.RGBA{100, 200, 255, 255} ORANGE = color.RGBA{255, 150, 50, 255} PINK = color.RGBA{255, 100, 200, 255} WHITE = color.RGBA{255, 255, 255, 255} GRAY = color.RGBA{150, 150, 150, 255} DARK_GRAY = color.RGBA{60, 60, 80, 255} LIGHT_GRAY = color.RGBA{200, 200, 220, 255} BLACK = color.RGBA{0, 0, 0, 255} // Полупрозрачные версии RED_TRANSPARENT = color.RGBA{255, 80, 80, 150} GREEN_TRANSPARENT = color.RGBA{0, 200, 100, 150} BLUE_TRANSPARENT = color.RGBA{100, 100, 255, 150} YELLOW_TRANSPARENT = color.RGBA{255, 200, 50, 150} PURPLE_TRANSPARENT = color.RGBA{200, 100, 255, 150} GRAY_TRANSPARENT = color.RGBA{150, 150, 150, 100} )
Functions ¶
This section is empty.
Types ¶
type Analyzer ¶
type Analyzer struct {
// contains filtered or unexported fields
}
Analyzer - структура для анализа данных
func NewAnalyzer ¶
func (*Analyzer) BollingerBands ¶
type BacktestResult ¶
type BacktestResult struct {
TotalTrades int
WinningTrades int
LosingTrades int
TotalProfit float64
TotalReturn float64
MaxDrawdown float64
WinRate float64
AvgWin float64
AvgLoss float64
ProfitFactor float64
SharpeRatio float64
Trades []Trade
EquityCurve []float64
MaxEquity float64
MinEquity float64
}
BacktestResult - результаты бектеста
type Backtester ¶
type Backtester struct {
// contains filtered or unexported fields
}
Backtester - структура для бектестинга
func NewBacktester ¶
func NewBacktester(initialCapital float64) *Backtester
NewBacktester создает новый бектестер
func (*Backtester) Backtest ¶
func (b *Backtester) Backtest(strategy Strategy, candles gota.CandleSeries) *BacktestResult
Backtest выполняет бектест стратегии
func (*Backtester) PrintResults ¶
func (b *Backtester) PrintResults(result *BacktestResult)
PrintResults выводит результаты бектеста
func (*Backtester) SetCommission ¶
func (b *Backtester) SetCommission(commission float64)
SetCommission устанавливает комиссию
func (*Backtester) SetPositionSize ¶
func (b *Backtester) SetPositionSize(size float64) error
SetPositionSize устанавливает размер позиции
func (*Backtester) SetSlippage ¶
func (b *Backtester) SetSlippage(slippage float64)
SetSlippage устанавливает проскальзывание
type CSVExporter ¶
type CSVExporter struct{}
CSVExporter экспортирует результаты в CSV
func (*CSVExporter) ExportEquityCurve ¶
func (e *CSVExporter) ExportEquityCurve(equityCurve []float64, candles gota.CandleSeries, filename string) error
ExportEquityCurve экспортирует кривую капитала в CSV
func (*CSVExporter) ExportTrades ¶
func (e *CSVExporter) ExportTrades(trades []Trade, filename string) error
ExportTrades экспортирует сделки в CSV
type Colors ¶
type Colors struct {
Background color.Color
Grid color.Color
Text color.Color
Bullish color.Color
Bearish color.Color
Volume color.Color
IndicatorLines []color.Color
}
Colors - цвета для визуализации
type IndicatorConfig ¶
type IndicatorConfig struct {
Name string
Type IndicatorType
Data [][]float64 // данные индикатора (может быть несколько линий)
Colors []color.Color // цвета для каждой линии
Labels []string // названия линий
LineWidth float64 // толщина линии
Overlay bool // отображать ли индикатор поверх свечей
}
IndicatorConfig - конфигурация индикатора для отображения
type IndicatorType ¶
type IndicatorType string
const ( IndicatorSMA IndicatorType = "SMA" IndicatorEMA IndicatorType = "EMA" IndicatorWMA IndicatorType = "WMA" IndicatorMACD IndicatorType = "MACD" IndicatorRSI IndicatorType = "RSI" IndicatorStochRSI IndicatorType = "StochRSI" IndicatorATR IndicatorType = "ATR" IndicatorBB IndicatorType = "BollingerBands" )
type Strategy ¶
type Strategy interface {
// Analyze анализирует свечи и возвращает сигналы
Analyze(candles gota.CandleSeries) []TradeSignal
// Name возвращает название стратегии
Name() string
}
Strategy - интерфейс стратегии
type Trade ¶
type Trade struct {
EntryTime time.Time
ExitTime time.Time
EntryPrice float64
ExitPrice float64
Type TradeType
Profit float64
ProfitPercent float64
}
Trade - структура сделки
type TradeSignal ¶
type TradeSignal struct {
Time time.Time
Price float64
IsEntry bool
Type TradeType
Strength float64 // сила сигнала (0-1)
}
TradeSignal - сигнал для входа/выхода
type Visualizer ¶
type Visualizer struct {
// contains filtered or unexported fields
}
Visualizer - структура для визуализации данных и индикаторов
func NewVisualizer ¶
func NewVisualizer(series gota.Series, width, height int) *Visualizer
NewVisualizer создает новый визуализатор
func (*Visualizer) AddATR ¶
func (v *Visualizer) AddATR(period int, c color.Color)
AddATR добавляет ATR индикатор
func (*Visualizer) AddBollingerBands ¶
func (v *Visualizer) AddBollingerBands(period int, stdDev float64, upperColor, middleColor, lowerColor color.Color)
AddBollingerBands добавляет Bollinger Bands
func (*Visualizer) AddEMA ¶
func (v *Visualizer) AddEMA(period int, c color.Color)
AddEMA добавляет EMA индикатор
func (*Visualizer) AddIndicator ¶
func (v *Visualizer) AddIndicator(config IndicatorConfig)
AddIndicator добавляет индикатор для отображения
func (*Visualizer) AddMACD ¶
func (v *Visualizer) AddMACD(fast, slow, signal int, macdColor, signalColor, histColor color.Color)
AddMACD добавляет MACD индикатор
func (*Visualizer) AddRSI ¶
func (v *Visualizer) AddRSI(period int, c color.Color)
AddRSI добавляет RSI индикатор
func (*Visualizer) AddSMA ¶
func (v *Visualizer) AddSMA(period int, c color.Color)
AddSMA добавляет SMA индикатор
func (*Visualizer) AddStochRSI ¶
func (v *Visualizer) AddStochRSI(rsiPeriod, stochPeriod, smoothK, smoothD int, kColor, dColor color.Color)
AddStochRSI добавляет StochRSI индикатор
func (*Visualizer) Render ¶
func (v *Visualizer) Render() (image.Image, error)
Render визуализирует график и возвращает изображение
func (*Visualizer) RenderToFile ¶
func (v *Visualizer) RenderToFile(filename string) error
RenderToFile сохраняет график в файл
func (*Visualizer) RenderToWriter ¶
func (v *Visualizer) RenderToWriter(w io.Writer) error
RenderToWriter записывает график в writer