tradingdesk

package
v1.64.2 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2026 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const ID = "tradingdesk"

Variables

This section is empty.

Functions

This section is empty.

Types

type OpenPositionParams

type OpenPositionParams struct {
	Symbol          string           `json:"symbol"`
	Side            types.SideType   `json:"side"`
	Quantity        fixedpoint.Value `json:"quantity"`
	StopLossPrice   fixedpoint.Value `json:"stopLossPrice"`
	TakeProfitPrice fixedpoint.Value `json:"takeProfitPrice"`
	TimeToLive      types.Duration   `json:"timeToLive"`
}

type PositionMap

type PositionMap map[string]*types.Position

type ProfitStatsMap

type ProfitStatsMap map[string]*types.ProfitStats

type Strategy

type Strategy struct {
	Environment *bbgo.Environment

	Leverage     int              `json:"leverage"`
	MaxLossLimit fixedpoint.Value `json:"maxLossLimit"`
	PriceType    types.PriceType  `json:"priceType"`

	OpenPositions []OpenPositionParams `json:"openPositions"`

	ClosePositionsOnShutdown bool `json:"closePositionsOnShutdown"`
	// contains filtered or unexported fields
}

func (*Strategy) Defaults

func (s *Strategy) Defaults() error

func (*Strategy) HasPosition

func (s *Strategy) HasPosition() bool

func (*Strategy) ID

func (s *Strategy) ID() string

func (*Strategy) Initialize

func (s *Strategy) Initialize() error

func (*Strategy) InstanceID

func (s *Strategy) InstanceID() string

func (*Strategy) Load

func (s *Strategy) Load(ctx context.Context, store service.Store) error

func (*Strategy) OpenPosition

func (s *Strategy) OpenPosition(ctx context.Context, param OpenPositionParams) error

OpenPosition opens a new position with risk-based position sizing. The position size is calculated based on MaxLossLimit, stop loss price, and available balance.

func (*Strategy) Run

Run implements the strategy interface for strategy execution

func (*Strategy) Store

func (s *Strategy) Store(ctx context.Context, store service.Store) error

func (*Strategy) Subscribe

func (s *Strategy) Subscribe(session *bbgo.ExchangeSession)

Subscribe implements the strategy interface for market data subscriptions

func (*Strategy) Validate

func (s *Strategy) Validate() error

type TradingManager

type TradingManager struct {
	TradingManagerState
	// contains filtered or unexported fields
}

func (*TradingManager) ClosePosition

func (m *TradingManager) ClosePosition(ctx context.Context) error

func (*TradingManager) GetPosition

func (m *TradingManager) GetPosition() *types.Position

func (*TradingManager) Initialize

func (m *TradingManager) Initialize(
	ctx context.Context,
	environ *bbgo.Environment, session *bbgo.ExchangeSession, market types.Market,
	strategy *Strategy,
)

func (*TradingManager) OnOrderFilled added in v1.64.0

func (m *TradingManager) OnOrderFilled(order types.Order)

func (*TradingManager) OpenPosition

func (m *TradingManager) OpenPosition(ctx context.Context, params OpenPositionParams) error

OpenPosition opens a new position with risk-based position sizing. The position size is calculated based on MaxLossLimit, stop loss price, and available balance.

func (*TradingManager) SetLeverage

func (m *TradingManager) SetLeverage(ctx context.Context, lv int) error

func (*TradingManager) SlackBlocks added in v1.64.0

func (m *TradingManager) SlackBlocks() []slack.Block

SlackBlocks generates Slack message blocks with position details, take profit, stop loss prices, and unrealized profit.

type TradingManagerMap

type TradingManagerMap map[string]*TradingManager

func (TradingManagerMap) Get

func (m TradingManagerMap) Get(
	ctx context.Context, environ *bbgo.Environment, session *bbgo.ExchangeSession, market types.Market,
	strategy *Strategy,
) *TradingManager

func (TradingManagerMap) New

func (m TradingManagerMap) New(
	ctx context.Context, environ *bbgo.Environment, session *bbgo.ExchangeSession, market types.Market,
	strategy *Strategy,
) *TradingManager

type TradingManagerState

type TradingManagerState struct {
	Position         *types.Position    `json:"position,omitempty"`
	ProfitStats      *types.ProfitStats `json:"profitStats,omitempty"`
	TakeProfitOrders types.OrderSlice   `json:"takeProfitOrders,omitempty"`
	StopLossOrders   types.OrderSlice   `json:"stopLossOrders,omitempty"`

	ExpiryTime *time.Time `json:"expiryTime,omitempty"`
}

Jump to

Keyboard shortcuts

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