api

package
v0.0.0-...-8fa1ef7 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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 NewAnalyzer(series gota.Series) *Analyzer

func (*Analyzer) ATR

func (a *Analyzer) ATR(period int) []float64

func (*Analyzer) BollingerBands

func (a *Analyzer) BollingerBands(period int, stdDev float64) ([]float64, []float64, []float64)

func (*Analyzer) EMA

func (a *Analyzer) EMA(period int) []float64

func (*Analyzer) MACD

func (a *Analyzer) MACD(fast, slow, signal int) ([]float64, []float64, []float64)

func (*Analyzer) RSI

func (a *Analyzer) RSI(period int) []float64

func (*Analyzer) SMA

func (a *Analyzer) SMA(period int) []float64

func (*Analyzer) StochRSI

func (a *Analyzer) StochRSI(rsiPeriod, stochPeriod, smoothK, smoothD int) ([]float64, []float64)

func (*Analyzer) WMA

func (a *Analyzer) WMA(period int) []float64

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 Candle

type Candle struct {
	Open, High, Low, Close float64
	X                      float64
	Width                  float64
}

Candle - структура для отрисовки свечи

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 TradeType

type TradeType string

TradeType - тип сделки

const (
	TradeTypeLong  TradeType = "LONG"
	TradeTypeShort TradeType = "SHORT"
)

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

Jump to

Keyboard shortcuts

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